• 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 :)
General chit-chat
Help Users
  • No one is chatting at the moment.

      Tutorial MEMBATASI EA DENGAN JUMLAH TAKE PROFIT PER HARI

      RajaFx

      Member
      Credit Hunter
      Credits
      0
      Sebelumnya saya mohon ijin kepada Mas MoMod untuk share code MQL cara membatasi kerja EA setelah mencapai sejumlah Take Profit per hari....

      Kadang kita ingin menghentikan EA jika sudah melakukan OP dan Take Profit ( TP) sehari, Misalnya setelah TP 4 kali, maka EA tidak OP lagi....

      Langka Pertama :
      di bagian Global Area kita tulis opsi dan jumlah OP TP perhari,

      extern bool UseTargetDaily = TRUE;
      extern int TargetOPProfit = 5;



      Langkah Kedua :

      Kita Tulis Coding berikut di dalam Looping

      void OnTick(){
      //------membatasi jumlah OP target TP

      if(UseTargetDaily == TRUE){
      bool tradeOn = true;
      int win=0;
      for(int i=HistoryTotal()-1;i>=0;i--){
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Error in history!"); break; }
      if((OrderSymbol()!=Symbol()&& OrderMagicNumber()!=MagicNbr1)
      ||(OrderSymbol()!=Symbol()&& OrderMagicNumber()!=MagicNbr2)) continue;
      if( OrderClosePrice() == OrderTakeProfit())win++;
      if ( TimeDay(OrderCloseTime())==Day() && win>=TargetOPProfit ){ tradeOn = false;}else tradeOn = true;
      if ( !tradeOn ) {return;}
      }
      }
      //-------Proses yang lainnya....
      bla.....bla.....bla....

      } //Akhir dari Void OnTick
       
      Last edited:
      mau tanya, rumus mengambil data harga dari data history trading terakhir untuk coding? misalnya kita membuka posisi dengan SL dan TP, setelah harga kena SL maka untuk mengambil data harga tsbt untuk membuat entry harga sebelumnya +100 atau - 100point, bagaimana ya?
       
      pertama, kita buat variable data untuk menyimpan data harga. lalu kita cari data saat close, misal saat SL sbb:
      double myPrice=0;
      for(int x=0;x<OrdersHistoryTotal();x++){
      OrderSelect(x,SELECT_BY_POS,MODE_HISTORY);
      if(OrderSymbol()!=Symbol()&&OrderMagicNumber()!= MagicNbr)continue;
      if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNbr)
      if(OrderType() == OP_BUY||OrderType()==OP_SELL)
      if(OrderClosePrice()=OrderStopLoss()){myPrice=OrderStopLoss()}}


      Dari harga buyPrice +100*Point = lakukan OP Buy atau jika Price-100*Point lakukan OPSell.
       
      Sebelumnya saya mohon ijin kepada Mas MoMod untuk share code MQL cara membatasi kerja EA setelah mencapai sejumlah Take Profit per hari....

      Kadang kita ingin menghentikan EA jika sudah melakukan OP dan Take Profit ( TP) sehari, Misalnya setelah TP 4 kali, maka EA tidak OP lagi....

      Langka Pertama :
      di bagian Global Area kita tulis opsi dan jumlah OP TP perhari,

      extern bool UseTargetDaily = TRUE;
      extern int TargetOPProfit = 5;



      Langkah Kedua :

      Kita Tulis Coding berikut di dalam Looping

      void OnTick(){
      //------membatasi jumlah OP target TP

      if(UseTargetDaily == TRUE){
      bool tradeOn = true;
      int win=0;
      for(int i=HistoryTotal()-1;i>=0;i--){
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Error in history!"); break; }
      if((OrderSymbol()!=Symbol()&& OrderMagicNumber()!=MagicNbr1)
      ||(OrderSymbol()!=Symbol()&& OrderMagicNumber()!=MagicNbr2)) continue;
      if( OrderClosePrice() == OrderTakeProfit())win++;
      if ( TimeDay(OrderCloseTime())==Day() && win>=TargetOPProfit ){ tradeOn = false;}else tradeOn = true;
      if ( !tradeOn ) {return;}
      }
      }
      //-------Proses yang lainnya....
      bla.....bla.....bla....

      } //Akhir dari Void OnTick
      kalo saya sih sependapat mas tp ada sedikit tambahan mengenai batasan profit.. Menurut saya batasi profit itu tidak perlu kecuali jika brokernya emang benci ama trader yang sering profit maka batasi profit adalah hal yang wajib tp kalo batasi loss tetep wajib.
      tapi itu semua tergantung dari gaya trading dan broker masing2...
       
      Sebelumnya saya mohon ijin kepada Mas MoMod untuk share code MQL cara membatasi kerja EA setelah mencapai sejumlah Take Profit per hari....

      Kadang kita ingin menghentikan EA jika sudah melakukan OP dan Take Profit ( TP) sehari, Misalnya setelah TP 4 kali, maka EA tidak OP lagi....

      Langka Pertama :
      di bagian Global Area kita tulis opsi dan jumlah OP TP perhari,

      extern bool UseTargetDaily = TRUE;
      extern int TargetOPProfit = 5;



      Langkah Kedua :

      Kita Tulis Coding berikut di dalam Looping

      void OnTick(){
      //------membatasi jumlah OP target TP

      if(UseTargetDaily == TRUE){
      bool tradeOn = true;
      int win=0;
      for(int i=HistoryTotal()-1;i>=0;i--){
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Error in history!"); break; }
      if((OrderSymbol()!=Symbol()&& OrderMagicNumber()!=MagicNbr1)
      ||(OrderSymbol()!=Symbol()&& OrderMagicNumber()!=MagicNbr2)) continue;
      if( OrderClosePrice() == OrderTakeProfit())win++;
      if ( TimeDay(OrderCloseTime())==Day() && win>=TargetOPProfit ){ tradeOn = false;}else tradeOn = true;
      if ( !tradeOn ) {return;}
      }
      }
      //-------Proses yang lainnya....
      bla.....bla.....bla....

      } //Akhir dari Void OnTick
      Permisi om..
      udah saya masukin tpi kok nggak bisa ya?
      malah EA nya ngga mau OP?
      trus nanya lagi om..
      mksd dari MagicNbr2 apa? bukannya di global cuma ada 1 magic?
      Thanks
       
      Kalau yang suka menggunakan ea ini tentuya akan bisa bermanfaat untuk membatasi jumlah op dalam setiap harinya, dan mungkin juga bisa bermanfaat utuk mengelola resiko atau terlalu banyak open yang akan menghabiskan margin
       
      Permisi om..
      udah saya masukin tpi kok nggak bisa ya?
      malah EA nya ngga mau OP?
      trus nanya lagi om..
      mksd dari MagicNbr2 apa? bukannya di global cuma ada 1 magic?
      Thanks

      Code:
      extern int TargetOPProfit = 5;
      extern int MagicNbr2 =12345;//atau angka brp aj
      extern int MagicNbr1 = 12344;//atau angka brp aj

      MagicNbr1&2 cuman angka buat memudahkan EA mengenali order yg dbkin EA tsb.
      variabel bs dgnti. tpi ya ganti jg yg ada di OnTick()
       
      bang klo mau membatasi pendapan profit gmn bang? misalnya saya pengen hari ini profit $30 setelah $30 robot mati dan besok akan aktif kembali
      mohon petunjuknya bang, mksih
       
      Back
      Top