//+------------------------------------------------------------------+
//| 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