| / | 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!
|
|
Automated Trading Today and Tomorrow As is known, chaotic and irregular trading can result in huge financial losses. However, even having developed an effective trading strategy, one cannot be fully sure of success. Man is not a robot. |
|
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- |
32044 |
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()); } } } } |