Open Forex4you Account

Server รัน EA 1000 / ปี

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

Author Topic: eaที่ตั้เวลาเทรด  (Read 11382 times)

berserk

  • Newbie
  • *
  • Posts: 42
eaที่ตั้เวลาเทรด
« on: กุมภาพันธ์ 18, 2010, 12:43:58 pm »
คือว่าอยากได้eaที่ตั้งเวลาได้ว่าให้้sell/buyตอนกี่โมงก็ได้น่ะครับและมีsl/tpด้วยครับ

thanarat27

  • Newbie
  • *
  • Posts: 40
    • mobile.feawt.com
Re: eaที่ตั้เวลาเทรด
« Reply #1 on: กุมภาพันธ์ 18, 2010, 01:16:02 pm »
extern int OpenHour = 0;
extern int CloseHour = 0;

//+------------------------------------------------------------------+
//| TradeTime                                                                   |
//+------------------------------------------------------------------+  
   int IsTradeTime() {
   if (OpenHour < CloseHour && TimeHour(TimeCurrent()) < OpenHour || TimeHour(TimeCurrent()) >= CloseHour) return (0);
   if (OpenHour > CloseHour && (TimeHour(TimeCurrent()) < OpenHour && TimeHour(TimeCurrent()) >= CloseHour)) return (0);
   if (CloseHour == 0) CloseHour = 24;
   if (Hour() == CloseHour - 1 && Minute() >= 55) return (0);
   return(1);}
//+------------------------------------------------------------------+  


นี่คือตัวอย่าง การนำโคดฟังชั่นตั้งเวลาเทรดไปใส่อีเอที่มีอยู่แล้วนะครับ เผื่อว่าจะเอาไปใช้กันได้เองง่าย ๆ เลยครับ

วิธีใช้ก็คือ   1. ก๊อปปี้โคด extern ......ข้างบนนี้ไปไว้ในส่วนบนของโคด (ก็ใน Zone ที่มี extern เหมือนๆ กันแหละครับ  ;D)

             2. ก๊อปปี้โคดในส่วนของ TradeTime ข้างบนนี้ ไปไว้ตรงไหนของโคดอีเอก็ได้ แต่ระวังเรื่องการวางซ้อนโคดตัวอื่น ๆ เช่น
   if .....
     {
         ......
     }

แบบนี้อย่าวางไว้ข้างในนะครับ พูดง่าย ๆ คือ ให้วางอยู่นอกคำสั่งทั้งหลาย หรือจะวางก่อน int start() ก็ไม่ว่ากันครับ

             3. ให้นำ IsTradeTime() ไปวางใน if เพื่อเป็นเงื่อนไขเพิ่มเติมจากเดิม ของอีเอที่ไม่มีการตั้งเวลานะครับ เช่น

//+------------------------------------------------------------------+
if (IsTradeTime() && total <1)
   {
      if (EMA15 > EMA50)
         {
             BuyPrice=Ask;          
             if (TakeProfit==0) { tp=0; }
             else { tp=BuyPrice2+TakeProfit*Point; }   
             if (StopLoss==0)  { sl=0; }
             else { sl=BuyPrice2-StopLoss*Point; }
             OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,sl,tp,NULL,321,0,Blue);
             return(0);  
         }
      if (EMA15 < EMA50 )  
         {              
             SellPrice=Bid;
             SellPrice2=Bid-Point*S_Stop;         
             if (TakeProfit==0) { tp=0; }
             else { tp=SellPrice2-TakeProfit*Point; }   
             if (StopLoss==0) { sl=0; }
             else { sl=SellPrice2+StopLoss*Point;  }
             OrderSend(Symbol(),OP_SELLSTOP,g_lots_376,Bid-Point*S_Stop,Slippage,sl,tp,NULL,321,0,Pink);        
             return(0);    
         }            
   }                    
//+------------------------------------------------------------------+

โคดข้างบนนี้เป็นเพียงตัวอย่างการใช้งานอย่างเดียวนะครับ มันไม่สามารถใช้ได้เพราะยังไม่ได้ประกาศตัวแปรหลายตัวครับ  ;D

ขอให้นำฟังชั่นการตั้งเวลาไปใช้เพียงอย่างเดียวก็พอครับ มีอะไรสงสัย ถามได้เลยครับ ว่าง ๆ มาตอบนะ  ;)
« Last Edit: กุมภาพันธ์ 18, 2010, 01:28:26 pm by thanarat27 »
บทความเกี่ยวกับ โทรศัพท์มือถือ

http://mobile.feawt.com

kung_com

  • Newbie
  • *
  • Posts: 20
Re: eaที่ตั้เวลาเทรด
« Reply #2 on: เมษายน 08, 2010, 08:57:42 pm »
ขอบคุณมากครับ :D

kung_com

  • Newbie
  • *
  • Posts: 20
Re: eaที่ตั้เวลาเทรด
« Reply #3 on: เมษายน 10, 2010, 08:46:58 pm »
รบกวนเพิ่มเติมอีกนิดนึงขอรับ

ช่วยปรับ code ให้ตัวนี้ระบุ นาที ด้วยได้มั๊ยครับ