ホーム システムトレード 投稿

MQL5ウィザードで実現するキャンドルパターンとストキャスティクスによるトレーディングシグナル

添付ファイル
327.zip (7.01 KB, ダウンロード 1回)

概要

MQL5ウィザードを使えば、トレーダーはトレーディングシグナルのクラス、ポジションの追跡、マネーマネジメントに基づいて、EA(エキスパートアドバイザー)のコードを自動生成できます。スタンダードライブラリのトレーディングシグナルのクラスを活用して、自分だけのトレーディングシステムを開発・テストすることが可能です。そのためには、トレーディングシグナルのモジュールを作成するだけです。

世界のトップトレーダーの戦略」という書籍(ロシア語)は、MetaStockソフトウェアパッケージを使用したテクニカル分析に関するインジケーターとトレーディング戦略を説明しています。この書籍では、従来のトレーディングシグナルに加えて、リバーサルキャンドルパターンとストキャスティクスCCIMFIRSIの組み合わせに基づくシグナルについても触れられています。

リバーサルキャンドルパターンとオシレーターシグナルを組み合わせることで、偽シグナルを減らし、トレーディングシステムの効率を向上させることができます。

以前の記事では、ストキャスティクスによる確認を伴うキャンドルパターンに基づくトレーディングシグナルを考察しました:

  1. 3つの黒い烏/3つの白い兵士
  2. ダーククラウドカバー/ピアシングライン
  3. ブルリッシュエンガルフィング/ベアリッシュエンガルフィング
  4. ブルリッシュハラミ/ベアリッシュハラミ
  5. ハンマー/ハンギングマン
  6. ブルリッシュ/ベアリッシュミーティングライン
  7. モーニングスター/イブニングスター

この説明では、これらのモデルをすべてストキャスティクスインジケーターシグナルと組み合わせた結果を考察します。


1. ブルリッシュおよびベアリッシュキャンドルモデルとその検出

CandlePatternクラスには、ブルリッシュおよびベアリッシュキャンドルパターンの形成を検出するための関数も含まれています(ハンマー/ハンギングマンの組み合わせは除く)。

ベアリッシュキャンドルパターンの形成は、CheckPatternAllBullish()関数によって確認されます:

//+------------------------------------------------------------------+
//| ブルパターンの形成をチェックします                                   |
//+------------------------------------------------------------------+
bool CCandlePattern::CheckPatternAllBullish()
  {
   return(CheckPatternThreeWhiteSoldiers()  || 
          CheckPatternPiercingLine()       || 
          CheckPatternMorningDoji()        || 
          CheckPatternBullishEngulfing()   || 
          CheckPatternBullishHarami()      || 
          CheckPatternMorningStar()        || 
          CheckPatternBullishMeetingLines());
  }

ブルリッシュキャンドルパターンの形成は、CheckPatternAllBearish()関数によって確認されます:

//+------------------------------------------------------------------+
//| ベアパターンの形成をチェックします                             |
//+------------------------------------------------------------------+
bool CCandlePattern::CheckPatternAllBearish()
  {
   return(CheckPatternThreeBlackCrows()     || 
          CheckPatternDarkCloudCover()     || 
          CheckPatternEveningDoji()        || 
          CheckPatternBearishEngulfing()   || 
          CheckPatternBearishHarami()      || 
          CheckPatternEveningStar()        || 
          CheckPatternBearishMeetingLines());
  }

2. ストキャスティクスインジケーターとの組み合わせによるトレーディングシグナル

ロング/ショートポジションのオープンは、ブルリッシュまたはベアリッシュモデルの1つが形成され、ストキャスティクスオシレーターからの確認がある場合に実行されます。%Dシグナルラインの値は、適切なクリティカルレベル(30および70)の上または下にある必要があります。

エグジットシグナルは、次の2つのケースで形成されます:

  1. 反対のキャンドルパターンが形成された場合(ロングポジションの場合はベアリッシュ、ショートポジションの場合はブルリッシュ)。
  2. %Dのその後の挙動に基づいて。%Dが市場に反対のレベル(ロングの場合は80、ショートの場合は20)に達する場合、または%Dがリバーサルシグナルを確認せず、ロングポジションの場合は20、ショートポジションの場合は80に達する場合。

市場のエントリーとエグジット条件のチェックは、次のメソッドで行います:

  • int CCP_Stoch::LongCondition() - ロングポジションを開く条件(m_pattern_0)とショートポジションを閉じる条件(m_pattern_1)のチェック;
  • int CCP_Stoch::ShortCondition() - ショートポジションを開く条件(m_pattern_0)とロングポジションを閉じる条件(m_pattern_1)のチェック。

2.1. ロングポジションを開いてショートポジションを閉じる

  1. ロングポジションを開くシグナルは、ブルリッシュキャンドルの組み合わせが形成され、StochSignal(1)<30の条件を満たすことです(最後の完成したバーでのストキャスティクスインジケーターのシグナルラインの値が30未満であること)。

  2. ショートポジションを閉じるシグナルは、ブルリッシュキャンドルパターンのいずれかが形成されるか、インジケーターラインが20レベルを上に(または80レベルを上に)クロスする場合です。

