MetaTrader5
Fractal_WeightOscillatorを活用したシンプルトレーディングEAの紹介
著者: ヴラディミール・フリストフ今回は、Fractal_WeightOscillatorを基にしたシンプルなEA(エキスパートアドバイザー)をご紹介します。このEAは、オシレーターの過熱レベルを下回った時に売り、逆に過小評価レベルを上回った時に買うというシンプルなロジックで動作します。シグナルはバーのクローズ時に形成され、レベルを越えたときに発生します。このEAに含まれるFractal_WeightOscillator_HTFインジケーターは、戦略テスター内のトレンドを視覚化するためのもので、他の運用モードでは無効です。Fractal_WeightOscillator.ex5とFractal_WeightOscillator_HTF.ex5のコンパイルファイルは、<terminal_data_folder>\MQL5\Indicatorsに配置してください。コンパイル後、Exp_Fractal_WeightOscillator.ex5のエキスパートファイルには、Fractal_WeightOscillator.ex5およびFractal_WeightOscillator_HTF.ex5がリソースとして含まれているため、EAが正しく動作するためにインジケーターをターミナルフォルダに配置する必要はありません。このため、EAのコードには、これらのインジケーターをエキスパートの実行ファイルに含めるためのコードが追加されています。インジケーターの実行ファイルは、グローバルスコープでリソースとして追加されています。//---- インジケーターをEAコードにリソースとして含める#resource "\Indicators\Fractal_WeightOscillator.ex5"#resource "\Indicators\Fractal_WeightOscillator_HTF.ex5"OnInit()関数内で使用されるインジケーターのパスを変更しました。//---- Fractal_WeightOscillatorのハンドルを取得 InpInd_Handle=iCustom(Symbol(),InpInd_Timeframe,"::Indicators\Fractal_WeightOscillator", e_period,normal_speed,RSIWeight,RSIPrice,MFIWeight,MFIPrice,MFIVolumeType, WPRWeight,DeMarkerWeight,bMA_Method,bLength,bPhase,HighLevel,LowLevel); if(InpInd_Handle==INVALID_HANDLE) { Print(" Fractal_WeightOscillatorインジケーターのハンドル取得に失敗しました"); return(INIT_FAILED); }//---- 戦略テスターでの視覚化用Fractal_WeightOscillator_HTFインジケーターのハンドル取得 if(MQLInfoInteger(MQL_VISUAL_MODE)) { //---- Fractal_WeightOscillator_HTFインジケーターのハンドルを取得 int Ind_Handle=iCustom(Symbol(),Period(),"::Indicators\Fractal_WeightOscillator_HTF",InpInd_Timeframe, e_period,normal_speed,RSIWeight,RSIPrice,MFIWeight,MFIPrice,MFIVolumeType, WPRWeight,DeMarkerWeight,bMA_Method,bLength,bPhase,HighLevel,LowLevel); if(Ind_Handle==INVALID_HANDLE) { Print(" Fractal_WeightOscillator_HTFインジケーターのハンドル取得に失敗しました"); return(INIT_FAILED); } }これにより、エキスパートのコンパイル済みファイルは、他のトレードターミナルでもインジケーターなしで使用できるようになります。なお、TradeAlgorithms.mqhライブラリファイルを使用することで、ゼロスプレッドのブローカーでも、ポジションのオープン時にストップロスやテイクプロフィットを設定することが可能です。ライブラリの他のバリエーションは、こちらのリンクからダウンロードできます: トレードアルゴリズム.以下に示すテスト結果では、デフォルトのエキスパートアドバイザーの入力パラメーターが使用されており、テスト中にストップロスやテイクプロフィットは使用されていません。Fig. 1. チャート上の取引例2015年のGBPUSD H6におけるテスト結果は以下の通りです:Fig. 2. テスト結果のチャート
2017.03.02