MetaTrader 5用のEA「ExpertClor_v01」でポジション管理を効率化

Mike 2017.08.10 21:55 19 0 0
添付ファイル

アイデア提供者ジョン・スミスMQL5コードの作成者barabashkakvn

このEAは、ポジションをクローズするためのアシスタントです。主にポジションのクローズを行います:

ExpertClor_v01

ポジションはブレイクイーブンに移動され、ストップロスはStopATR_autoインジケーターに基づいて計算されます。また、ポジションは2つの移動平均線(MA)の交差でクローズされます。

このEAを運用するためには、コンパイル済みのStopATR_autoインジケーターを、フォルダーMQL5\Indicators\Downloadsに追加してください:

//+------------------------------------------------------------------+
//| Expert initialization function                                    |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
...
//--- create handle of the indicator iCustom
   handle_iCustom=iCustom(m_symbol.Name(),TimeFrame,"Downloads\\StopATR_auto",
                          CountBarsForAverage,
                          Target
                          );

このエキスパートアドバイザーはポジションをクローズするだけですが、ポジションをオープンするための小さなコード部分も追加しています:

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   if(MQLInfoInteger(MQL_DEBUG) || MQLInfoInteger(MQL_PROFILER) || 
      MQLInfoInteger(MQL_TESTER) || MQLInfoInteger(MQL_OPTIMIZATION))
     {
      static long counter=-50;
      static bool trade_buy=true;

      if(counter==0)
         m_trade.Buy(m_symbol.LotsMin());
      else if(counter%1500==0)
        {
         if(RefreshRates())
           {
            if(trade_buy)
              {
               OpenBuy(m_symbol.LotsMin());
               trade_buy=false;
              }
            else
              {
               OpenSell(m_symbol.LotsMin());
               trade_buy=true;
              }
           }
         else
            counter=counter-9;
        }

      counter++;
     }
//---

このユニットは、テストまたは最適化中にのみ機能します。1,500ティックごとにポジションがオープンされます。

    リスト
    コメント 0