| / | Forum |
|
Yoda_Glenn
2008.07.24 23:25
Does anyone know of any simple code that will close all of my orders based on GMT (time?) Thanks, would be much appreciated!
|
|
Useful hints for the Championship participants As the rules of the Championship are rigid enough we would like to explain them in more details. As well to give help on writing correct experts. |
|
BarrowBoy
2008.07.25 13:21
YG Try something like... extern int MagicNumber = 1234; extern int CloseHour = 18; start() { if (Hour() > CloseHour) { CloseAllBuyOrders(MagicNumber); CloseAllSellOrders(MagicNumber); } return (0) } void CloseAllBuyOrders(int MN) { int i, iTotalOrders; iTotalOrders=OrdersTotal(); for (i=0; i<iTotalOrders; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderMagicNumber()==MN) { if (OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,5,Violet); if (OrderType()==OP_BUYSTOP) OrderDelete(OrderTicket()); if (OrderType()==OP_BUYLIMIT) OrderDelete(OrderTicket()); } } } } void CloseAllSellOrders(int MN) { int i, iTotalOrders; iTotalOrders=OrdersTotal(); for (i=0; i<iTotalOrders; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderMagicNumber()==MN) { if (OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,5,Violet); if (OrderType()==OP_SELLSTOP) OrderDelete(OrderTicket()); if (OrderType()==OP_SELLLIMIT) OrderDelete(OrderTicket()); } } } } This has worked - but IIRC, Rosh has said we should go back the other way when deleting orders, i.e. use i-- -BB- |
33249 |
Rosh
2008.07.25 13:46
void CloseAllBuyOrders(int MN) { int i, iTotalOrders; iTotalOrders=OrdersTotal()-1; for (i=iTotalOrders; i>=0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderMagicNumber()==MN) { if (OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,5,Violet); if (OrderType()==OP_BUYSTOP) OrderDelete(OrderTicket()); if (OrderType()==OP_BUYLIMIT) OrderDelete(OrderTicket()); } } } } void CloseAllSellOrders(int MN) { int i, iTotalOrders; iTotalOrders=OrdersTotal()-1; for (i=iTotalOrders; i>=0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderMagicNumber()==MN) { if (OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,5,Violet); if (OrderType()==OP_SELLSTOP) OrderDelete(OrderTicket()); if (OrderType()==OP_SELLLIMIT) OrderDelete(OrderTicket()); } } } } |