1. 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

Tutorial Cara mendeteksi OP yang terbuka

Discussion in 'Belajar MQL dari Nol' started by ariejobs, 01 Jul 2021.

  1. ariejobs

    ariejobs New Member

    Equity
    Credit
    Ref Point
    Halo teman2,

    Berikut adalah thread pertama saya, sambil iseng-iseng mau share salah satu snippet code untuk mendeteksi order posisi yang terbuka berdasarkan tipe order. Sekaligus juga dapat digunakan untuk mendeteksi apakah tidak ada op tertentu berdasarkan tipe order.

    Ok langsung saja berikut snippet codenya (berupa fungsi ya, nanti tinggal dipanggil saja sesuai kebutuhan) :

    Fungsi cek posisi buy :
    Code:
    bool anyBuy(){
       for(int i=0; i<OrdersTotal(); i++){
          if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
             if(OrderType()==OP_BUY && OrderSymbol()==Symbol()){
                return true;
             }
          }
       }
       return false;
    }
    Fungsi cek posisi sell :
    Code:
    bool anySell(){
       for(int i=0; i<OrdersTotal(); i++){
          if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
             if(OrderType()==OP_SELL && OrderSymbol()==Symbol()){
                return true;
             }
          }
       }
       return false;
    }
     
  2. ariejobs

    ariejobs New Member

    Equity
    Credit
    Ref Point
    Saya masih newbie. Kita sama-sama belajar ya....
    Semoga bermanfaat...
    Jika ada case2 lain boleh di diskusikan disini.
     
  3. Onyx MIB

    Onyx MIB Member

    Equity
    Credit
    Ref Point
    cara seperti ini sudah bener, tapi bila ada banyak posisi trading, maka akan menghambat kinerja EA.
    Sebaiknya fungsi buy dan sell bisa dijadikan 1, sehingga masing2 tidak perlu melakukan looping.
     
  4. Akangdw

    Akangdw Member Credit Hunter

    Equity
    Credit
    Ref Point
    Terima kasih untuk contoh kodenya. sangat bermanfaat.

    Saya modifikasi sedikit ya agar kode lebih pendek:


    Code:
    bool anyPosition()
      {
       for(int i = 0; i < OrdersTotal(); i++)
         {
          if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
            {
             if((OrderType() == OP_BUY || OrderType() == OP_SELL) && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
               {
                return true;
               }
            }
         }
       return false;
      }
    
     
    Last edited: 29 Sep 2021

Share This Page