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

Cara Untuk Buat 1 Pair 1 Order Sahaja

Hairi Kamikaze

New Member
Credits
0
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
 
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:
Back
Top