1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Welcome back! Thank you for being a part of this Traders Community. Let's discuss and share :)
    Selamat datang kembali! Trimakasih telah menjadi bagian dari Komunitas Trader ini. Mari berdiskusi dan berbagi :)
    Dismiss Notice

Cara Mengontrol Slippage pada EA

Discussion in 'Belajar MQL dari Nol' started by kebogiras, 14 May 2019.

  1. kebogiras

    kebogiras New Member

    Equity
    Credit
    Ref Point
    Salam SoeHoe ..sy sedang belajar buat EA setelah nonton tutorial SoeHoe di forum ini dan di youtube berikut sy kirimkan source code ny.

    Kendala EA tsb adalah munculny slippage berulang kali.

    bagaimana cara mengatasi hal tsb?

    jikalau memang harus kena slippage sy maklum tapi hanya sekali aj

    ini baru sy cb di tester

    terimakasih sebelum ny
     

    Attached Files:

  2. kebogiras

    kebogiras New Member

    Equity
    Credit
    Ref Point
    Code:
    //+------------------------------------------------------------------+
    //|                                                          P_1.mq4 |
    //|                                                            LOKAL |
    //|                                                                  |
    //+------------------------------------------------------------------+
    #property copyright "LOKAL"
    #property link      ""
    #property version   "1.00"
    #property strict
    
    double   SL_1     = 200;
    double   TP_1     = 200;
    string   K_1      = "K1";
    int      Kode_EA  = 123;
    color    Y        = Yellow;
    int      ticket   = 0;
    
    //+------------------------------------------------------------------+
    //| Expert initialization function                                   |
    //+------------------------------------------------------------------+
    //Rule---> Sinyal EA muncul sell saat Low[5] > High[5]
    //dieksekusi dengan order send saat harga pembukaan candle [0]
    //jika SL_1 kena
    //maka op sel kedua di harga SL_1 dengan lot lebih besar
    
    //==============================================================//
    
    //==============================================================//
    int OnInit()
      {
       return(INIT_SUCCEEDED);
      }
    //+------------------------------------------------------------------+
    //| Expert deinitialization function                                 |
    //+------------------------------------------------------------------+
    void OnDeinit(const int reason)
      {
    
      }
    //+------------------------------------------------------------------+
    //| Expert tick function                                             |
    //+------------------------------------------------------------------+
    void OnTick()
      {
    //==============================================================// Sinyal dan Order
       for (int i=ticket;OrdersTotal() >=0;i++)
       {
       if (
             Low[5] > High[1]
           //&&  (Close[40] > Open[40])
           //&&  (Close[30] > Open[30])
           //&&  (Close[20] > Open[20])
          && TimeCurrent ()==Time[0]
          && Volume[0] <= 1
          )
          {
          RefreshRates();
          ticket = OrderSend (Symbol(),OP_SELL,0.1,Open[0],0,Ask+SL_1*Point,Ask-TP_1*Point,K_1,123,0,Y);
          }
       break;
       }
    //==============================================================//  Recover
       for (int i=0;OrdersHistoryTotal() >=0;i++)
       {
       if (
             OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) == true
          )
          {
          RefreshRates();
          ticket = OrderSend (Symbol(),OP_SELL,0.2,OrderClosePrice(),0,Ask+SL_1*Point,Ask-TP_1*Point,K_1,123);
          }
       break;
       }
      return;
      }
    
    //+------------------------------------------------------------------+
     
    Last edited by a moderator: 15 May 2019
  3. kebogiras

    kebogiras New Member

    Equity
    Credit
    Ref Point
    maaf kalo msh acak adul
     
  4. SoeHoe

    SoeHoe Administrator Moderator

    Equity
    Credit
    Ref Point
    Saya kurang paham apa yang mas maksudkan soal Slippage berulang kali. Kemungkinan yg mas maksud adalah requote, atau mungkin Open Order berulang kali.

    Menurut apa yg saya perhatikan adalah bahwa mas belum benar membuat perintah looping for.

    Code:
    for (int i=ticket;OrdersTotal() >=0;i++)
    {
    
    }
    Pada looping for, ada 3 bagian parameter syarat.
    Bagian pertama adalah start angka awal mulai looping
    Bagian kedua adalah batas end atau akhir looping
    Bagian ketiga adalah step

    Di script yg mas buat di atas maka:
    start = 0 yaitu ticket
    end = tidak jelas
    step = ++ yg artinya penambahan 1 ke angka start pada setiap looping

    sehingga terjadi unlimited looping. Maka lebih baik mas tonton dulu video yang berkaitan dengan looping for. Cobalah dengan contoh yang paling mudah, pastikan dulu mas sudah bisa membuat looping dengan benar, baru selanjutnya mencoba membuat perintah yg lebih bercabang banyak.
     
  5. kebogiras

    kebogiras New Member

    Equity
    Credit
    Ref Point

    nah betul SoeHoe..maafkan msh belajar.

    msh kacau penggunaan istilah

    baik..terimakasih jawaban ny

    sy belajar lebih lanjut
     
  6. kebogiras

    kebogiras New Member

    Equity
    Credit
    Ref Point
    SoeHoe kalo sy lihat koding sy..

    open order pertama lncar sesuai ruleruleyg

    yg bermasalah saat, requote order send berulang kali yg kedua (recover)
     
  7. amtwoxtwo

    amtwoxtwo Member Credit Hunter

    Equity
    Credit
    Ref Point
    dari yg saya lihat, untuk recover tdk peduli kena SL atau TP, EA tetap menggandakan lot nya.
    dan betul saja. EA akan melakukan order terus menerus.... sy coba contohkan hanya 1 order saja. krn code yg salah adlh recover.
    Code:
    for (int i=0;OrdersHistoryTotal() >=0;i++)
       {
       if (
             OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) == true
          )
          {
    if(OrdersTotal()==0){
          ticket = OrderSend (Symbol(),OP_SELL,0.2,OrderClosePrice(),0,Ask+SL_1*Point,Ask-TP_1*Point,K_1,123);}
          }
       }
    
    sy rasa penggunaan break pun kurang sesuai..
     

Share This Page