【移植#07】一目の幅(水平時間差) — 雲のクロスからの変化日¶
この記事の3行まとめ
- 📏 一目均衡表の「横幅(時間的な長さ)」を可視化するユニークな指標
- ⏱️ 転換線や先行スパンAが、ある基準レベルから離れてどれくらいの時間が経過したかを計測
- 🧩 パラメータ設定により、TK幅と雲幅を別々のサブウィンドウに表示可能
概要¶
この記事は、fai様が2009年に公開された記事 「一目の幅・・?」 のインジケータ(ichi_Width.mq4 / ichi_hist.mq4)をMQL5に移植・解説するものです。
「一目の幅」と聞くと、通常は「雲の厚さ」や「転換線と基準線の乖離」といった垂直方向(価格差)をイメージします。 しかし、このインジケータは水平方向(時間差)に着目した非常に珍しいロジックを持っています。
ロジック解説¶
垂直ではなく「水平」を見る¶
このインジケータが計算しているのは、以下の値です。
「現在価格(または転換線)が、現在の基準線レベルとクロスしてから何本経過したか?」
図で考えるとわかりやすいです。
- 一目均衡表の基準線(Kijun Sen)や先行スパンB(Span B)は、相場がレンジや保ち合いになると水平(フラット)になります。
- この「水平なライン」から、転換線や先行スパンAが上下に離れて推移します。
- この「離れている期間(本数)」をカウントし、ヒストグラムとして表示します。
- 基準線がカクっと段差を作って動くと、カウント対象のレベルも変わるため、ヒストグラムはリセットされたり急変動したりします。
結果として、ノコギリ状(Sawtooth)の特徴的な波形が描かれます。
graph TD
A[現在の基準線レベルを取得] --> B[過去に遡る]
B --> C{"転換線が<br>そのレベルを<br>クロスしたか?"}
C -- Yes --> D[経過本数をプロット]
C -- No --> B 2つのモードと表示設定¶
今回のMQL5版では、オリジナル版の機能を統合し、2つのストリームを計測できます。
| ラベル | 対象 | 意味 |
|---|---|---|
| TK Width (Green) | 転換線 vs 基準線 | 転換線が「今の基準線レベル」とクロスしてからの期間。 トレンドの発生期間やモメンタムの持続性を示唆。 |
| Cloud Width (Orange) | スパンA vs スパンB | 先行スパンAが「今のスパンBレベル」とクロスしてからの期間。 雲のねじれからの経過時間や、トレンド(雲)の寿命に関係? |
元記事のような「2段表示」にする方法¶
fai様の元記事画像のように、TK幅(緑)と雲幅(オレンジ)を別々のサブウィンドウで表示するには、以下の手順を行ってください。
MQL5の仕様上、1つのインジケータで2つのサブウィンドウを作成することはできませんが、パラメータを変更して2回適用することで実現できます。
-
1つ目のサブウィンドウ(TK Width):
- インジケータをチャートに適用します。
- パラメータ
DisplayModeをTK Width Onlyに設定します。 - (お好みで色の設定などを調整してください)
-
2つ目のサブウィンドウ(Cloud Width):
- もう一度、同じインジケータをチャートに適用します。
- パラメータ
DisplayModeをCloud Width Onlyに設定します。
これで、チャートの下に2つのサブウィンドウが並び、それぞれが独立して表示されます。 もちろん、Both モード(デフォルト)を使えば、1つのサブウィンドウに重ねて表示することも可能です。
実装コード (MQL5)¶
オリジナルのMQL4コードでは search(i) 関数で過去データをループ探索していましたが、MQL5でも同様のアプローチを採用しています。 CopyBuffer で取得したデータを配列に格納し、各バーごとに過去方向へループしてクロス地点を探します。
[!NOTE]
SearchMaxパラメータ(デフォルト100)により、最大で何本前まで遡るかを制限しています。これを大きくしすぎると計算負荷が高まるため注意してください。
ダウンロード¶
以下のリンクから Ichimoku_Width.mq5 をダウンロードできます。 MQL5/Indicators/ フォルダに保存してコンパイルしてください。
使い方・考察¶
[!NOTE] Update v1.02 (2026-02-09):
バックテスターの「ビジュアライゼーションモード」において、描画が更新されない問題を修正しました。 計算ロジックを最適化し、描画負荷を軽減しています。
- トレンド持続期間の計測: ヒストグラムの山が高くなるほど、基準線(またはスパンB)がフラットな状態で、かつそこから価格(転換線/スパンA)が離れ続けていることを意味します。
- 「ねじれ」の可視化: 雲の幅(Cloud Width)が0になる地点は、先行スパンAとBが同じ価格(クロス)している地点、つまり「雲のねじれ」が存在したタイミングを示します。
- リペイントなし: 「現在の基準線レベル」に対過去の関係を見るだけなので、過去の足がリペイントすることはありません。ただし、基準線自体の値が変われば(最新足の更新時など)、計算結果はもちろん変わります。