Orders Execution
0
Views
0
Downloads
0
Favorites
Cutoff
//+------------------------------------------------------------------+
//| CutOff.mq4
//+------------------------------------------------------------------+
#property copyright "Copyright K Lam 2009"
#property link "http://www.FxKillU.net/"
#property show_confirm
// extern string Name_Expert = "Close All Trades";
//+------------------------------------------------------------------+
//| cal the point range |
//+------------------------------------------------------------------+
double GetSlippage() { return((Ask-Bid)/Point); }
//+------------------------------------------------------------------+
//| script "close Profit last to 0 order"
//+------------------------------------------------------------------+
int start()
{
bool result;
double price;
int cmd,error;
int cnt;
//close profit frist
for(cnt=OrdersTotal(); cnt > 0; cnt--) {//while(OrdersTotal()!=0) // very slow
if(OrderSelect(cnt-1,SELECT_BY_POS,MODE_TRADES)) {
if (OrderProfit()>0)
while(true) {
cmd=OrderType();
if (cmd==OP_BUY || cmd==OP_SELL) {
RefreshRates();
if(cmd==OP_BUY) price=Bid;
if(cmd==OP_SELL) price=Ask;// not the chart price!!
result=OrderClose(OrderTicket(),OrderLots(),price,GetSlippage(),CLR_NONE);
if(result!=TRUE) { error=GetLastError(); Print("LastError = ",error); }
else error=0;
if(error==129 || error==135) RefreshRates();
else break;
}
//---- delete first pending order
if(cmd!=OP_BUY && cmd!=OP_SELL)
{
result=OrderDelete(OrderTicket());
break;
}
}//while
} else Print( "Error when order select ", GetLastError());
}
//close profit frist
for(cnt=OrdersTotal(); cnt > 0; cnt--) {//while(OrdersTotal()!=0) // very slow
if(OrderSelect(cnt-1,SELECT_BY_POS,MODE_TRADES)) {
while(true) {
cmd=OrderType();
//if (OrderProfit()>0)
if (cmd==OP_BUY || cmd==OP_SELL) {
RefreshRates();
if(cmd==OP_BUY) price=Bid;
if(cmd==OP_SELL) price=Ask;// not the chart price!!
result=OrderClose(OrderTicket(),OrderLots(),price,GetSlippage(),CLR_NONE);
if(result!=TRUE) { error=GetLastError(); Print("LastError = ",error); }
else error=0;
if(error==129 || error==135) RefreshRates();
else break;
}
//---- delete first pending order
if(cmd!=OP_BUY && cmd!=OP_SELL)
{
result=OrderDelete(OrderTicket());
break;
}
}//while
} else Print( "Error when order select ", GetLastError());
}
Print("CutOff All Order at ",TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS)," Now Total Order =",OrdersTotal());
return(0);
}
//+------------------------------------------------------------------+
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---