wah iya.. lupa saya.. sleep error saya kasih,pas order berhasil malah ga saya kasihtambahkan Sleep(2000); setelah ordersend untuk memberi jeda order sukses.
wah iya.. lupa saya.. sleep error saya kasih,pas order berhasil malah ga saya kasihtambahkan Sleep(2000); setelah ordersend untuk memberi jeda order sukses.
Code://+------------------------------------------------------------------+ //| contohMultiPair.mq4 | //| Amir Syarifudin | //| www.facebook.com/syarifudin.amir | //+------------------------------------------------------------------+ #property copyright "Amir Syarifudin" #property link "www.facebook.com/syarifudin.amir" #property version "1.00" #property strict //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ string pair[]={"EURUSD","GBPUSD","AUDJPY"}; string cmt="TestMultiPair"; int OnInit() { //--- create timer EventSetMillisecondTimer(10); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- destroy timer EventKillTimer(); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTimer() { //--- int cnt=ArrayRange(pair,0); for(int i=0;i<cnt;i++) { string spair=pair[i]; _run(spair); } } //+------------------------------------------------------------------+ void _run(string sym) { double o=iOpen(sym,PERIOD_M5,0); double c=iClose(sym,PERIOD_M5,0); int ordertotal=ordersCount(sym); if(ordertotal==0) { double ask=MarketInfo(sym,MODE_ASK); double bid=MarketInfo(sym,MODE_BID); if(ask!=0 && bid!=0) { if(c>o) { int suc=OrderSend(sym,OP_BUY,0.01,ask,3,0,0,cmt,0,0,clrNONE); } if(c<o) { int suc=OrderSend(sym,OP_SELL,0.01,bid,3,0,0,cmt,0,0,clrNONE); } } } } int ordersCount(string sym) {int ct=0; int c=OrdersTotal(); for(int i=c;i>=0;i--) {if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){continue;} if(OrderSymbol()!=sym){continue;} ct++;} return(ct);}
Code://+------------------------------------------------------------------+ //| contohMultiPair.mq4 | //| Amir Syarifudin | //| www.facebook.com/syarifudin.amir | //+------------------------------------------------------------------+ #property copyright "Amir Syarifudin" #property link "www.facebook.com/syarifudin.amir" #property version "1.00" #property strict //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ string pair[]={"EURUSD","GBPUSD","AUDJPY"}; string cmt="TestMultiPair"; int OnInit() { //--- create timer EventSetMillisecondTimer(10); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- destroy timer EventKillTimer(); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTimer() { //--- int cnt=ArrayRange(pair,0); for(int i=0;i<cnt;i++) { string spair=pair[i]; _run(spair); } } //+------------------------------------------------------------------+ void _run(string sym) { double o=iOpen(sym,PERIOD_M5,0); double c=iClose(sym,PERIOD_M5,0); int ordertotal=ordersCount(sym); if(ordertotal==0) { double ask=MarketInfo(sym,MODE_ASK); double bid=MarketInfo(sym,MODE_BID); if(ask!=0 && bid!=0) { if(c>o) { int suc=OrderSend(sym,OP_BUY,0.01,ask,3,0,0,cmt,0,0,clrNONE); } if(c<o) { int suc=OrderSend(sym,OP_SELL,0.01,bid,3,0,0,cmt,0,0,clrNONE); } } } } int ordersCount(string sym) {int ct=0; int c=OrdersTotal(); for(int i=c;i>=0;i--) {if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){continue;} if(OrderSymbol()!=sym){continue;} ct++;} return(ct);}
Betul [emoji106]Pak Amir....
Bagaimana cara menambahkan kode Close All Multipair untuk semua pair yang saat ini lagi open dalam kode di atas...? Sebab saya lihat pair OrderSymbol()==Symbol() mengarah ke String sym...
Oh ya Bisa nggak di pasang trailing stop juga...? Sebab saya coba pasang trailing stop, hanya berfungsi pada chart yang di Attack...
Apakah untuk semua kode " OrderSymbol()==Symbol() diubah menjadi ---> OrderSymbol()!=sym "
Betul [emoji106]
Untuk menutup semua order semua pair ya?Betul yang seperti apa Pak....
Saya sudah tambahkan kode Close All Posisi, di bawah sendiri.
Apakah betul seperti ini kodenya pak...??? Kok masih belum Mujarab juga
if(ProfitTotal()>= TakeProfit )
{
CloseAllTrades();
}
//---------------------------------------------
void CloseAllTrades()
{
string Symb=Symbol();
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderMagicNumber() == Magic && (OrderSymbol() == Symbol()))
{
if (OrderType() == OP_BUY)
{
bool closed = false;
closed = OrderClose(OrderTicket(),OrderLots(),MarketInfo(Symb,MODE_BID),Slip,clrGreen);
}
if (OrderType() == OP_SELL)
{
bool closed = false;
closed = OrderClose(OrderTicket(),OrderLots(),MarketInfo(Symb,MODE_ASK),Slip,clrRed);
}
}
}
}
}
Bisa diberi contoh Pak.....??
Ya Iyalah...Untuk menutup semua order semua pair ya?
Apa sejenis Hedging ?Disini ada yang bisa bikin script untuk membuat open buy atau sell sekalian
Ya Iyalah...
Sebab kode Versi anda yang di tampilkan di thread Pertama hanya OP untuk banyak Pair...., Belum ada Kode Close All Multi_Pair...
Mungkin Pak amir, paham maksud saya....
Maksud saya close all multipair yang terkait dengan kode Versi anda.... Yang hanya cukup sekali penulisan via string pair kode --> OrderSymbol() == Symb
Input Parameter anda :
string Pair[]={"USDJPY","GBPUSD","EURUSD","EURGBP"};
Dan memasukan Nilai Value ArrayRange
int cnt=ArrayRange(Pair,0);
Kalau Opsi lain sih.. memang bisa dengan cara int input secara terpisah banyak pair :
Misalnya : OrderSymbol()==S1 || OrderSymbol()==S2 || ....... dan seterusnya....
Input Parameter nya :
input string S1 = "USDJPY";
input string S2 = "GBPUSD";
Close All Pair ini kan lebih penting, daripada OP Posisi...![]()
Terimakasih Codingnya Pak Amir. Saya ijin mengembangkan coding ini. Saya mau menambahkan coding untuk jumlah Op Buy dan Sell tiap Pair. coding yang saya tambahkan seperti ini, mohon dikoreksi:Code://+------------------------------------------------------------------+ //| contohMultiPair.mq4 | //| Amir Syarifudin | //| www.facebook.com/syarifudin.amir | //+------------------------------------------------------------------+ #property copyright "Amir Syarifudin" #property link "www.facebook.com/syarifudin.amir" #property version "1.00" #property strict //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ string pair[]={"EURUSD","GBPUSD","AUDJPY"}; string cmt="TestMultiPair"; int OnInit() { //--- create timer EventSetMillisecondTimer(10); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- destroy timer EventKillTimer(); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTimer() { //--- int cnt=ArrayRange(pair,0); for(int i=0;i<cnt;i++) { string spair=pair[i]; _run(spair); } } //+------------------------------------------------------------------+ void _run(string sym) { double o=iOpen(sym,PERIOD_M5,0); double c=iClose(sym,PERIOD_M5,0); int ordertotal=ordersCount(sym); if(ordertotal==0) { double ask=MarketInfo(sym,MODE_ASK); double bid=MarketInfo(sym,MODE_BID); if(ask!=0 && bid!=0) { if(c>o) { int suc=OrderSend(sym,OP_BUY,0.01,ask,3,0,0,cmt,0,0,clrNONE); } if(c<o) { int suc=OrderSend(sym,OP_SELL,0.01,bid,3,0,0,cmt,0,0,clrNONE); } } } } int ordersCount(string sym) {int ct=0; int c=OrdersTotal(); for(int i=c;i>=0;i--) {if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){continue;} if(OrderSymbol()!=sym){continue;} ct++;} return(ct);}
Sudah betul itu,,,mangtapsTerimakasih Codingnya Pak Amir. Saya ijin mengembangkan coding ini. Saya mau menambahkan coding untuk jumlah Op Buy dan Sell tiap Pair. coding yang saya tambahkan seperti ini, mohon dikoreksi:
int ordersCountBuy(string sym)
{
int type=OrderType();
int ct=0;
int c=OrdersTotal();
for(int i=c;i>=0;i--)
{
if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){continue;}
if(OrderSymbol()!=sym && type!=OP_BUY){continue;}
ct++;
}
return(ct);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int ordersCountSell(string sym)
{
int type=OrderType();
int ct=0;
int c=OrdersTotal();
for(int i=c;i>=0;i--)
{
if(!OrderSelect(i,SELECT_BY_POS)){continue;}
if(OrderSymbol()!=sym && type!=OP_SELL){continue;}
ct++;
}
return(ct);
}
Bisa di tambahkan kode agar op sehari satu kali?Sudah betul itu,,,mangtaps
Tambahkan function untuk cek TimeDay(OrderOpenTime()), bila sama dengan TimeDay(timeCurrent()) maka tidak usah buka order lagiBisa di tambahkan kode agar op sehari satu kali?