MetaTrader 5用のExp_2pbIdealMA_ReOpen EAの使い方とテスト結果

Mike 2017.01.26 18:06 30 0 0
添付ファイル

皆さん、こんにちは!今回は、MetaTrader 5専用のExp_2pbIdealMA EAについて詳しく解説していきます。このEAは、移動平均線のクロスを基にしたトレーディングシステムで、トレンドに応じたポジションスケーリング機能を持っています。

具体的には、速い移動平均線である2pbIdeal1MAが遅い2pbIdeal3MAをクロスすることでシグナルが形成されます。ポジションがクローズするときに、前回の取引の利益ポイントがEAの入力パラメータで設定された閾値を超えた場合に、ポジションのボリュームをスケーリングアップします。速い移動平均線のブレイクアウトが買いシグナルを、ブレイクダウンが売りシグナルとなります。

ポジションスケーリングの情報は、取引のコメントに以下の形式で保存されます:スケール数 / 最後の取引価格 / 最後の取引ボリューム

インジケーターの設置方法

2pbIdeal1MA.ex52pbIdeal3MA.ex5のコンパイル済みファイルを、<terminal_data_folder>\MQL5\Indicatorsに配置してください。

コンパイル後、Exp_2pbIdealMA_ReOpen.ex5のファイルには、2pbIdeal1MA.ex5と2pbIdeal3MA.ex5のインジケーターがリソースとして含まれているため、EAが正常に動作するためにターミナルフォルダ内にこれらのインジケーターを配置する必要はありません!このために、EAのコードにインジケーターを含めるための対応コードが追加されています。

//---- インジケーターをEAコードにリソースとして含める
#resource "\\Indicators\\2pbIdeal1MA.ex5"
#resource "\\Indicators\\2pbIdeal3MA.ex5"

インジケーターのハンドル取得

OnInit()関数内で使用されるインジケーターのパスを変更しました。

//---- 2pbIdeal1MAインジケーターのハンドル取得
InpInd1_Handle=iCustom(Symbol(),InpInd_Timeframe,"::Indicators\\2pbIdeal1MA.ex5",Period1,Period2,0);
if(InpInd1_Handle==INVALID_HANDLE)
{
Print("2pbIdeal1MAインジケーターのハンドル取得に失敗しました!エラーコード=",GetLastError(),"。");
return(INIT_FAILED);
}

//---- 2pbIdeal3MAインジケーターのハンドル取得
InpInd2_Handle=iCustom(Symbol(),InpInd_Timeframe,"::Indicators\\2pbIdeal3MA.ex5",PeriodX1,PeriodX2,PeriodY1,PeriodY2,PeriodZ1,PeriodZ2,0);
if(InpInd2_Handle==INVALID_HANDLE)
{
Print("2pbIdeal3MAインジケーターのハンドル取得に失敗しました!エラーコード=",GetLastError(),"。");
return(INIT_FAILED);
}

これにより、コンパイルされたEAの実行ファイルは、他のトレードターミナルでもインジケーターなしで使用できるようになります。

テスト結果

以下のテストには、デフォルトのEAの入力パラメータが使用されており、ストップロスとテイクプロフィットは使用されていません。

Fig. 1. チャート上の取引例

Fig. 1. チャート上の取引例

2015年のGBPJPY H4におけるテスト結果:

Fig. 2. テスト結果のチャート

Fig. 2. テスト結果のチャート

リスト
コメント 0