MT45 EA: 効率的なトレーディング戦略を実現するシステムトレード

Mike 2017.11.03 21:32 28 0 0
添付ファイル

トレーディング戦略

MT45 EAは、負けた取引の後に次の取引をより大きなロットで開始します。

最初の取引は常に買いオペレーションで、その後はポジションが交互に買いと売りに切り替わります。

このEAは、ローソク足のオープニングでポジションを開きます。

ストップロスが発生した後、EAはロットをKL係数で増加させ、最大値MLに達するまで続けます。その後、ロットは初期値LTにリセットされます。

対象通貨はEURUSD、時間足はH1です。このEAは2014年1月11日から2017年9月9日までの期間で最適化されています。


エキスパートアドバイザーの設定

inputint    Stop = 600;  // ストップロスinputint    Take = 700;  // テイクプロフィットinputint    Slip = 100;  // スリッページinputint    MN   = 123;  // マジックナンバーinputdouble LT   = 0.01; // ロットサイズinputdouble KL   = 2;    // ロット増加比率inputdouble ML   = 10;   // 最大ロット


特徴

このEAはプリプロセッサディレクティブを使用してクロスプラットフォームモードを実装しています。以下はマーチンゲール機能の例です:

//+------------------------------------------------------------------+//|                                                                  |//+------------------------------------------------------------------+double Lot()
  {
   double lot=LT;
//---  MQL4#ifdef __MQL4__
   if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
     {
      if(OrderProfit()>0) lot=LT;
      if(OrderProfit()<0) lot=OrderLots()*KL;
     }
#endif//---  MQL5#ifdef __MQL5__
   if(HistorySelect(0,TimeCurrent()))
     {
      double profit=HistoryDealGetDouble(HistoryDealGetTicket(HistoryDealsTotal()-1),DEAL_PROFIT);
      double LastLot=HHistoryDealGetDouble(HistoryDealGetTicket(HistoryDealsTotal()-1),DEAL_VOLUME);
      if(profit>0) lot=LT;
      if(profit<0) lot=LastLot*KL;
     }
#endif

   if(lot>ML)lot=LT;
   return(lot);
  }


バックテスト

MetaTrader 4端末:

MetaTrader 5端末:


アドバイス

  • このEAはあくまで自分の戦略の基盤として利用することをお勧めします。
リスト
コメント 0