รบกวนดู 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);
}
รบกวนด้วยครับ
และขอบคุณล่วงหน้าครับ