Author: Copyright � 2015, Awran5
Orders Execution
Checks for the total of open ordersIt can change open orders parameters, due to possible stepping strategyIt Closes Orders by itself
Miscellaneous
It issuies visual alerts to the screenIt plays sound alerts
0 Views
0 Downloads
0 Favorites
iclean
//+------------------------------------------------------------------+
//|                                                       iClean.mq4 |
//|                                        Copyright © 2015, Awran5. |
//+------------------------------------------------------------------+

#property copyright "Copyright © 2015, Awran5"
#property description "Clean, Close, Delete all orders."
#property version   "1.00"
#property strict
#property show_inputs

//--- Dependencies
#import "stdlib.ex4"
string ErrorDescription(int e);
#import
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
enum Select
  {
   None,             // Select
   break1,           // ---- Clean
   CleanBuy,         // Clean Buy
   CleanSell,        // Clean Sell 
   CleanBuyLimit,    // Clean Buy limit
   CleanSellLimit,   // Clean Sell limit
   CleanBuyStop,     // Clean Buy stop
   CleanSellStop,    // Clean Sell stop 
   break2,           // ---- Close
   CloseBuy,         // Close Buy
   CloseSell,        // Close Sell
   break13,          // ---- Delete
   DeleteBuyLimit,   // Delete Buy limit
   DeleteSellLimit,  // Delete Sell limit
   DeleteBuyStop,    // Delete Buy stop
   DeleteSellStop    // Delete Sell stop
  };
input Select SelectOrders=None;   // Choose Action
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   doAction();
  }
//+------------------------------------------------------------------+
void doAction()
  {
   if(SelectOrders==None) Alert("Please select any Action!");
   else if(SelectOrders == CleanBuy)        CleanAll(0);
   else if(SelectOrders == CleanSell)       CleanAll(1);
   else if(SelectOrders == CloseBuy)        CloseAll(0, Bid);
   else if(SelectOrders == CloseSell)       CloseAll(1, Ask);
//---
   else if(SelectOrders == CleanBuyLimit)   CleanAll(2);
   else if(SelectOrders == CleanSellLimit)  CleanAll(3);
   else if(SelectOrders == CleanBuyStop)    CleanAll(4);
   else if(SelectOrders == CleanSellStop)   CleanAll(5);
//---
   else if(SelectOrders == DeleteBuyLimit)  DeleteAll(2);
   else if(SelectOrders == DeleteSellLimit) DeleteAll(3);
   else if(SelectOrders == DeleteBuyStop)   DeleteAll(4);
   else if(SelectOrders == DeleteSellStop)  DeleteAll(5);
  }
//+------------------------------------------------------------------+
//| CLEAN ALL ORDER'S STOPLOSS AND TAKEPROFIT
//+------------------------------------------------------------------+
void CleanAll(int type)
  {
//----
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         if(OrderType()==type)
           {
            if(!OrderModify(OrderTicket(),OrderOpenPrice(),0,0,0,0))
               Alert(ErrorDescription(GetLastError()));
            else PlaySound("ok.wav");
           }
     }
//----
  }
//+------------------------------------------------------------------+
//| CLOSE OPENED ORDERS
//+------------------------------------------------------------------+
void CloseAll(int type,double price)
  {
//----
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         if(OrderType()==type)
           {
            if(!OrderClose(OrderTicket(),OrderLots(),price,0,clrYellow))
               Alert(ErrorDescription(GetLastError()));
            else PlaySound("ok.wav");
           }
     }
//----
  }
//+------------------------------------------------------------------+
//| DELETE PENDING ORDERS
//+------------------------------------------------------------------+
void DeleteAll(int type)
  {
//----
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         if(OrderType()==type)
           {
            if(!OrderDelete(OrderTicket(),0))
               Alert(ErrorDescription(GetLastError()));
            else PlaySound("ok.wav");
           }
     }
//----
  }
//+------------------------------------------------------------------+
//|                           E N D                                  |
//+------------------------------------------------------------------+

Comments