【MT4対応】一目均衡表の三役好転・三役逆転を自動表示するインジケーター

ichimokuS1
MT4ノウハウ・インジケータ
記事内に商品プロモーションを含む場合があります
スポンサーリンク

一目均衡表の三役好転・三役逆転は、トレンド判断の王道シグナルです。
特に裁量トレードでMT4を使っているFXトレーダーにとって、重要な判断材料になります。

  • 気づいた時にはすでに出遅れている
  • 条件が揃ったか自信が持てない
  • 複数時間足の確認が面倒

といった理由で、正しいシグナルを見逃してしまうケースも少なくありません。

そこで本記事では、MT4上で三役好転・三役逆転を自動で矢印表示する無料インジケーターを紹介します。

※ 簡易ロジックで作成した検証用インジケーターです。実運用は自己責任でご利用ください。

一目均衡表の三役好転・三役逆転とは?

一目均衡表における三役好転三役逆転とは、
複数の要素が同時に揃ったときに発生する強いトレンド判断シグナルです。

一目均衡表は「転換線・基準線・雲(先行スパン)・遅行スパン」という複数の要素で構成されていますが、
三役好転・三役逆転は、それらを個別ではなく“組み合わせ”で評価する考え方になります。

一目均衡表の三役好転と三役逆転の成立条件を図解で示した解説画像

三役好転(買いシグナル)とは、以下の3条件が同時に成立した状態です。

  • 転換線が基準線を上抜けている
  • 現在の価格が雲の上にある
  • 遅行スパンがローソク足の上に位置している

この3つが揃うことで、短期・中期・長期の流れがすべて上向きであると判断できます。

一方、三役逆転(売りシグナル)はその逆で、

  • 転換線が基準線を下抜けている
  • 現在の価格が雲の下にある
  • 遅行スパンがローソク足の下に位置している

という条件が同時に成立した状態を指します。

三役好転・三役逆転はダマシが比較的少なく、トレンド初動~継続局面の判断に使われることが多いため、
裁量トレードだけでなく、EA(自動売買)のロジックとしても頻繁に採用されています。

ただし、複数条件を同時に確認する必要があるため、
裁量トレードでは「条件が揃った瞬間を見逃してしまう」という課題もあります。

そこで本記事で紹介しているのが、
三役好転・三役逆転が成立したタイミングをMT4上で自動的に矢印表示するインジケーターです。

インジケーターの仕様と判定ロジック

本インジケーター「一目サポート」は、
一目均衡表における三役好転・三役逆転の成立条件のみを自動判定し、
MT4チャート上に矢印でシグナルを表示します。

裁量トレードで見落としやすい
「転換線・基準線」「価格と雲」「遅行スパン」の関係を、
すべて同時に満たした場合のみシグナルが出る仕様です。


判定条件の概要

三役好転(ロング)

  • 転換線 > 基準線
  • 価格が雲の上
  • 遅行スパンがローソク足の上

三役逆転(ショート)

  • 転換線 < 基準線
  • 価格が雲の下
  • 遅行スパンがローソク足の下

いずれか1つでも条件を満たさない場合、
シグナルは表示されません。


注意点

エントリーを指示するものではなく、
トレンド方向を視覚的に把握する補助ツールです

判定は確定足ベースで行われます

MT4チャート上での表示例(矢印シグナル)

MT4チャート上に一目均衡表の三役好転・三役逆転を矢印で表示した例

一目サポートをMT4のチャート上に適用させると、こんな感じで青矢印(三役好転のロングシグナル)と赤矢印(三役逆転のショートシグナル)で表示時間足レベルでトレンドを視覚化しています。

一目均衡表自体は表示されないのでイメージのようにしたい場合は以下のように一目均衡表のインジケータをMT4上に追加してください。

MT4上で一目均衡表を表示したチャート例(インジケータ一覧)


三役好転・三役逆転の判定条件

三役好転(ロング)

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

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

三役逆転(ショート)

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

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

パラメータ設定(Ichimoku標準)

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

一目均衡表インジケーターのパラメータ設定画面(転換線・基準線・先行スパン)
  1. Tenkan-sen = 9 ⇒ 転換線の期間です
  2. Kijun-sen = 26 ⇒ 基準線の期間です
  3. Senkou Span B = 52 ⇒ 先行スパンBの期間です

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

スポンサーリンク

インジケーターのダウンロード方法

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

📥 一目均衡表サポートインジをDL

\ 国内最大級のインジケータープラットフォーム /
GogoJungle(ゴゴジャン)でインジケーターの評価・レビューをチェック!

▶ GogoJungleでインジケーターを探す 【MT4対応】一目均衡表の三役好転・三役逆転を自動表示するインジケーター

ダウンロードした『一目サポート』を、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=1; i<limit; i++)
   {

      // 安全チェック
      if(i + 26 >= rates_total || i + 10 >= rates_total)
         continue;

      double AvgRange = 0;

      //---- 矢印位置調整
      for(int counter = 0; counter < 10; counter++)
      {
         AvgRange += MathAbs(high[i + counter] - low[i + counter]);
      }
      double Range = AvgRange / 10.0;
   
       //***一目均衡表の値取得***//
      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);
  }
//+------------------------------------------------------------------+
スポンサーリンク

さいごに(改善版)

一目均衡表の三役好転・三役逆転は、
トレンドが「整った状態」かどうかを判断するための指標です。

しかし実際のトレードでは、
すべての条件を毎回正確に確認するのは意外と手間がかかり、
判断が遅れたり、主観が入りやすくなる場面も少なくありません。

本インジケーターは、
そうした判断のブレを減らし、相場の状態を視覚的に把握するための補助ツールとして作成しました。

あくまで「エントリーを決めるための最終判断」はトレーダー自身が行い、
環境認識やフィルターの1つとして活用するのがおすすめです。

一目均衡表を軸にしたトレードや、
三役好転・三役逆転を使ったEAロジックに興味がある方は、
下記の関連記事も参考にしてみてください。


※ 三役好転・三役逆転のシグナルをEA(自動売買)に落とし込んだ検証例


✅ 今回のロジックをベースにしたEAサンプルも多数公開中

今回紹介したようなEAの売買ロジック・考え方をベースに、
当サイトではさまざまなFX自動売買EAのサンプルコードを公開しています。

ロジックの違いや設計の考え方を比較しながら、
自分に合ったEA構成を探したい方はぜひチェックしてみてください。


📊 EA運用・検証フェーズに進みたい方へ

今回のような仕組みを理解したうえで、
「実際にどのEAが安定しているのか」、「検証データではどんな差が出ているのか」
を確認したい方は、以下の記事も参考になります。


EA開発初心者向けに、今後も実践的に使えるMQL4関数や実装例を紹介していきます。
気になる機能やロジックがあれば、用途別に整理した関連記事もぜひあわせてご覧ください。

コメント

タイトルとURLをコピーしました