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

MQL5 Wizard - 移動平均と価格のクロスに基づいたトレードシグナル - MetaTrader 5のためのエキスパート

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

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

移動平均線と価格のクロスに基づいた戦略を十分に検証できます。この戦略は、(MQL5ウィザードでEAを自動生成する際)"Signals based on price crossover with MA" と呼ばれています。

トレードシグナル:

  • Buy: 移動平均と価格の上向きのクロス
  • Sell: 移動平均と価格の下向きのクロス
  • 移動平均の増加/減少は、ダマシを減らすために使われます。

この戦略は、MQL5 Standard Library (located in MQL5\Include\Expert\Signal\SignalMA.mqh)にあるTrading Strategy classesクラスのCSignalMAで実装されいます。

図1. 移動平均と価格のクロスによるシグナル

図1. 移動平均と価格のクロスによるシグナル

トレードシグナル

このトレード手法は CSignalMA クラスで実装されており、いくつかの保護されたインジケーターと価格のアクセスを単純化する方法を内包しています。:

double  MA(int ind)          // returns the value of moving average of the bar
double  Open(int ind)        // returns the opening price of the bar
double  Close(int ind)       // returns the closing price of the bar
double  StateMA(int ind)     // returns positive value if average increases and negative if decreases
double  StateOpen(int ind)   // returns the difference between the opening price and moving average 
double  StateClose(int ind)  // returns the difference between the closing price and moving average
現在足の価格とインジケーターの値は変わる可能性があります。そのため、確定した足のデータを使ってトレードの状態を確認する必要があります。

1. 買いポジション

買いポジションの条件 (MAと価格のクロス、かつ、MAの増加):

  • Open(1)<MA(1): 始値が移動平均よりも低い;
  • Close(1)>MA(1): 終値が移動平均よりも高い;
  • MA(1)>MA(2): 移動平均が増加 (ダマシを減らす)
//+------------------------------------------------------------------+
//| Checks conditions to open long position (buy)                    |
//+------------------------------------------------------------------+
bool CSignalMA::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration)
  {
   price=0.0;
   sl   =0.0;
   tp   =0.0;
//--- price has crossed upward the MA and MA increases
   return(StateOpen(1)<0 && StateClose(1)>0 && StateMA(1)>0);
  }

2. 買いの決済

買いポジションの決済条件 (価格と移動平均のクロス、かつ、MAの減少):

  • Open(1)>MA(1): 移動平均よりも始値が高い;
  • Close(1)<MA(1): 移動平均よりも終値が低い;
  • MA(1)<MA(2): 移動平均が減少 (ダマシを減らす)
//+------------------------------------------------------------------+
//| Checks conditions to close long position                         |
//+------------------------------------------------------------------+
bool CSignalMA::CheckCloseLong(double& price)
  {
   price=0.0;
//--- price has crossed moving average downward and moving average decreases
  return(StateOpen(1)>0 && StateClose(1)<0 && StateMA(1)<0);
  }


3. 売りポジション

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

//+------------------------------------------------------------------+
//| Checks conditions to open short position (sell)                  |
//+------------------------------------------------------------------+
bool CSignalMA::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration)
  {
   price=0.0;
   sl   =0.0;
   tp   =0.0;
//--- price has crossed moving average upward and moving average decreases 
   return(StateOpen(1)>0 && StateClose(1)<0 && StateMA(1)<0);
  }


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

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

//+------------------------------------------------------------------+
//| Checks conditions to close short position                        |
//+------------------------------------------------------------------+
bool CSignalMA::CheckCloseShort(double& price)
  {
   price=0.0;
//--- price has crossed moving average upward and moving average increases
   return(StateOpen(1)<0 && StateClose(1)>0 && StateMA(1)>0);
  }
//+------------------------------------------------------------------+

MQL5 WizardでEAを生成する

戦略に則ったEAを作るには、MQL5 Wizardの"Creating Ready-Made Expert Advisors" option of の"Signals based on price crossover with MA"  のシグナルのプロパティを選択する必要があります。:

図2. MQL5 Wizard の"Signals based on price crossover with MA" を選択

図2. MQL5 Wizard の"Signals based on price crossover with MA" を選択

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


テスト結果

過去データでエキスパートアドバイザーをテストしてみましょう。 (EURUSD H1, custom period: 1.1.2010-05.01.2011, MA_period=12, MA_Shift=0).

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

Crossover with Moving Average

図3. 移動平均と価格のクロスに基づいたエキスパートアドバイザーのバックテスト結果

添付: SignalMA.mqh with CSignalMA クラス(included in MQL5 Standard Library) は、MQL5\Include\Expert\Signal フォルダにあります。MQL5 Wizard を使って生成したエキスパートアドバイザーのコードはcrossoverma.mq5です。

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

Heiken-Ashi Heiken-Ashi

Heiken-Ashi は、ロウソク足チャートのように見えますが、様々な違いがあります。平均足チャートの利点は、トレンドをシンプルに決めることです。上昇トレンドは青で、下降トレンドは赤になります。

Average True Range (ATR) Average True Range (ATR)

Average True Range Technical (ATR)は、相場のボラティリティを測るインジケーターです。

Demo_Create_OBJ_BITMAP_LABEL_EA Demo_Create_OBJ_BITMAP_LABEL_EA

OBJ_BITMAP_LABEL で生成したボタンの例.

Demo_Create_OBJ_BITMAP_Script Demo_Create_OBJ_BITMAP_Script

OBJ_BITMAP で生成した背景画像のサンプル