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 Buat EA Mudah Rame-rame seru (by WAME)

Discussion in 'Belajar MQL dari Nol' started by Yasir Arafat, 02 Jun 2016.

  1. Threadmark: codebase OrderSend
    Yasir Arafat

    Yasir Arafat Member

    Equity
    Credit
    Ref Point
    Disini ane mau kasih tips bagi para programer nubie yang memang sedang dalam tahap pembelajaran mengenai seputar coding MQL.

    Oke tanpa basa basi langsung aja ke POKOK PEMBAHASAN.
    sesuai dengan judul kita akan bahas cara-cara coding mudah yang biasa dipakai para programer MQL, berikut penjelasannya :

    Biasanya para Programer EA sudah punya kumpulan script-script dan koding-koding di database mereka, nah oleh karena itu nanti disini ane akan share kumpulan script-script dan koding-koding yang biasa dipakai.

    PEMBAHASAN 1 ===ORDER===

    pada pembahasan ini kita akan bahas seputar order, kalau ane order disini ane bagi menjadi 4 macam :
    1. Order langsung ( Buy / Sell )
    2. Order Tidak Langsung ( Pending Buy / Sell )
    3. Order Perubah ( Modify )
    4. Order Penutup ( Close / Delete )

    berikut codebasenya.
    Paste Code ini didalam OnInit
    Code:
       if(Digits==3||Digits==5){pt=Point*10;}else {pt=Point*1;}
    Paste Code ini dbagian paling bawah koding
    Code:
    double pt;
    void myOrderSend(double myAsk,double myBid,string myPair,int StepOP,double ManualPrice,int OPType,double Lots,double myStopLoss,double myTakeProfit,string myCom){
       double myPrice=0,mySL=0,myTP=0,ticket=0;
       if(OPType==0){myPrice=myAsk;//Buy
       if(StopLoss>0){mySL=myPrice-StopLoss*pt;}else{mySL=0;}
       if(TakeProfit>0){myTP=myPrice+TakeProfit*pt;}else{myTP=0;}}else
       if(OPType==1){myPrice=myBid;//Sell
       if(StopLoss>0){mySL=myPrice+StopLoss*pt;}else{mySL=0;}
       if(TakeProfit>0){myTP=myPrice-TakeProfit*pt;}else{myTP=0;}}else
       if(OPType==2){if(ManualPrice==0)myPrice=myAsk-StepOP*pt;else myPrice=ManualPrice;//BuyLimit
       if(StopLoss>0){mySL=myPrice-StopLoss*pt;}else{mySL=0;}
       if(TakeProfit>0){myTP=myPrice+TakeProfit*pt;}else{myTP=0;}}else
       if(OPType==3){if(ManualPrice==0)myPrice=myBid+StepOP*pt;else myPrice=ManualPrice;//SellLimit
       if(StopLoss>0){mySL=myPrice-StopLoss*pt;}else{mySL=0;}
       if(TakeProfit>0){myTP=myPrice+TakeProfit*pt;}else{myTP=0;}}else
       if(OPType==4){if(ManualPrice==0)myPrice=myAsk+StepOP*pt;else myPrice=ManualPrice;//BuyStop
       if(StopLoss>0){mySL=myPrice-StopLoss*pt;}else{mySL=0;}
       if(TakeProfit>0){myTP=myPrice+TakeProfit*pt;}else{myTP=0;}}else
       if(OPType==5){if(ManualPrice==0)myPrice=myBid-StepOP*pt;else myPrice=ManualPrice;//SellStop
       if(StopLoss>0){mySL=myPrice-StopLoss*pt;}else{mySL=0;}
       if(TakeProfit>0){myTP=myPrice+TakeProfit*pt;}else{myTP=0;}}
       ticket=OrderSend(myPair,OPType,Lots,myPrice,Slippage,mySL,myTP,myCom,Magic,0,clrNONE);}
    Penjelasan codebase :
    2. Saat ingin melakukan order tinggal panggil aja dengan mengetikkan myOrderSend(isi parameternya)
    3. Semua nilai sudah dalam ukuran satuan Pips, jadi jika kita mau input stoploss 20 pips dari harga order ya tinggal diisi aja parameter Stoplossnya dengan 20.
    4. Codebase diatas sudah mencakup banyak kebutuhan dari ordersend.

    oke sekian dulu pembahasannya nanti dilanjut lagi.
    jika ada yang mau ditanyakan silahkan ditanyakan disini atau langsung hubungi ane langsung juga bisa, welcome kapan aja bagi yang mau bertanya seputar coding simple.
     
  2. Pherry Chandra

    Pherry Chandra Active Member Credit Hunter

    Equity
    Credit
    Ref Point
    kalo code connect mt4 ke php atau web asp.net gimana gan ?
     
  3. Yasir Arafat

    Yasir Arafat Member

    Equity
    Credit
    Ref Point
    wah agan perry chanda bercanda nih... ilmu ane belum sampai sana... kan ini tutorial buat ea mudah...
    tp kalau agan Pherry Chandra bisa share juga boleh share dimari... biar pada tambah ilmunya...
     
  4. NeoBatavia

    NeoBatavia Well-Known Member Credit Hunter

    Equity
    Credit
    Ref Point
    Wah berat... Mau OP aja codingnya panjang bener...
    Ga nyampe otaknya nih.
     
    • Like Like x 1
  5. Yasir Arafat

    Yasir Arafat Member

    Equity
    Credit
    Ref Point
    g berat kok om, ini hanya sebagai codebase aja, jadi bisa agar bisa dipakai diberbagai macam kondisi dalam pembuatan EA.
    jika ada yang mau ditanyakan silahkan aja om.
     
  6. ngasqus

    ngasqus Active Member Pioneer

    Equity
    Credit
    Ref Point
    mas untuk penggunaan order apa hanya bisa menggunakan OrderSend? apa bisa memakai perintah mql yang lainnya? sebab jika dilihat kembali di order nantinya terlihat order by expert, kalau main manual ordernya bisa menjadi order by manual?
    ingin buat EA otomatis order tapi terlihat seperti main manual
     
  7. Yasir Arafat

    Yasir Arafat Member

    Equity
    Credit
    Ref Point
    kalau setahu ane sih memang menggunakan ordersend, karna kan berbasis expert.
    ya memang perbedaan order manual dengan expert hanya di log pada bagian expert tidak muncul namun hanya muncul di log jurnal saja. berbeda dengan menggunakan expert yang pasti muncul di kedua log tersebut.
    ngomong-ngomong memang buat broker apa om yang diharuskan menggunakan manual ?
     
  8. blackking

    blackking Well-Known Member Credit Hunter

    Equity
    Credit
    Ref Point
    Ini khusus buat yang punya otak brilian gan karena menghafal koding serumit itu kalau hanya menggunakan otak mungkin akan sulit, ane juga susah kalau harus menghafal koding begitu, tapi mungkin pembuat ea juga sudah memiliki catatan tentang koding yang penting
     
  9. Yasir Arafat

    Yasir Arafat Member

    Equity
    Credit
    Ref Point
    nah itu dia gan, mangkanya ane disini akan share kumpulan sourcecode yang pernah ane buat, agar para programer nubie tinggal comot aja dan bisa buat ea simple sendiri..
    nanti juga ane akan share koding ea simple nya... jadi jangan lewatkan tread ini ya... xixiii
     
    Oke kita lanjutkan pembahasannya,

    masih seputar PEMBAHASAN 1 ===ORDER===
    kali ini saya akan share codebase tentang modify berikut kodingnya
    Paste kode berikut ini dibagian paling bawah koding
    Code:
    void myOrderModify(double MPrice,double MSL,double MTP,string myCom){
       if(OrderMagicNumber()==Magic&&OrderComment()==myCom){
       if(OrderType()>1){
       if(MPrice==0){MPrice=OrderOpenPrice();}}else
       if(OrderType()<=1){MPrice=OrderOpenPrice();}
       if(MSL==0){MSL=OrderStopLoss();}else 
       if(OrderType()==0||OrderType()==2||OrderType()==4){MSL=OrderOpenPrice()-MSL*pt}else {MSL=OrderOpenPrice()+MSL*pt}
       if(MTP==0){MTP=OrderTakeProfit();}else 
       if(OrderType()==0||OrderType()==2||OrderType()==4){MTP=OrderOpenPrice()+MTP*pt}else {MTP=OrderOpenPrice()-MTP*pt}}
       ticket=OrderModify(OrderTicket(),MPrice,MSL,MTP,OrderExpiration(),clrNONE);}
    
    Penjelasan codebase :
    2. Saat ingin melakukan modify tinggal panggil aja dengan mengetikkan myOrderModify(isi parameternya)
    3. Semua nilai sudah dalam ukuran satuan Pips, jadi jika kita mau input stoploss 20 pips dari harga order ya tinggal diisi aja parameter Stoplossnya dengan 20.
    4. Codebase diatas sudah mencakup banyak kebutuhan dari ordermodify.

    oke sekian dulu pembahasannya nanti dilanjut lagi.
    jika ada yang mau ditanyakan silahkan ditanyakan disini atau langsung hubungi ane langsung juga bisa, welcome kapan aja bagi yang mau bertanya seputar coding
     
  10. rahmadjatayu

    rahmadjatayu Member Credit Hunter

    Equity
    Credit
    Ref Point
    Ane ada indi ff news yang bisa connect ke forekfactory gan,nah agan oprek2.nanti kalo udah berhasil share lagi di sini gan ,step by stepnya.
    Kepada TS mohon ijin untuk Upload file.
     

    Attached Files:

  11. siti aisah

    siti aisah New Member

    Equity
    Credit
    Ref Point
    lanjut gan :cool::ok::cool:
     
  12. Artomoro Trader

    Artomoro Trader Member Credit Hunter

    Equity
    Credit
    Ref Point
    Ninggalin jejak sambil belajar....
     
  13. SANLANA

    SANLANA Active Member Credit Hunter

    Equity
    Credit
    Ref Point
    ikut belajar ah....mantaapp kyknya apalagi goro ane slalu hadir di segala lini ..salam Pherry Chandra
     
  14. Mohd Nuredlee

    Mohd Nuredlee New Member

    Equity
    Credit
    Ref Point

    Mantap bos, tapi kalau boleh mungkin boleh tambah kan sekali cara untuk di masukkan ke dalam MQL editor
     

    Attached Files:

    • MQL.JPG
      MQL.JPG
      File size:
      40.9 KB
      Views:
      58
  15. TraderJam

    TraderJam Member Credit Hunter

    Equity
    Credit
    Ref Point
    5/5,
    This is my review for this thread:
    semoga terus berlanjut
     
  16. iyoks

    iyoks New Member

    Equity
    Credit
    Ref Point
    folow
     
  17. Andri_Susilo

    Andri_Susilo Member Credit Hunter

    Equity
    Credit
    Ref Point
    gan tlg bantuin dong..... aku maubikin take profit by money jika order kebalik dari buy/sell.
    begini : jika SMA96<SMA288 dan profit>$0 close all order buy
    dan jika SMA96>SMA288 dan profit>$0 close all order sell. gimana caranya bos???

    if(OrdersTotal()==0)
    {

    if((Bid > SMA12) && (SMA12 > SMA96) &&(SMA96>SMA288))
    {
    /*-- Order Buy --*/
    OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, Ask+TakeProfit*SetPoint, EAComment, EAMagicNumber);
    }
    else if((Ask < SMA12) && (SMA12 < SMA96)&&(SMA96<SMA288))
    {
    /*-- Order Sell --*/
    OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, Bid-TakeProfit*SetPoint, EAComment, EAMagicNumber);
    }

    }
     
  18. Trancexe

    Trancexe Active Member Credit Hunter

    Equity
    Credit
    Ref Point
    Mantap.. Ane mau ikut bantu2 disini sekuat ilmu saya..
    Klo malam saya bantu jawab pertanyaan2 disini.
    Soalnya kata org ilmu makin diamalkan makin berkembang

    Jdi close mau berdasar posisi indi dan nilai $ ya?
     
  19. Andri_Susilo

    Andri_Susilo Member Credit Hunter

    Equity
    Credit
    Ref Point
    betul gan,..... boleh kasih pencerahan?
     
  20. Trancexe

    Trancexe Active Member Credit Hunter

    Equity
    Credit
    Ref Point
    kita harus bikin fungsi order close biar bisa kita gunakan saat kondisi close terpenuhi dan belum kena TP atau SL

    pertama buat rule close jika...
    Code:
    if(SMA96<SMA288 && Profitt()>0)
      {
       CloseAll()
      }
    else if(SMA96>SMA288 && Profit()>0)
      {
       CloseAll()
      }
    trus buat pembacaan profit (biar swap dan komisi terbaca juga)
    Code:
    double Profit()
    {
    double _Profit =0;
    for(int cnt=0;cnt<OrdersTotal();cnt++)  
       {
         if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))
         {
         if(OrderMagicNumber()==magic)
             _Profit +=  OrderProfit()+ OrderSwap() + OrderCommission();
         }  
       }
       return (_Profit);
    }
    kemudian perintah close all

    Code:
    //close order
    void CloseAll() {
       int close_status;
       for (int i = OrdersTotal() - 1; i >= 0; i--) {
          if (OrderSelect(i, SELECT_BY_POS))
             if ((OrderType()==OP_BUY || OrderType()==OP_SELL) && (OrderMagicNumber() == magic))
             close_status=myOrderClose(OrderTicket(),OrderLots(),OrderClosePrice());
       }
    }
    
    int myOrderClose(int orderticket, double orderlot, double orderprice) {
       bool orderclose_status = FALSE;
       for (int m = 0; m < 3; m++) {
          orderclose_status = OrderClose(orderticket, orderlot, orderprice, 5, clrRed);
          if (orderclose_status != 0) break;
          Sleep(1000);
       }
       return (orderclose_status);
    }
     
    • Like Like x 1

Share This Page