|
//+------------------------------------------------------------------+ //| 一鍵三單.mq4 | //| | //| 平反向舊單,新單設(shè)止損,增加兩單 | //+------------------------------------------------------------------+ #property link "shang9" extern int slippage=2;//滑點(diǎn) extern int stoploss=40;//止損 extern int wait=180;//補(bǔ)單有效時(shí)間(秒) //-------------------------------------------------------------------- double g_point; int init() { if (Point == 0.00001) g_point = 0.0001; else { if (Point == 0.001) g_point = 0.01; else g_point = Point; } return (0); } //-------------------------------------------------------------------- int start() { //------------------------------------------------------------------平反向舊單 if (OrdersTotal( ) > 1 ) { if(OrderSelect(OrdersTotal()-1,SELECT_BY_POS,MODE_TRADES)==true) { if(OrderType()==OP_BUY && OrderSymbol()==Symbol()) { for(int i=0;i<OrdersTotal()-1;i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) { if(OrderType()==OP_SELL && OrderSymbol()==Symbol()) OrderClose(OrderTicket(),OrderLots(),Ask,slippage,CLR_NONE); } } } if(OrderType()==OP_SELL && OrderSymbol()==Symbol()) { for( i=0;i<OrdersTotal()-1;i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) { if(OrderType()==OP_BUY && OrderSymbol()==Symbol()) OrderClose(OrderTicket(),OrderLots(),Bid,slippage,CLR_NONE); } } } } } //----------------------------------------------------------------------------------------------加兩單 if (OrdersTotal( ) <3 ) { if(OrderSelect(OrdersTotal()-1,SELECT_BY_POS,MODE_TRADES)==true) { if((OrderType()==OP_BUY && OrderSymbol()==Symbol()) && TimeCurrent()-OrderOpenTime()<=wait) OrderSend(Symbol(),OP_BUY,OrderLots(),Ask,slippage,Ask-g_point*stoploss,0,"",0,0,Blue); if((OrderType()==OP_SELL && OrderSymbol()==Symbol()) && TimeCurrent()-OrderOpenTime()<=wait) OrderSend(Symbol(),OP_SELL,OrderLots(),Bid,slippage,Bid+g_point*stoploss,0,"",0,0,Blue); } } //----------------------------------------------------------------------------------------------補(bǔ)止損 if(OrderSelect(OrdersTotal()-1,SELECT_BY_POS,MODE_TRADES)==true) { if((OrderType()==OP_BUY && OrderSymbol()==Symbol()) && (OrderStopLoss()==0 && OrderMagicNumber()!=555)) OrderModify(OrderTicket(),OrderOpenPrice(),Ask-g_point*stoploss,OrderTakeProfit(),0,CLR_NONE); if((OrderType()==OP_SELL && OrderSymbol()==Symbol()) && (OrderStopLoss()==0 && OrderMagicNumber()!=555)) OrderModify(OrderTicket(),OrderOpenPrice(),Bid+g_point*stoploss,OrderTakeProfit(),0,CLR_NONE); } return(0); } |
|
|