一目均衡表で三役好転(三役逆転)を視覚化するインディケータ

MT4
スポンサーリンク

はじめに

FXで裁量トレードをしていると、トレードに熱くなりすぎて一目均衡表でのエントリーポイントとなる三役好転や三役逆転を見落としちゃうことはないですか?

今回は、その一目均衡表で三役好転や三役逆転を表示してくれるMT4用のインディケータを作成しました。
※簡単に作ったものなのでもちろん無料ですが、自己責任でご使用下さい

インディケータの概要

冒頭でも記載しましたが、今回のインディケータは『一目均衡表』の三役好転と三役逆転を基準に判断しています。以降『一目サポート』と呼称します。

表示例

一目サポートをMT4のチャート上に適用させると、こんな感じで青矢印(三役好転のロングシグナル)と赤矢印(三役逆転のショートシグナル)で表示時間足レベルでトレンドを視覚化しています。一目均衡表自体は表示されないのでイメージのようにしたい場合は以下のように一目均衡表のインジケータをMT4上に追加してください。


ロングシグナル

三役好転となった場合に、青矢印(ロングシグナル)を表示します。

A.転換線が基準線を上抜けたとき
B.遅行スパンがローソク足を上抜けたとき
C.ローソク足が雲を上抜けたとき
※A~Cが全て一致した場合は三役好転で買いサイン

ショートシグナル

三役逆転となった場合に、赤矢印(ショートシグナル)を表示します。

A.転換線が基準線を下抜けたとき
B.遅行スパンがローソク足を下抜けたとき
C.ローソク足が雲を下抜けたとき
※A~Cが全て一致した場合は三役逆転で売りサイン

パラメータ設定

パラメータは基本的にインディケータの『一目均衡表』と同じです。

  1. Tenkan-sen = 9 ⇒ 転換線の期間です
  2. Kijun-sen = 26 ⇒ 基準線の期間です
  3. Senkou Span B = 52 ⇒ 先行スパンBの期間です

上記の設定通りに一目均衡表のシグナルが変更されます。

ファイル

『一目サポート』のソースコードを載せていますのでコンパイルして作成する事もできますが、一応コンパイル済のファイルもダウンロードできるようにしました。

“一目サポート” をダウンロード

Ichimoku_support.ex4 – 625 回のダウンロード – 8.69 KB

ダウンロードした『一目サポート』を、MT4へ適用の仕方が分からない方はこちらの記事をご覧ください。

ソースコード

『一目サポート』のソースコードです。

//+------------------------------------------------------------------+
//|                                             ichimoku_support.mq4 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+

//---- indicator settings
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1  Blue
#property indicator_color2  Red

//--- input parameters
input int InpTenkan=9;   // Tenkan-sen
input int InpKijun=26;   // Kijun-sen
input int InpSenkou=52;  // Senkou Span B

double CrossUp[];
double CrossDown[];

int OnInit()
  {
   IndicatorDigits(Digits);
//--- indicator buffers mapping
   ArrayInitialize(CrossUp,EMPTY_VALUE);
   SetIndexBuffer(0,CrossUp);
   SetIndexStyle(0,DRAW_ARROW,EMPTY);
   SetIndexArrow(0,228);
       
   ArrayInitialize(CrossDown,EMPTY_VALUE);
   SetIndexBuffer(1,CrossDown);   
   SetIndexStyle(1,DRAW_ARROW,EMPTY);
   SetIndexArrow(1,230);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---

   int limit=rates_total-prev_calculated;
    
//---- main loop
   for(int i=0; i<limit; i++)
   {
      double Range=0;
      double AvgRange=0;
       
      //----矢印位置調整用
      for(int counter=0;counter<=0+9;counter++){
         AvgRange= AvgRange+MathAbs(High[counter]-Low[counter]);
      }
      Range=AvgRange/10;
   
       //***一目均衡表の値取得***//
      double Tenkansen = iCustom(NULL,0,"Ichimoku",InpTenkan,InpKijun,InpSenkou,0,i);
      double Kijunsen = iCustom(NULL,0,"Ichimoku",InpTenkan,InpKijun,InpSenkou,1,i);
      double SenkouSpanA = iCustom(NULL,0,"Ichimoku",InpTenkan,InpKijun,InpSenkou,2,i);
      double SenkouSpanB = iCustom(NULL,0,"Ichimoku",InpTenkan,InpKijun,InpSenkou,3,i);
      double ChikouSpan = iCustom(NULL,0,"Ichimoku",InpTenkan,InpKijun,InpSenkou,4,i+26);

      double rosokuValueClose = iClose(NULL, 0, i);
      double rosokuValueHighP = iHigh(NULL,0,i+26);
      double rosokuValueLowP = iLow(NULL,0,i+26);
      
      //△三役好転△
      if(Tenkansen > Kijunsen && SenkouSpanA < rosokuValueClose && SenkouSpanB < rosokuValueClose &&  ChikouSpan > rosokuValueHighP){
         //ロングエントリー
         CrossUp[i]=Low[i]-Range*1.0;
      }
      //▼三役逆転▼
      else if(Tenkansen < Kijunsen && SenkouSpanA > rosokuValueClose && SenkouSpanB > rosokuValueClose &&  ChikouSpan < rosokuValueLowP){ 
         //ショートエントリー   
         CrossDown[i]=High[i]+Range*1.0;
      }else{
         //何もしない
      }
   }

//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

最後に

以上が、一目均衡表で三役好転(三役逆転)を視覚化するインディケータになります。


※ 上記のシグナルをEA(自動売買)化したものがこちら

※ MT4・EAが使えるFX会社のおすすめ

※ EAのサンプルソースを一覧表にまとめました


コメント