無料でロボットをダウンロードする方法を見る
Facebook上で私たちを見つけてください。
私たちのファンページに参加してください
興味深いスクリプト?
それではリンクにそれを投稿してください。-
他の人にそれを評価してもらいます
記事を気に入りましたか?MetaTrader 5ターミナルの中でそれを試してみてください。
エキスパート

MQL5 Wizard - MACDのメインラインとシグナルラインのクロスに基づいたトレードシグナル - MetaTrader 5のためのエキスパート

ビュー:
2385
評価:
(34)
パブリッシュ済み:
2015.10.29 12:26
アップデート済み:
2016.11.22 07:34
このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動

MQL5 Wizardを使えば、エキスパートアドバイザーを自動生成することができます。 (MQL5 Wizard: Creating Expert Advisors without Programmingを参照).

MACDのラインクロスによるトレードシグナルを考えてみましょう。(MQL5 WizardでEAを自動生成する際)この手法は、 "Signals based on crossover of main and signal MACD lines" です。

MACDのメインラインはfastEMAとslowEMAの差から計算されます。MACDのシグナルラインは、シグナルの期間だけスムージングしたメインラインです。

トレードシグナル:

  • 買い: MACDのメインラインとシグナルラインの上向きのクロス
  • 売り: MACDのメインラインとシグナルラインの下向きのクロス

この手法は、 MQL5 Standard Library (located in MQL5\Include\Expert\Signal\SignalMACD.mqh)の  Trading Strategy classesCSignalMACDにあります。

図1. MACDのメインとシグナルのクロスに基づいたトレードシグナル

図1. MACDのメインとシグナルのクロスに基づいたトレードシグナル


トレードシグナル

このトレード手法は CSignalMACD にあり、インジケーターの値に簡単にアクセスできるメソッドが入っています。:

double  MainMACD(int ind)      // returns the value of main MACD line of the bar
double  SignalMACD(int ind)    // returns the value of signal MACD line of the bar
double  StateMACD(int ind)     // returns the difference between the main and signal MACD lines
int     ExtStateMACD(int ind); // returns the number of sign changes of the main and signal lines difference 


1. 買いポジション

買いポジションの条件:

  • ExtStateMACD(1)==1; MACDのメインラインがシグナルラインを上抜けした
//+------------------------------------------------------------------+
//| Checks conditions to open long position (buy)                    |
//+------------------------------------------------------------------+
bool CSignalMACD::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration)
  {
   price=0.0;
   sl   =m_symbol.Ask()-m_stop_loss*m_adjusted_point;
   tp   =m_symbol.Ask()+m_take_profit*m_adjusted_point;
//---
   return(ExtStateMACD(1)==1);
  }


2. 買いの決済

買いポジションの決済条件:

  • ExtStateMACD(1)==1; MACDのメインラインがシグナルラインを下抜けしたことを表します。
//+------------------------------------------------------------------+
//| Checks conditions to close long position                         |
//+------------------------------------------------------------------+
bool CSignalMACD::CheckCloseLong(double& price)
  {
   price=0.0;
//---
   return(ExtStateMACD(1)==-1);
  }


3. 売りポジション

売りポジションの条件は買いポジションの決済と同じです。

//+------------------------------------------------------------------+
//| Checks conditions to open short position (sell)                  |
//+------------------------------------------------------------------+
bool CSignalMACD::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration)
  {
   price=0.0;
   sl   =m_symbol.Bid()+m_stop_loss*m_adjusted_point;
   tp   =m_symbol.Bid()-m_take_profit*m_adjusted_point;
//---
   return(ExtStateMACD(1)==-1);
  }


4. 売りポジションの決済

売りポジションの決済は買いポジションのエントリーと同じです。

//+------------------------------------------------------------------+
//| Checks conditions to close short position                        |
//+------------------------------------------------------------------+
bool CSignalMACD::CheckCloseShort(double& price)
  {
   price=0.0;
//---
   return(ExtStateMACD(1)==1);
  }

MQL5 WizardでEAを生成する

このロジックに基づいたトレードロボットを生成するには、MQL5 Wizardの "Creating Ready-Made Expert Advisors" の "Signals based on crossover of main and signal MACD lines" を選択してください。 :

図2. MQL5 Wizard の "Signals based on crossover of main and signal MACD lines" を選択してください。

図2. MQL5 Wizard の "Signals based on crossover of main and signal MACD lines" を選択してください。

次に、trailing stopmoney and risk management の有無を選択します。エキスパートアドバイザーのコードは自動的に生成されるので、コンパイルすれば、MetaTrader 5 client terminalの Strategy Testerでテスト可能です。


テスト結果

過去データでエキスパートアドバイザーをテストしてみましょう。 (EURUSD M15, テスト期間: 1.1.2010-05.01.2011, PeriodFast=12, PeriodSlow=24, PeriodSignal=9, StopLoss=20, TakeProfit=80).

エキスパートアドバイザーの生成において、今回は固定ロット(Trading Fixed Lot, 0.1), トレーリングストップ(Trailing not used)はなしを選択しました。

図3. MACDのメインラインとシグナルラインのクロスに基づいたエキスパートアドバイザーのバックテスト結果

図3. MACDのメインラインとシグナルラインのクロスに基づいたエキスパートアドバイザーのバックテスト結果


アタッチメント: The SignalMACD.mqh と CSignalMACD class (MQL5 Standard Libraryに含まれます) は MQL5\Include\Expert\Signal folderにあります。MQL5 Wizardで生成したエキスパートアドバイザーは、 testmacd.mq5 です。

MetaQuotes Ltdによってロシア語から翻訳されました。
元のコード: https://www.mql5.com/ru/code/262

MQL5 Wizard - 2つのEMAのクロスによるトレードシグナル MQL5 Wizard - 2つのEMAのクロスによるトレードシグナル

2つのEMAのクロスによるトレードシグナルを検証できます。この戦略のエキスパートのコードは、MQL5ウィザードで自動生成させることができます。

MQL5 Wizard - ADXによる条件付きの移動平均と価格のクロスによるトレードロジックX MQL5 Wizard - ADXによる条件付きの移動平均と価格のクロスによるトレードロジックX

ADXを確認した上で、移動平均と価格のクロスによるトレードロジックを検証することができます。この戦略のエキスパートのコードは、MQL5ウィザードで自動生成させることができます。

MQL5 Wizard - ザラバフィルター付きの2つの指数平滑移動平均のクロスによるトレードシグナル MQL5 Wizard - ザラバフィルター付きの2つの指数平滑移動平均のクロスによるトレードシグナル

ザラバフィルター付きの2つの指数平滑移動平均のクロスによるトレードシグナルを考えます。この戦略のエキスパートのコードは、MQL5ウィザードで自動生成させることができます。

MQL5 Wizard - アリゲーターのクロスによるトレードシグナル MQL5 Wizard - アリゲーターのクロスによるトレードシグナル

アリゲーターのクロスによるトレードシグナルを検証することができます。この戦略のエキスパートのコードは、MQL5ウィザードで自動生成させることができます。