Open Forex4you Account

Server รัน EA 1000 / ปี

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

Author Topic: หัดเขียน ea แบบง่าย ๆ แต่ติดปัญหา ครับ  (Read 7321 times)

gigo

  • Newbie
  • *
  • Posts: 4
รบกวนดู code ให้หน่อยครับ พอดีหัดเขียน คือว่ามันสามารถเปิด order ได้และปิด TP ,SL ได้ แล้ว
แต่ต้องการให้มัน ปิด order เมื่อสถานะการณ์บางอย่างเปลี่ยนไป คือเงือนไข แบบพื้น ๆ ครับ
คือว่า ใช้ ema 8 , 13 , 55
Buy 8 ตัด 55 ขึ้น
Sell 8 ตัด 55 ลง
ตรงส่วนนี้มันทำงานแล้ว แต่ที่มันไม่ทำคือ ให้ปิดสถานะเมือ 8 ตัด 13 ไม่ว่าเราจะมีสถานะ buy หรือ sell
ให้ปิดเลยครับ
ตัวอย่าง code


//+------------------------------------------------------------------+
//|                                                  test  ima().mq4 |
//|                      Copyright ฉ 2010, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright ฉ 2010, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   double  ma8,ma13,ma55,ma200;
   int total;
   int ticket;
   ma8= iMA(NULL,0,8,0,0,0,0);
   ma13=iMA(NULL,0,13,0,0,0,0);
   ma55=iMA(NULL,0,55,0,0,0,0);
   ma200=iMA(NULL,0,200,0,MODE_SMMA,PRICE_MEDIAN,0);
   total=OrdersTotal();
  
   if(total < 1)
   {
   //-- Buy ----
      if ((ma8 > ma55)&& (ma8 > ma13))
      {
         ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-Point*500,Ask+Point*200,"ea_test",0,0,Blue);
         OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);//
        
         if ((total == 1) && (ma8 < ma13))
         {
              
              OrderSelect(ticket,SELECT_BY_POS,MODE_TRADES);
              OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),3,Blue);
         }
      }
      //--Sell ----
      
      if ((ma8 < ma55) && (ma8 < ma13))
      {
         ticket=OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Ask+Point*500,Bid-Point*200,"ea_test",0,0,Red);
         OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);//
        
         if ((total == 1)&& (ma8 > ma13))
         {
                
              OrderSelect(ticket,SELECT_BY_POS,MODE_TRADES);
              OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),3,Red);    
         }
       }  
  }
  
//----
   return(0);
  }


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



 :D
« Last Edit: มีนาคม 05, 2011, 10:02:33 pm by gigo »

D_Diamond

  • Hero Member
  • *****
  • Posts: 673
    • Expert Forex Trading
รบกวนดู code ให้หน่อยครับ พอดีหัดเขียน คือว่ามันสามารถเปิด order ได้และปิด TP ,SL ได้ แล้ว
แต่ต้องการให้มัน ปิด order เมื่อสถานะการณ์บางอย่างเปลี่ยนไป คือเงือนไข แบบพื้น ๆ ครับ
คือว่า ใช้ ema 8 , 13 , 55
Buy 8 ตัด 55 ขึ้น
Sell 8 ตัด 55 ลง
ตรงส่วนนี้มันทำงานแล้ว แต่ที่มันไม่ทำคือ ให้ปิดสถานะเมือ 8 ตัด 13 ไม่ว่าเราจะมีสถานะ buy หรือ sell
ให้ปิดเลยครับ
ตัวอย่าง code


//+------------------------------------------------------------------+
//|                                                  test  ima().mq4 |
//|                      Copyright ฉ 2010, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright ฉ 2010, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   double  ma8,ma13,ma55,ma200;
   int total;
   int ticket;
   ma8= iMA(NULL,0,8,0,0,0,0);
   ma13=iMA(NULL,0,13,0,0,0,0);
   ma55=iMA(NULL,0,55,0,0,0,0);
   ma200=iMA(NULL,0,200,0,MODE_SMMA,PRICE_MEDIAN,0);
   total=OrdersTotal();
   
   if(total < 1)
   {

   //-- Buy ----
      if ((ma8 > ma55)&& (ma8 > ma13))
      {
         ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-Point*500,Ask+Point*200,"ea_test",0,0,Blue);
         OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);//
         
        if ((total == 1) && (ma8 < ma13))
         {
               
              OrderSelect(ticket,SELECT_BY_POS,MODE_TRADES);
              OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),3,Blue);
        }
      }
      //--Sell ----
     
      if ((ma8 < ma55) && (ma8 < ma13))
      {
         ticket=OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Ask+Point*500,Bid-Point*200,"ea_test",0,0,Red);
         OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);//
         
         if ((total == 1)&& (ma8 > ma13))
         {
               
              OrderSelect(ticket,SELECT_BY_POS,MODE_TRADES);
              OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),3,Red);   
         }
       }   
  }
 
//----
   return(0);
  }


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



 :D

gigo

  • Newbie
  • *
  • Posts: 4
ขอบคุณมากครับ :D