Menggunakan EA Nevalyashka BreakdownLevel untuk Trading yang Efektif

Mike 2017.08.10 21:51 18 0 0
Lampiran

Penulis Ide:Vladimir Khlystov, penulis kode MQL5:barabashkakvn.

Strategi trading yang diterapkan adalah breakout dari High/Low dalam interval waktu yang ditentukan. Untuk memulihkan posisi yang merugi, EA ini menggunakan strategi "Nevalyashka" dan teknik martingale untuk meningkatkan lot.

EA ini menghitung harga High dan Low dalam interval waktu yang ditentukan dari "Time start" hingga "Time end":

Nevalyashka BreakdownLevel

Jika harga melebihi High dari periode ini, posisi BUY akan dibuka. Sebaliknya, jika harga berada di bawah Low, posisi SELL akan dibuka. StopLoss ditetapkan di batas berlawanan dari periode tersebut, yaitu pada harga Low untuk posisi BUY dan pada harga High untuk posisi SELL. TakeProfit ditentukan berdasarkan tinggi periode kontrol.

Jika Use time close diatur ke true, maka parameter Time close (waktu untuk menutup semua posisi) akan aktif.

Hanya jam dan menit yang diperhitungkan untuk parameter "Time start", "Time end", dan "Time close".

Penutupan oleh StopLoss dipantau di OnTradeTransaction.

Ketika "DEAL_ENTRY_OUT" ditemukan, periksa kolom komentar dari transaksi ini. Jika komentar berisi "sl", itu berarti transaksi ditutup oleh StopLoss:

      if(deal_symbol==m_symbol.Name() && deal_magic==m_magic)
         if(deal_entry==DEAL_ENTRY_OUT)
           {
            MqlDateTime str1;
            TimeToStruct(TimeCurrent(),str1);
            //--- kemungkinan ini adalah penutupan pada TakeProfit
            if(StringFind(deal_comment,"tp",0)!=-1 || deal_profit>=0.0)
              {
               TradeDey=str1.day;
               return;
              }
            //--- kemungkinan ini adalah penutupan pada StopLoss            if(StringFind(deal_comment,"sl",0)!=-1)
              {
               if(TradeDey!=str1.day)
                 {
                  Print("Penutupan StopLoss terdeteksi!");

                  double loss=MathAbs(deal_profit/m_symbol.TickValue()/deal_volume);

                  if(deal_type==DEAL_TYPE_SELL) // posisi beli ditutup
                {
                  double SL=m_symbol.Bid()+loss*m_symbol.Point();
                  double TP=m_symbol.Bid()-loss*m_symbol.Point();
                  double Lot=LotCheck(deal_volume*InpK_martin);
                  if(Lot==0.0)
                    return;
                    OpenSell(SL,TP,Lot,"Nevalyashka");

                  if(deal_type==DEAL_TYPE_BUY) // posisi jual ditutup
                    {
                     double SL=m_symbol.Ask()-loss*m_symbol.Point();
                     double TP=m_symbol.Ask()+loss*m_symbol.Point();
                     double Lot=LotCheck(deal_volume*InpK_martin);
                     if(Lot==0.0)
                        return;
                    OpenBuy(SL,TP,Lot,"Nevalyashka");
                    }
                 return;
            }
        }

Buka posisi yang berlawanan dengan posisi yang ditutup (jika tipe transaksi adalah "DEAL_TYPE_SELL", maka posisi BUY ditutup; "DEAL_TYPE_BUY" berarti posisi SELL ditutup), dengan lot yang meningkat dikali dengan K. martin. Jika posisi ditutup dengan profit positif, Expert Advisor akan menunggu waktu mulai periode berikutnya "Time end", dan mengulangi prosedur di atas.

Parameter "No loss" berarti breakeven; ketika setengah dari profit posisi tercapai, StopLoss dipindahkan ke harga pembukaan posisi.

Contoh jika diuji pada EURUSD, M30:

Nevalyashka BreakdownLevel test EURUSD M30

Daftar
Komentar 0