Author: Copyright K Lam 2009
Cutoff
Orders Execution
Checks for the total of open ordersIt Closes Orders by itself
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 supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---