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

Cara Untuk Buat 1 Pair 1 Order Sahaja

Discussion in 'Belajar MQL dari Nol' started by Hairi Kamikaze, 17 Sep 2018.

  1. Hairi Kamikaze

    Hairi Kamikaze New Member

    Equity
    Credit
    Ref Point
    Salam Gais,

    Gimana caranya kalau mahu buat satu PAIRS untuk satu order sahaja.

    Contoh :-
    =======================
    Jika terdapat Bullish Candle di Chart H1 di pairs ( GU ) EA akan OPEN BUY untuk 1 kali sahaja dengan :-
    TP = 600
    SL = 300

    Jika terdapat Bullish Candle di Chart H1 di pairs ( EU ) EA akan OPEN BUY untuk 1 kali sahaja dengan :-
    TP = 600
    SL = 300

    Dalam Satu Akaun...

    =========================
    Masalahanya bila di RUN EAnya Open BUY terus dibuka tanpa henti, boleh bantu gais atau ada ideanya
     
  2. Niguru

    Niguru Member Credit Hunter

    Equity
    Credit
    Ref Point
    Untuk membuka posisi dengan TP = 600 & SL = 300, pada saat Bullish atau Bearish candle buat input untuk TP & SL serta buat function untuk membuka posisi, contohnya sebagai berikut:

    Code:
    input double TP   =600;
    input double SL   =300;
    //+------------------------------------------------------------------+
    //| Check for open conditions                                        |
    //+------------------------------------------------------------------+
    void OpenPosition() {
    int res;
    if(Volume[0]>1) return;
    //--- sell conditions
    if(Close[4]>Close[3] && Close[3]>Close[2] && Close[2]>Close[1]) {
    res=OrderSend(_Symbol,OP_SELL,Lots,Bid,3,Bid+SL*_Point,Bid-TP*_Point,"",YourMagicNum,0,Red);
    return;
    }
    //--- buy conditions
    if(Close[4]<Close[3] && Close[3]<Close[2] && Close[2]<Close[1]) {
    res=OrderSend(_Symbol,OP_BUY,Lots,Ask,3,Ask-SL*_Point,Ask+TP*_Point,"",YourMagicNum,0,Blue);
    return;
    }
    }
    Buat function untuk menghitung posisi yang terbuka, seperti ini contohnya:

    Code:
    //+------------------------------------------------------------------+
    //| Calculate open positions                                         |
    //+------------------------------------------------------------------+
    int CalculateCurrentPositions(string symbol) {
    int count=0;
    for(int i=0;i<OrdersTotal();i++) {
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
    if(OrderSymbol()==symbol && OrderMagicNumber()==YourMagicNum) {
    if(OrderType()==OP_BUY)  count++;
    if(OrderType()==OP_SELL) count++;
    }
    }
    return(count);
    }
    Agar EA hanya membuka posisi sekali saja maka pastikan posisi yang terbuka adalah = 0 sebelum melakukan pembukaan posisi.
    Tempatkan ini pada OnTick, contohnya sebagai berikut:


    Code:
    void OnTick() {
    if(Bars<99 || IsTradeAllowed()==false) return;
    if(CalculateCurrentPositions(_Symbol)==0) OpenPosition();
    
    //----------- lanjutkan dengan perintah berikutnya ---
    Silakan berkreasi dengan contoh di atas, happy coding .. Have a nice day :)
     
    Last edited: 24 Nov 2024

Share This Page