EA Programing => ปัญหาที่พบในการเขียน EA => Topic started by: tanapai on พฤษภาคม 10, 2011, 06:23:32 am
-
extern double lots = 1.0;
extern double sl =55;
extern double tp =55;
extern double trailing =20;
extern int MaxOrder =4;
int start()
{
if(OrdersTotal()<MaxOrder)
{
double var1 = 0.00025;
double var2 = 0.00010;
double ma1 =iMA(NULL,0,15,0,MODE_SMMA,PRICE_MEDIAN,0);
double ma2 =iMA(NULL,0,25,0,MODE_SMMA,PRICE_MEDIAN,0);
double min = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);
double sig = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);
if ((ma2-var2>=ma1))
{
if ((sig-var1)>=min)
{OrderSend(Symbol(),OP_SELL,lots,Bid,3,Bid+Point*sl,Bid-Point*tp,"EA Creator",123,0,Red); }
}
if ((ma2+var2<=ma1))
{
if ((sig+var1)<=min)
{OrderSend(Symbol(),OP_BUY,lots,Ask,3,Ask-Point*sl,Ask+Point*tp,"EA Creator",123,0,Green);}
}
}
return(0) ;
}
-
อยากสอบถามคับ
จากโค๊ตด้านบน
เวลาเราตั้ง MaXorder มากกว่า 1 ไม่อยากให้มันเปิด order ติดกันในเวลาเดียวกันอะคับ อยากให้มันเปิดห่าง ๆ กันหน่อยอะคับ ประมาณสัก 30 นาทีแล้วค่อยเปิด order ใหม่
ปัญหาตอนนี้คือ เวลาเปิด order มันเปิดในเวลาเดียวกันจนครบเลยคับ ???
ช่วยแนะนำหน่อยครับท่าน admin
-
ใช้คำสั่ง Sleep() และ return() ตามหลัง code ที่สั่งชื้อครับ Sleep คือการหน่วงเวลา ครับเมื่อครบเวลาก็ให้ return เพื่อเริ่มการทำงาน EA ใหม่ครับ
-
ขอบคุณคับ ท่าน admin ;D