//+------------------------------------------------------------------+
//| 市場モデルが形成されたかどうかをチェックするメソッド        |
//| エントリー条件 (ショートポジションをオープン、m_pattern_0) |
//| エグジット条件 (ロングポジションをクローズ、m_pattern_1)  |
//+------------------------------------------------------------------+
int CCP_Stoch::LongCondition()
  {
   int res=0;
//---- ショートポジションをオープンする条件をチェック
//---- ブルパターンの形成とストキャスティクスインジケーターのシグナルライン<30
   if(CheckPatternAllBullish() && (StochSignal(1)<30)) res=m_pattern_0; // ロングポジションオープンのシグナル

//--- ショートポジションクローズの条件チェック
//--- ベアパターンの形成またはシグナルラインのクロス(上昇20、上昇80)
   if(CheckPatternAllBullish() ||
      ((StochSignal(1)>20) && (StochSignal(2)<20)) || 
      ((StochSignal(1)>80) && (StochSignal(2)<80)))    res=m_pattern_1; // ショートポジションをクローズするシグナル
//---
   return(res);
  }

2.2. ショートポジションを開いてロングポジションを閉じる

  1. ショートポジションを開くシグナルは、ベアリッシュキャンドルパターンのいずれかが形成され、StochSignal(1)>70の条件を満たすことです(最後の完成したバーでのストキャスティクスインジケーターのシグナルラインの値が70を超える)。

  2. ロングポジションを閉じるシグナルは、ベアリッシュキャンドルパターンのいずれかが形成されるか、インジケーターラインが80レベルを下に(または20レベルを下に)クロスする場合です。

//+------------------------------------------------------------------+
//| 市場モデルが形成されたかどうかをチェックするメソッド        |
//| エントリー条件 (ショートポジションをオープン、m_pattern_0) |
//| エグジット条件 (ロングポジションをクローズ、m_pattern_1)  |
//+------------------------------------------------------------------+
int CCP_Stoch::ShortCondition()
  {
   int res=0;
//--- ショートポジションをオープンする条件をチェック
//---- ベアパターンの形成とストキャスティクスインジケーターのシグナルライン>70
   if(CheckPatternAllBearish() && (StochSignal(1)>70)) res=m_pattern_0; // ショートポジションオープンのシグナル

//--- ロングポジションをクローズする条件チェック
//---- ベアパターンの形成またはシグナルラインのクロス(下向き80、下向き20)
   if(CheckPatternAllBearish() || 
      ((StochSignal(1)<80) && (StochSignal(2)>80)) || 
      ((StochSignal(1)<20) && (StochSignal(2)>20)))    res=m_pattern_1; // ロングポジションをクローズするシグナル
//---
   return(res);
  }

2.3. MQL5ウィザードを使用して「キャンドルパターン+ストキャスティクス」リバーサルパターンに基づくエキスパートアドバイザーを作成する

CCP_Stochクラスは、トレーディングシグナルのスタンダードライブラリには含まれていません。そのため、ccp_stoch.mqhファイルをダウンロードし、\terminal_folder\Include\Expert\Signal\MySignalsディレクトリに保存して使用します。candlepatterns.mqhファイルもccp_stoch.mqhと同じディレクトリにコピーしてください。その後、MQL5ウィザードでファイルを使用するためにMetaEditorを再起動します。

この戦略に基づくトレーディングロボットを作成するには、MQL5ウィザードの2ステップ目で「キャンドルパターン+ストキャスティクスに基づくシグナル」のシグナルタイプを選択します:

Fig. 1. キャンドルパターン+ストキャスティクスに基づくシグナルを選択

Fig. 1. キャンドルパターン+ストキャスティクスに基づくシグナルを選択

その後のステップで、必要なトレーリングストップの種類とマネーマネジメントシステムを指定します。エキスパートアドバイザーのコードは自動的に生成されます。これで、テストを開始する準備が整いました。


2.4. テスト結果

エキスパートアドバイザーのテスト結果(EURUSD H1、テスト期間:2000年1月1日~2011年2月2日、PeriodK=33、PeriodD=37、PeriodSlow=30、MA_period=25)。

このエキスパートアドバイザーは、固定ボリューム0.1ロットでのトレーディングモジュールを使用します(固定ロットのトレーディング)。トレーリングストップは使用されていません(トレーリングなし)。

Fig. 2. エキスパートアドバイザーのテスト結果

Fig. 2. エキスパートアドバイザーのテスト結果

トレーディングシステムパラメータの最適なセットは、MetaTrader 5のストラテジーテスターを使用して見つけることができます。

MQL5ウィザードで作成されたエキスパートアドバイザーのコードは、expert_cp_stoch.mq5ファイルに添付されています。


関連記事

コメント (0)