私たちのファンページに参加してください
- ビュー:
- 2894
- 評価:
- パブリッシュ済み:
- 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. 移動平均と価格のクロスによるシグナル
トレードシグナル
このトレード手法は 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" を選択
次に、trailing stop とmoney 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)はなしを選択しました。
図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 は、ロウソク足チャートのように見えますが、様々な違いがあります。平均足チャートの利点は、トレンドをシンプルに決めることです。上昇トレンドは青で、下降トレンドは赤になります。

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

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

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