• 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 :)

Tutorial Cara mendeteksi OP yang terbuka

ariejobs

New Member
Credits
0
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;
}
 
Saya masih newbie. Kita sama-sama belajar ya....
Semoga bermanfaat...
Jika ada case2 lain boleh di diskusikan disini.
 
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;
}

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.
 
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;
}

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:
Back
Top