Open Forex4you Account

Server รัน EA 1000 / ปี

สั่งชื้อคู่มือการโปรแรกม MQL4

Author Topic: อยากจะขอรบกวนเรื่องการตั้งเวลาทำงานของ EA หน่อยครับ  (Read 14764 times)

wisarut_tul

  • Newbie
  • *
  • Posts: 9
พอดี ใช้ระบบสร้าง EA ของเว็บไซต์แห่งนี้แหละครับ ได้ออกมาแบบข้างล่างนี้..

extern double lot =0.5;
extern double sl =5.5;
extern double tp =5;
extern double trailing =0;
extern int MaxOrder =5;
   
    void init()
{
if ( Digits==3 || Digits==5 ) { sl=sl*10; tp=tp*10; }

}

int start(){   

   double var1 = iStochastic(NULL,0,3,2,3,0,0,1,0);
   double var2 = iRSI(NULL,0,7,0,0);
   double var3 = iCCI(NULL,0,14,0,0);
   double var4 = iOsMA(NULL,0,12,26,9,0,0);

     if(( var1 > 80 ) && ( var2 > 80 ) && ( var3 > 100 ) && ( var4 <= 0.5 )) {
      OrderSend(Symbol(),OP_SELL,lot,Bid,3,Bid+sl*Point,Bid-tp*Point,"Tul",123,0,Green);
 }
     if(( var1 < 20 ) && ( var2 < 20) && ( var3 < -100 )&& ( var4 >= -0.5 )) {
      OrderSend(Symbol(),OP_BUY,lot,Ask,3,Ask-sl*Point,Ask+tp*Point,"Tul",123,0,Green);
}

return(0) ;
 }

มันก็ทำงานได้ปกตินะครับ แต่ทีนี้ผมอยากกำหนดเวลาการทำงานของมัน ว่าให้ทำงานแค่จากกี่โมง ถึงกี่โมงในแต่ละวัน
ผมต้องเพิ่มเติมต่อจากข้างบนยังไงบ้างครับ แล้วเวลาที่ใข้ในการตั้งจะเป็นเวลาของทาง Server ของโบรกเรา หรือว่าเวลาของคอมเราครับ?

ยังไงรบกวนผู้รู้หน่อยนะครับ
ขอบคุณมา ณ ที่นี้มากครับ  :)

D_Diamond

  • Hero Member
  • *****
  • Posts: 673
    • Expert Forex Trading
extern double lot =0.5;
extern double sl =5.5;
extern double tp =5;
extern double trailing =0;
extern int MaxOrder =5;
extern int StartTradingHour = 21;
extern int EndTradingHour = 22;

  
    void init()
{
if ( Digits==3 || Digits==5 ) { sl=sl*10; tp=tp*10; }

   if (StartTradingHour > 23) StartTradingHour -= 24;  // ปรับเวลาการเทรดข้ามคืน
   if (EndTradingHour > 23) EndTradingHour -= 24;


}

int start(){  

   double var1 = iStochastic(NULL,0,3,2,3,0,0,1,0);
   double var2 = iRSI(NULL,0,7,0,0);
   double var3 = iCCI(NULL,0,14,0,0);
   double var4 = iOsMA(NULL,0,12,26,9,0,0);

if ( IsTradeTime() )  // เช็กเวลา
{
     if(( var1 > 80 ) && ( var2 > 80 ) && ( var3 > 100 ) && ( var4 <= 0.5 )) {
      OrderSend(Symbol(),OP_SELL,lot,Bid,3,Bid+sl*Point,Bid-tp*Point,"Tul",123,0,Green);
 }
     if(( var1 < 20 ) && ( var2 < 20) && ( var3 < -100 )&& ( var4 >= -0.5 )) {
      OrderSend(Symbol(),OP_BUY,lot,Ask,3,Ask-sl*Point,Ask+tp*Point,"Tul",123,0,Green);
}
}
return(0) ;
 }


bool IsTradeTime()   // ฟังก์ชั่นเช้กเวลา
{
   if (StartTradingHour < EndTradingHour && TimeHour(TimeCurrent()) < StartTradingHour || TimeHour(TimeCurrent()) >= EndTradingHour) return (FALSE);
   if (StartTradingHour > EndTradingHour && (TimeHour(TimeCurrent()) < StartTradingHour && TimeHour(TimeCurrent()) >= EndTradingHour)) return (FALSE);
   if (EndTradingHour == 0) EndTradingHour = 24;
   if (Hour() == EndTradingHour - 1 && Minute() >= 50) return (FALSE);
   return (TRUE);
}




โค้ดตัวอย่างจากอีเอ fapturbo ครับ
« Last Edit: เมษายน 09, 2013, 10:22:50 pm by D_Diamond »

wisarut_tul

  • Newbie
  • *
  • Posts: 9
ขอบคุณมากๆ เลยนะครับ ว่าแต่เวลาที่ตั้งนี่ต้องเป็นเวลาตาม Server ของโบรกใช่ปะครับ?

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
ขอบคุณมากๆ เลยนะครับ ว่าแต่เวลาที่ตั้งนี่ต้องเป็นเวลาตาม Server ของโบรกใช่ปะครับ?
คำสั่งใน EA ทุกตัวอย่างอิงจาก MT4 ที่เปิดอยู่ครับเวลาก็เช่นกันเป้นเวลาของ Server ของโบรเกอร์ครับ