Open Forex4you Account

Server รัน EA 1000 / ปี

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

Author Topic: EA ตัวเดียวกัน เทรดหลายคู่เงิน บนหน้าจอเดียวกันได้หรือเปล่า ครับ  (Read 16999 times)

modfolow

  • Newbie
  • *
  • Posts: 5
ผมมือใหม่ คับ เรื่อง ea กำลังเริ่มนับหนึ่งคับ เลยอยากทราบว่า สมมติว่าเรา run ea ตัวเดียวกัน แต่หลายคู่เงิน โดยที่แต่ละคู่เงิน เปิด order ได้ครั้งละไม่เกิน 1 order คับ ขอความรู้หน่อย คับ

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
สิ่งที่คุณต้องการคืออะไรครับ

modfolow

  • Newbie
  • *
  • Posts: 5
ตามนี้นะ คับ ท่าน admin พอดีอยากศึกษา ea เลยขอ ea เพื่อนเอามาลองดู เงื่อนไข การ buy และ sell ดูจากการเรียงกันของค่า ema
1. ema1>ema8>ema15>ema25>ema40 order buy  ออกเมื่อ ema1<ema8
2. ema1<ema8<ema15<ema25<ema40 order sell  ออกเมื่อ ema1>ema8
3. เปิด order ครั้งละ 1 order
 
   ที่นี้พอเอา EA ไปใส่ 6 คู่่เงิน ตามภาพที่แนบมา คับ มันก็เปิดเพียงครั้งละหนึ่งออร์เดอร์ ทั้งที่คู่เงินอื่นๆ ก็เข้าเงื่อนไขแล้ว แต่ไม่เปิด
สิ่งที่ผมต้องการคือ จะต้องทำอย่างไรให้ ea ตัวเดียวกันใช้ได้กับหลายๆคู่เงิน เมื่อคู่ไหนเข้าเงื่อนไขก็เปิด โดยเปิดครั้งละแค่หนึ่งออร์เดอร์ต่อคู่เงิน
ผิดถูกประการใด ชี้แนะด้วย คับ

 code ea ตัวนี้ คับ
int start()
  { double lotsize = 0.05;
    double ma1   =iMA(NULL,0,1,0,MODE_EMA,PRICE_CLOSE,0);
    double ma8   =iMA(NULL,0,8,0,MODE_EMA,PRICE_CLOSE,0);
    double ma15  =iMA(NULL,0,15,0,MODE_EMA,PRICE_CLOSE,0);
    double ma25  =iMA(NULL,0,25,0,MODE_EMA,PRICE_CLOSE,0);
    double ma40  =iMA(NULL,0,40,0,MODE_EMA,PRICE_CLOSE,0);

    double total=OrdersTotal();
//----
   int ticket;
     if(OrdersTotal()==0)
       {if((ma1>ma8)&&(ma8>ma15)&&(ma15>ma25)&&(ma25>ma40))
          {ticket=OrderSend(Symbol(),OP_BUY,lotsize,Ask,10,Ask-60*Point,0,"Buy",0,0,Yellow);
          OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
          return(0);
          }
        if((ma1<ma8)&&(ma8<ma15)&&(ma15<ma25)&&(ma25<ma40))
          {ticket=OrderSend(Symbol(),OP_SELL,lotsize,Bid,10,Bid+60*Point,0,"Sell",0,0,Aqua);
          OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
          return(0);
          }
        }
       
//---- close ----
int    i;
int    Pos;
bool   Result;
//----close------
if((total>0)&&(ma1<ma8))
  {for(i=total-1; i>=0; i--)
     {if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==true)
        {Pos=OrderType();
         if(Pos==OP_BUY || Pos==OP_SELL)
           {if(Pos==OP_BUY)
            Result=OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE);
           }
         }
      }
   } 
//----close------
if((total>0) && (ma1>ma8))
  {for(i=total-1; i>=0; i--)
     {if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==true)
        {Pos=OrderType();
         if(Pos==OP_BUY || Pos==OP_SELL)
           {if(Pos==OP_SELL)
            Result=OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE);
           }
         }
      }
   }         
//----
   return(0);
  }


admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
ต้องกำหนด magic number ให้กับ EA ครับถึงใช้งานหลายคู่เงินได้พร้อมกันครับ

modfolow

  • Newbie
  • *
  • Posts: 5
ไม่รู้จะเริ่มตรงไหน ท่าน admin พอจะทำเป็นตัวอย่าง เอาไว้ศึกษาได้ไหม คับ บอกตามตรงพึ่งเริ่มอ่าน MQL4 บทหนึ่งบทสอง พึ่งได้รับหนังสือเช้านี้ ครับ

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
ไม่รู้จะเริ่มตรงไหน ท่าน admin พอจะทำเป็นตัวอย่าง เอาไว้ศึกษาได้ไหม คับ บอกตามตรงพึ่งเริ่มอ่าน MQL4 บทหนึ่งบทสอง พึ่งได้รับหนังสือเช้านี้ ครับ
อ่านก่อนครับ ในหนังสือเองก็มีวิธีการทำให้มันใช้งานได้อยู่ในตัวอย่างที่ 5 ครับ