皆さん、こんにちは!今日はMetaTrader 5用のエキスパートアドバイザー(EA)についてお話しします。このEAは、ColorXPWMA_Digitインジケーターを使用して、3つの独立したトレーディングシステムを1つにまとめています。特に、前回の取引結果に基づいて、次の取引のボリュームを変更できるのが特徴です。
トレーディングシグナルは、バーが閉じたときにトレンドが変わった場合に生成されます。このトレンドの変化は、3つのインジケーターのうちの1つが色を変えることで表示されます。
EAのボリューム管理用の入力変数ブロックが追加されており、例えば最初のシステムでは次のような設定が可能です:
input uint A_BuyTotalMMTriger=5; //最後の買い取引の数を計算してストップロスを設定 input uint A_BuyLossMMTriger=3; //損失を出した買い取引の数を減少させる input uint A_SellTotalMMTriger=5;//最後の売り取引の数を計算してストップロスを設定 input uint A_SellLossMMTriger=3; //損失を出した売り取引の数を減少させる input double A_SmallMM=0.01; //損失時の取引における口座の割合 input double A_MM=0.1; //通常の取引における口座の割合 input MarginMode A_MMMode=LOT; //ロット設定モード
このような入力変数を設定すると、最近の5回の取引のうち、3回が同じ方向で損失を出している場合、EAは次の取引を0.01ロットで開きます。もし、最近の5回の取引の中で損失取引が3回未満であれば、ポジションのボリュームは0.1になります。
2つ目のトレーディングシステムでも似たような入力が利用可能です:
input uint B_BuyTotalMMTriger=5; //B最後の買い取引の数を計算してストップロスを設定 input uint B_BuyLossMMTriger=3; //B損失を出した買い取引の数を減少させる input uint B_SellTotalMMTriger=5;//B最後の売り取引の数を計算してストップロスを設定 input uint B_SellLossMMTriger=3; //B損失を出した売り取引の数を減少させる input double B_SmallMM=0.01; //B損失時の取引における口座の割合 input double B_MM=0.1; //B通常の取引における口座の割合 input MarginMode B_MMMode=LOT; //Bロット設定モード
3つ目のシステムにはC_という接頭辞が使用されています。
このようなEAを最も最適に設定するためには、各トレーディングシステムを個別に設定し、他の2つを無効にすることが推奨されます。これには、次のようなパラメータを用いた適切なスイッチを適用します:
input bool B_BuyPosOpen=true; //Bロングポジションの許可 input bool B_SellPosOpen=true //Bショートポジションの許可
これらの設定をfalseにすることで、不要なポジションを防ぐことができます。
生成されたEAが正しく機能するためには、コンパイル済みのColorXPWMA_Digit.ex5インジケーターが<terminal_data_directory>\MQL5\Indicatorsフォルダー内に存在する必要があります。
以下に示すテストでは、デフォルトのエキスパートアドバイザーの入力パラメータとストップを使用しました。

図1. チャート上の例の取引
USDJPYのH2、H4およびH8の2017年のテスト結果です。

図2. テスト結果チャート