MetaTrader5
Exp_Iin_MA_Signal_MMRec - MetaTrader 5向けのトレーディングシステム
Iin_MA_Signalインジケーターに基づいたこのトレーディングシステムは、過去の取引結果に応じて次のトレードのボリュームを調整できる信号を発します。取引信号は、バーがクローズした際にトレンドが変化した場合に形成され、これがインジケーターの色ラベルで表示されます。オープンポジションのボリュームを管理するためのEA変数のブロックが追加されています:input uint BuyTotalMMTriger=5; // ストップロスを計算するための最後の買い取引の数
input uint BuyLossMMTriger=3; // MMを減少させるための損失を出した買い取引の数
input uint SellTotalMMTriger=5;// ストップロスを計算するための最後の売り取引の数
input uint SellLossMMTriger=3; // MMを減少させるための損失を出した売り取引の数
input double SmallMM_=0.01; // 損失時の取引における口座割合
input double MM=0.1; // 通常の取引時の口座割合
input MarginMode MMMode=LOT; // ロット値の決定方法
このような入力がある場合、最後の5回の取引の中で3回が同じ方向で損失を出していると、EAは次の取引を同じ方向で0.01ロットのボリュームで開きます。最後の5回の取引の中で損失を出した取引が3回未満の場合、ポジションのボリュームは0.1となります。このEAは、Exp_Iin_MA_Signal EAのさらなる改良版です。EAの入力ブロックがコードに追加され、ポジションのオープン/クローズのブロックが変更されました://---- 取引実行
//---- マジックナンバーによるロングポジションのクローズ
BuyPositionClose_M(BUY_Close,Symbol(),Deviation_,BuyMagic);
//---- マジックナンバーによるショートポジションのクローズ
SellPositionClose_M(SELL_Close,Symbol(),Deviation_,SellMagic);
double mm;
//---- マジックナンバーによるロングポジションのオープン
if(BUY_Open)
{
mm=BuyTradeMMRecounterS(BuyMagic,BuyTotalMMTriger,BuyLossMMTriger,SmallMM_,MM); // 過去の取引結果に応じたロングポジションのボリュームを定義
BuyPositionOpen_M1(BUY_Open,Symbol(),UpSignalTime,mm,MMMode,Deviation_,StopLoss_,TakeProfit_,BuyMagic);
}
//---- マジックナンバーによるショートポジションのオープン
if(SELL_Open)
{
mm=SellTradeMMRecounterS(SellMagic,SellTotalMMTriger,SellLossMMTriger,SmallMM_,MM); // 過去の取引結果に応じたショートポジションのボリュームを定義
SellPositionOpen_M1(SELL_Open,Symbol(),DnSignalTime,mm,MMMode,Deviation_,StopLoss_,TakeProfit_,SellMagic);
}
このEAが正しく動作するためには、コンパイルされたIin_MA_Signal.ex5インジケーターファイルが<terminal_data_directory>\MQL5\Indicatorsフォルダ内に存在する必要があります。テストで使用されたデフォルトのエキスパートアドバイザーの入力パラメータは、ストップなしのものでした。図1. チャート上の取引の例2017年のGBPJPY H1のテスト結果:図2. テスト結果チャート
2018.10.26