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

MQL5 Wizard - 2つのEMAのクロスによるトレードシグナル - MetaTrader 5のためのエキスパート

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

MQL5 Wizardは、エキスパートアドバイザーを自動生成することができます。詳細はCreating Ready-Made Expert Advisors in MQL5 Wizardを参照してください。

2つの指数平滑移動平均線 (fast EMA と slow EMA)のクロスによる戦略を考えてみます。この戦略は、(MQL5 WizardでEAを自動生成する際)"Signals based on crossover of two EMA" です。

トレードシグナル:

  • 買い: Fast EMA が slow EMAを上抜け
  • 売り: Fast EMA が slow EMA を下抜け

この戦略は CSignalCrossEMA classにあります。

図1. 2つの指数平滑移動平均のクロスに基づいたトレードシグナル

図1. 2つの指数平滑移動平均のクロスに基づいたトレードシグナル


トレードシグナル

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

double   FastEMA(int ind)      // returns the value of fast moving average of the bar
double   SlowEMA(int ind)      // returns the value of slow moving average of the bar
double   StateEMA(int ind)     // returns the difference between the fast and slow moving averages of the bar


1. 買いポジション

買いポジションの条件:

  • StateEMA(1)>0 かつ StateEMA(2)<0: 直近の確定足において、Fast EMA が slow EMA を上抜け
//+------------------------------------------------------------------+
//| Checks conditions to open long position (buy)                    |
//+------------------------------------------------------------------+
bool CSignalCrossEMA::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration)
  {
   if(!(StateEMA(2)<0 && StateEMA(1)>0)) return(false);
//---
   price=0.0;
   sl   =0.0;
   tp   =0.0;
//---
   return(true);
  }

2. 買いの決済

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

  • StateEMA(1)<0 かつ StateEMA(2)>0: 直近の確定足において、Fast EMA が slow EMA を下抜け
//+------------------------------------------------------------------+
//| Checks conditions to close long position                         |
//+------------------------------------------------------------------+
bool CSignalCrossEMA::CheckCloseLong(double& price)
  {
   if(!(StateEMA(2)>0 && StateEMA(1)<0)) return(false);
//---
   price=0.0;
//---
   return(true);
  }


3. 売りポジション

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

//+------------------------------------------------------------------+
//| Checks conditions to open short position (sell)                  |
//+------------------------------------------------------------------+
bool CSignalCrossEMA::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration)
  {
   if(!(StateEMA(2)>0 && StateEMA(1)<0)) return(false);
//---
   price=0.0;
   sl   =0.0;
   tp   =0.0;
//---
   return(true);
  }

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

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

//+------------------------------------------------------------------+
//| Checks conditions to close short position                        |
//+------------------------------------------------------------------+
bool CSignalCrossEMA::CheckCloseShort(double& price)
  {
   if(!(StateEMA(2)<0 && StateEMA(1)>0)) return(false);
//---
   price=0.0;
//---
   return(true);
  }

MQL5 WizardでEAを生成する

このロジックに基づいたトレードロボットを生成するには、MQL5 Wizardの "Creating Ready-Made Expert Advisors" のシグナルプロパティ "Signals based on crossover of two EMA" を選んでください。 :

図2. MQL5 Wizard の "Signals, based on crossover of two EMA" を選んでください。

図2. MQL5 Wizard の "Signals, based on crossover of two EMA" を選んでください。

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

さらに、標準ライブラリには CSignalCrossMA class の "Signals based on crossover of two MA"があります。このトレード手法はよくあるものですが、様々に変化させることができます。 (タイプ、シフト、平均方法、TP・SLのレベル)

図3. MQL5 Wizard の "2つの移動平均のクロスに基づいたシグナル"

図3. MQL5 Wizard の "2つの移動平均のクロスに基づいたシグナル"


テスト結果

過去データでエキスパートアドバイザーをテストしてみましょう。 (EURUSD H1, テスト期間: 1.1.2010-05.01.2011,   FastPeriod=12, SlowPeriod=24).

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

図4. 2つのEMAのクロスに基づいたエキスパートアドバイザーのバックテスト結果

図4. 2つのEMAのクロスに基づいたエキスパートアドバイザーのバックテスト結果


アタッチメント: SignalCrossEMA.mqh と CSignalCrossEMA class が terminal_data_folder\MQL5\Include\Expert\Signal folder になければなりません。

MQL5 Wizard を使って生成したエキスパートアドバイザーのコードはcrossover_2ema.mq5 です。

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

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

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

MQL5 Wizard - 3つの移動平均線に基づいたシグナル MQL5 Wizard - 3つの移動平均線に基づいたシグナル

3つの移動平均線に基づいたシグナルです。この戦略のエキスパートのコードは、MQL5ウィザードで自動生成させることができます。

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

MACD(CSignalMACD from MQL5 Standard Library)のメインラインとシグナルラインのクロスに基づいたトレードシグナルを検証することができます。 この戦略のエキスパートのコードは、MQL5ウィザードで自動生成させることができます。

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

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