一目均衡表は、日本人が考案したテクニカル指標です。
今では、世界で認知されて、MT4でもインジケーターが用意されています。
そして、MQL4プログラミングでも、「iIchimoku関数」として、価格を取得できます。
一目均衡表は、奥が深く色々な使い方が出来ますが、最も良く使われる方法は、「雲」を使ったトレンド判断だと思います。ぱっと見でトレンドが分かるので、とても分かりやすいですね。
今回は、MQL4プログラミングで一目均衡表の「雲」を使った「トレンドの転換」に注目した2つの方法をご紹介します。
・雲の転換
iIchimoku関数の書式
double iIchimoku(
string symbol, // 通貨ペア
int timeframe, // 時間軸
int tenkan_sen, // 転換線期間
int kijun_sen, // 基準線期間
int senkou_span_b, // 先行スパンB期間
int mode, // 取得価格のタイプ
int shift // ローソク足の位置
);

iIchimokuの引数
double iIchimoku(string symbol, int timeframe, int tenkan_sen, int kijun_sen, int senkou_span_b, int mode, int shift);
引数名 | 引数和名 | 設定内容 |
---|---|---|
int tenkan_sen | 転換線期間 | 過去9日間の最高値と最安値の平均を算出し表示させた線です。初期値:9日 |
int kijun_sen | 基準線期間 | 過去26日間の最高値と最安値の平均を算出し表示させた線です。初期値:26日 |
int senkou_span_b | 先行スパンB期間 | 先行スパンは、A、Bの2種類あります。先行スパンBは、過去52日間の最高値と最安値の平均値を26日先に先行して表示させた線です。初期値:52日 |
int mode | 取得価格のタイプ | 一目均衡表は、5本の線から構成されています。 どの価格を取得するかを指定します。 MODE_TENKANSEN 1 (転換線) MODE_KIJUNSEN 2 (基準線 MODE_SENKOUSPANA 3 (先行スパンA) MODE_SENKOUSPANB 4 (先行スパンB) MODE_CHIKOUSPAN 5 (遅行線) |
一目均衡表は、転換線、基準線、先行スパンBの期間「9」「26」「52」を基準にして、時間や波動、値幅観測を判断するテクニカル指標なので、特に理由がなければ初期値を推奨します。
また、本来は月単位のような長期的なスパンで使うことを目的に作られたので、基本的に各パラメータは日単位がベースになっています。
しかしながら、デイトレードのような短いスパンでも同様に機能します。
iIchimoku関数の使い方
例えば、先行スパンAの価格を取得する場合です。
引数例)
symbol NULL 現在の通貨ペア
timeframe 0 現在の時間軸
tenkan_sen 9 転換線期間 9日
kijun_sen 26 基準線期間 26日
senkou_span_b 52 先行スパンB期間 52日
mode MODE_SENKOUSPANA 先行スパンA
shift 0 現在のローソク足の価格
コード例)
// 先行スパンA の価格
double SenkouA = iIchimoku (NULL, 0, 9, 26, 52, MODE_SENKOUSPANA, 0);
遅行スパンの罠
「遅行線(遅行スパン)」の価格を取得するときは、注意が必要です。
「遅行線」は、その名の通り、26日前の価格(遅れた価格)を表示する仕様ですので、価格を取得する場合は、「26本前」のローソク足を指定する必要があります。
今回は「雲」を使った判定がメインなので関係ないですが、コード例だけ一応記載しておきます。
コード例)
// 遅行スパン の価格(引数「shift」に「26」を指定)
double Chikou = iIchimoku (NULL, 0, 9, 26, 52, MODE_CHIKOUSPAN, 26);
雲の上抜け、下抜け

雲を上抜けたら、エントリーしよう。
雲は「先行スパンA」と「先行スパンB」で構成され、この2つの線の間を塗りつぶして、雲のように見せています。
ということになります。
コード例)
// 先行スパンA,B
double SenkouA = iIchimoku(Symbol(),0,9,26,52,MODE_SENKOUSPANA,0);
double SenkouB = iIchimoku(Symbol(),0,9,26,52,MODE_SENKOUSPANB,0);
// 先行スパンA1,B1 (1本前のローソク足)
double SenkouA_1 = iIchimoku(Symbol(),0,9,26,52,MODE_SENKOUSPANA,1);
double SenkouB_1 = iIchimoku(Symbol(),0,9,26,52,MODE_SENKOUSPANB,1);
// 雲の上抜け判定
if( (Ask > SenkouA && Ask > SenkouB ) && //雲を上抜け
!(Ask > SenkouA_1 && Ask > SenkouB_1) ){ //1つ前では上抜けしてない
// ここでエントリー処理
}
ポイントは、先行スパン2つとも上抜けした状態が、雲を上抜けした状態になるということです。
また、
「現在」のローソク足では、上抜け「している」。
という判定で、今まさに雲を上抜けしたということが分かります。
また、雲を上抜けたら、トレンドの終了と判断して、そこで利確する。というのも方法の1つです。
雲の転換
一目均衡表は、雲の上向き・下向きの状態で、売り買いのトレンドを一目で把握できます。
この雲が「上向き」になったとき、「下向き」になったときをトレンドの転換点と捉えることが出来ます。
転換点になり得るというだけで、雲の向きが変わったからエントリーするというのは、レンジ相場もあるので厳しいかもしれません。
ただし、アラートなどで通知するようにすれば、トレンドの転換を見逃さなくなるというメリットがあります。
コード例)
// 先行スパンA,B
double SenkouA = iIchimoku(Symbol(),0,9,26,52,MODE_SENKOUSPANA,0);
double SenkouB = iIchimoku(Symbol(),0,9,26,52,MODE_SENKOUSPANB,0);
// 先行スパンA1,B1 (1本前のローソク足)
double SenkouA_1 = iIchimoku(Symbol(),0,9,26,52,MODE_SENKOUSPANA,1);
double SenkouB_1 = iIchimoku(Symbol(),0,9,26,52,MODE_SENKOUSPANB,1);
// 雲の転換判定
if( SenkouA > SenkouB && SenkouA_1 <= SenkouB_1) ){
// ここで処理を記述
}
雲の転換と、雲の上抜け・下抜けを組み合わせると、
雲が下降トレンドのときに、雲を下抜けたら、エントリー。
というように、トレンドに乗ったエントリーに活用できます。
その他にも、基準線、転換線、遅行線を使った方法もあり、一目均衡表は奥が深いテクニカル指標です。上手に使えると、トレードの幅が広がるかも知れません。