1 order dalam 1 bar...
ordernya bisa jadi pada saat pembukaan bar ataupun sudah berjalan beberapa saat..
setelah kena TP walaupun signalnya masih sama dan bar / candle masih sama maka tidak akan melakukan order ..
kondisi akan melakukan order :
Signal dan mengecek apakah dalam bar/candle tsb sudah pernah order atau belum
trims sebelumnya
berarti EA tersebut hanya selalu satu order ya (tunggu TP atau SL baru order lagi) ?
Kalau iya codenya mungkin seperti iniCode:if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY)) { if (iBarShift(Symbol(),0,OrderOpenTime(),true)==0)return (0); }
yup.. order hanya satu aja . sampai dengan TP /SL tersentuh..
saya sudah test code tersebut. dan "problem solved"
logika yang aku tangkap :
kita membaca order terakhir yang sudah ter close berada di bar tersebut (orderopentime()) ...
thanks bro chandra...
hallo bos, saya sempat buat kode :
ReplyDeleteextern string Nama_EA = "Muin Punya";
extern int TP = 5;
extern int SL = 600;
extern double Lots = 0.1;
extern int Magic1 = 66;
extern int Magic2 = 67;
extern int Maxtrade = 1;
extern int Paramater1 = 3;
extern int Paramater2 = 4;
extern double MovingPeriod = 8;
extern double MovingShift = 0;
extern double Selisih_candle = 0;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
if( ((High[1]-Low[1])/Paramater1)>(Open[1]-Low[1])
&& ((High[1]-Low[1])/Paramater2)>(Close[1]-Open[1])
&& OrdersTotal()<=Maxtrade
&& ((High[1]-Low[1])<=Selisih_candle )
)
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point, Bid-TP*Point,Nama_EA,Magic1,0,Blue) ;
}
if( ((High[1]-Low[1])/Paramater1)>(High[1]-Open[1])
&& ((High[1]-Low[1])/Paramater2)>(High[1]-Close[1])
&& OrdersTotal()<=Maxtrade
&& ((High[1]-Low[1])>=Selisih_candle )
&& iBarShift(Symbol(),PERIOD_M15,OrderOpenTime(),true)==0
)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-SL*Point, Ask+TP*Point,Nama_EA,Magic2,0,Blue) ;
}
//----
return(0);
}
//+------------------------------------------------------------------+
pertanyaan saya, kok ndak bisa OP ya baik buy maupun sell, tapi kalo saya hilangkan script " && iBarShift(Symbol(),PERIOD_M15,OrderOpenTime(),true)==0 " yang sama dengan bos jelaskan bisa OP tu EA, cuma OPnya tidak sesuai yang saya harapkan. dimana OP yang saya harapkan adalah berdasarkan syarat diatas, cuma setiap 1 bar hanya bisa OP 1 ditambah syarat yang saya tuliskan dalam script, dimanakah kesalahan Script yang saya buat?