#define __STRATEGY_MAGIC 1902502644
//Inputs
//Declaration
double _Moving_Avarage;
double _Moving_Avarage_2;
double _Moving_Avarage_3;
double _Moving_Avarage_4;
bool _Compare;
bool _Compare_2;
bool _Close_Position;
bool _Open_buy;
bool _Open_sell;
bool _Close_Position_2;
bool _Modify_Position;
bool _Modify_Position_2;
double _Order_Data;
double _Order_Data_2;
double _Order_Data_3;
double _Order_Data_4;
double _Ask;
double _Bid;
int start(){
//Level 1
_Moving_Avarage = iMA(Symbol(),0,26,0,0,0,0);
_Moving_Avarage_2 = iMA(Symbol(),0,12,0,0,0,0);
_Moving_Avarage_3 = iMA(Symbol(),0,12,0,0,0,0);
_Moving_Avarage_4 = iMA(Symbol(),0,26,0,0,0,0);
_Order_Data_2 = __Ticket(0);
_Order_Data_3 = __TakeProfit(0);
_Order_Data_4 = __StopLoss(0);
_Ask = Ask;
_Bid = Bid;
//Level 2
_Compare = _Moving_Avarage_2 > _Moving_Avarage;
_Compare_2 = _Moving_Avarage_4 > _Moving_Avarage_3;
if(false && !__isExist(_Ask))_Open_buy = OrderSend(Symbol(),0,0.1,MarketInfo(Symbol(),MODE_ASK),0,0,0,"",__STRATEGY_MAGIC + _Ask)>=0;
_Order_Data = __Lots(_Order_Data_3);
//Level 3
if(_Compare)_Close_Position = OrderClose(__Ticket(_Ask),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID)+MarketInfo(OrderSymbol(),MODE_SPREAD)*MarketInfo(OrderSymbol(),MODE_POINT)*(OrderType()==1),0);
if(false && !__isExist(_Bid))_Open_sell = OrderSend(Symbol(),0,0.1,MarketInfo(Symbol(),MODE_ASK),0,0,0,"",__STRATEGY_MAGIC + _Bid)>=0;
if(_Compare_2)_Close_Position_2 = OrderClose(__Ticket(_Bid),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID)+MarketInfo(OrderSymbol(),MODE_SPREAD)*MarketInfo(OrderSymbol(),MODE_POINT)*(OrderType()==1),0);
if(_Open_buy)_Modify_Position = OrderModify(__Ticket(0),0,OrderOpenPrice()+MarketInfo(OrderSymbol(),MODE_POINT)*0*(1-2*(OrderType()==0||OrderType()==2||OrderType()==4)),OrderOpenPrice()+MarketInfo(OrderSymbol(),MODE_POINT)*0*(1-2*(OrderType()==1||OrderType()==3||OrderType()==5)),0);
//Level 4
if(_Open_sell)_Modify_Position_2 = OrderModify(__Ticket(0),0,OrderOpenPrice()+MarketInfo(OrderSymbol(),MODE_POINT)*0*(1-2*(OrderType()==0||OrderType()==2||OrderType()==4)),OrderOpenPrice()+MarketInfo(OrderSymbol(),MODE_POINT)*0*(1-2*(OrderType()==1||OrderType()==3||OrderType()==5)),0);
return(0);
}
//Services
bool __selectOrderByMagic(int __magic){for(int __i=0;__i<OrdersTotal();__i++){if(OrderSelect(__i,SELECT_BY_POS,MODE_TRADES)&&OrderMagicNumber()==__STRATEGY_MAGIC+__magic)return(true);}return(false);}
bool __isExist(int __magic){return(__selectOrderByMagic(__magic));}
int __Ticket(int __magic){if(!__selectOrderByMagic(__magic))return(0);return(OrderTicket());}
double __Lots(int __magic){if(!__selectOrderByMagic(__magic))return(0);return(OrderLots());}
double __TakeProfit(int __magic){if(!__selectOrderByMagic(__magic))return(0);return(OrderTakeProfit());}
double __StopLoss(int __magic){if(!__selectOrderByMagic(__magic))return(0);return(OrderStopLoss());}
ระบบก็ง่ายๆครับถ้าเส้นMoving Average ตัดกันก็เปิดออเดอร์
ทั้งหมดนี้ใช้โปรแกมเขียนครับ แต่ว่าก็สงใสว่า ทำใมมันไปเปิดออเดอร์เลยหว่า -*- จากนี้ครับ
http://strategytune.com/app/แล้วอีกระะบบที่ทำยังไงก็ไม่ได้สักที (เขียนเองไม่รอด555เลยใช้ appแทน) คือตั้ง Buy Sell limitทุกครังที่เปิดเท่งทียนใหม่ -+จากจุดเปิด20pip
เมื่องเท่งเทียนเปลียน Buy Sell limit ที่ค้างก็จะยกเลิก แล้วเปิด Buy Sell limit ในเท่าเทียนใหม่
อ้อ แล้วก็มี CloseTradesทั้งLossและProfit อ่ะครับ
คร้ายๆกับEA Profit V6 (EURUSD) PendingOrder ในลักษณะการออกออเดอร์ เพียงแต่ลบ Slออกแล้วเปลียน จาก
CloseTrades_After_Account_Lossเป็นCloseTrades_After_Account_Profit นะครับจะเห็นภาพได้ง่าย
ขอบคุณสำหรับทุกความคิดเห็นครับ