Open Forex4you Account

Server รัน EA 1000 / ปี

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

Author Topic: ถูกต้องหรือไม่ค่ะ  (Read 7127 times)

win_dream

  • Jr. Member
  • **
  • Posts: 64
ถูกต้องหรือไม่ค่ะ
« on: มกราคม 22, 2012, 12:04:09 pm »
ถ้าต้องการเขียนอีเอให้เทรดตามวันและเวลาที่เรากำหนด ต้องเขียนแบบนี้หรือป่าวค่ะ  (เทรดตามเวลาข่าวออกแต่เราไม่เทรดทุกข่าวแต่จะเลือกเฉพาะข่าวที่เรามั่นใจว่าต้องไปทางไหนเท่านั้น )

แบบที่ 1


extern double Lots=0.1;
extern double SL=100;
extern double TP=10;

extern bool OpenBUY=True;
extern bool OpenSELL=True;
extern int hour =9;
extern int minute=14;
extern int hour2 =1;
extern int minute2=35;
extern int hour3 =16;
extern int minute3=10;
extern int hour4 =9;
extern int minute4=35;
extern int hour5 =13;
extern int minute5=14;

int start()
{
   int total=OrdersTotal();
   
   if(total<1)
   {
   if (DayOfWeek() == 1) {                                                            คำสั่งที่ 1
   if(Hour()==hour && Minute()==minute )
   {
      if(OpenBUY==True)
      {
     
      OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-Point*SL,Ask+Point*TP,"Time",555,0,Green);


  {
 
   
 
   {
  if (DayOfWeek() == 2) {
   if(Hour()==hour2 && Minute()==minute2 )                          คำสั่งที่ 2
   {
       if(OpenSELL==True)
     {
     
     
     OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+Point*SL,Bid-Point*TP,"Time",555,0,Red);
     
     
     ไล่ไปเรื่อย ๆ วันที่ 3-4-5
     
     
     
     
    }}}}}}}}}}

***** แต่พอเทรดมันเทรดแค่คำสั่งแรกเท่านั้นค่ะ คำสั่งที่ 2 ไม่เทรด***(

-----------------------------------------------------------------------------------------------

แบบที่ 2


extern double Lots=0.1;
extern double SL=100;
extern double TP=10;

extern bool OpenBUY=True;
extern bool OpenSELL=True;
extern int hour =9;
extern int minute=14;
extern int hour2 =1;
extern int minute2=35;
extern int hour3 =16;
extern int minute3=10;
extern int hour4 =9;
extern int minute4=35;
extern int hour5 =13;
extern int minute5=14;

int start()
{
   int total=OrdersTotal();
   
   if(total<1)
   {
   if (DayOfWeek() == 2) {                                                      คำสั่งที่ 1
   if(Hour()==hour2 && Minute()==minute2 )
   {
      if(OpenBUY==True)
      {
     
      OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-Point*SL,Ask+Point*TP,"Time",555,0,Green);


  {
 
   
 
   {
  if (DayOfWeek() == 2) {
   if(Hour()==hour2 && Minute()==minute2 )                          คำสั่งที่ 2
   {
       if(OpenSELL==True)
     {
     
     
     OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+Point*SL,Bid-Point*TP,"Time",555,0,Red);
     
     
     ไล่ไปเรื่อย ๆ วันที่ 3-4-5
     
     
     
     
    }}}}}}}}}}

***** แบบนี้เทรดทั้ง 2 คำสั่งพร้อมกันออก 2 ออร์เดอร์***(

----------------------------------------------------------------------------------

*****รบกวนแอดมินช่วยดูให้นิดค่ะว่าเป็นเพราะอะไรแล้วถ้าไม่ถูกต้อง ต้องเขียนแบบไหนค่ะ

+++++แบบนี้เป็นแบบตั้งให้ซื้อขายตามวันเวลาที่เรากำหนด ต่อสัปดาห์  และถ้าต้องการตั้งให้ซื้อขายตามวันและเวลาล่วงหน้า 1 เดือนต้องทำอย่างไงค่ะ  รบกวนแอดมินช่วยแนะนำด้วยค่ะ 


ขอบคุณล่วงหน้าค่ะ รบกวนด้วยนะคะ




admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
Re: ถูกต้องหรือไม่ค่ะ
« Reply #1 on: มกราคม 22, 2012, 01:05:38 pm »
แบบแรกจะเปิดวันจันตามเวลาที่กำหนด แล้วที่มันไม่เปิดอันที่ 2 ที่เป้นวันอังคารเพระมันอาจจะยังมี order ค้างอยู่ครับจากตรงนี้   if(total<1) ทำให้ไม่เปิดต่อครับ
แบบที่ 2 มันเงื่อนไขแบบเดียวกันคืเปิดวันอังคารเวลาเดียวกันทั้งคู่ก็เลยทำ 2 อันพร้อมกันครับ

 

win_dream

  • Jr. Member
  • **
  • Posts: 64
Re: ถูกต้องหรือไม่ค่ะ
« Reply #2 on: มกราคม 22, 2012, 03:07:13 pm »
ลองแบคเทส แล้วแบบที่ 1 วันจันทร์มันปิดไปแล้ว แต่มันไม่เปิดวันอังคารค่ะ เคยงงค่ะว่าเพราะอะไรมันถึงไม่เปิดตั๋ววันอังคาร ??? ???

+++++แบบนี้เป็นแบบตั้งให้ซื้อขายตามวันเวลาที่เรากำหนด ต่อสัปดาห์  และถ้าต้องการตั้งให้ซื้อขายตามวันและเวลาล่วงหน้า 1 เดือนต้องทำอย่างไงค่ะ  รบกวนแอดมินช่วยแนะนำด้วยค่ะ 



admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
Re: ถูกต้องหรือไม่ค่ะ
« Reply #3 on: มกราคม 22, 2012, 07:32:32 pm »
วงเล็บมันปิดไม่ถูกที่ครับ ต้องปิดแบบนี้
if(Hour()==hour && Minute()==minute )
   {
      if(OpenBUY==True)
      {
     
      OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-Point*SL,Ask+Point*TP,"Time",555,0,Green);


  }
 
   
 
   }

ส่วนทั้งเดือนไม่มีไรมากทำได้ให้มัน work แค่อาทิตย์เดียวก็เท่ากับได้ทั้งหมดแล้วครับ แต่ถ้าจะไปนั่งแยกเป็นรายวันอีกผมว่ามันเสียเวลามากไปครับ

win_dream

  • Jr. Member
  • **
  • Posts: 64
Re: ถูกต้องหรือไม่ค่ะ
« Reply #4 on: มกราคม 22, 2012, 11:17:47 pm »
 ;D  ได้แล้วค่ะ ทั้ง 5 วัน ขอบพระคุณมากนะคะที่ชี้แนะ ขอบคุณพันครั้งค่ะ  :D