//+------------------------------------------------------------------+
//| CloseAllButton.mq4 |
//| FX Seal |
//| http://www.fxseal.com |
//+------------------------------------------------------------------+
#property copyright "FX Seal"
#property link "http://www.fxseal.com"
#property version "1.00"
#property strict
enum corner_Rus // перечисление именованных констант
{
CORNER_0=0, // правый верхний
CORNER_1=1, // левый верхний
CORNER_2=2, // правый нижний
CORNER_3=3, // левый нижний
};
//extern ENUM_BASE_CORNER Corner = 1;
extern corner_Rus Corner = 0;// Угол привязки
extern int XDISTANCE = 1150, //Смещение по горизонтали
//extern int XDISTANCE = 25 //стандарт
//extern int XDISTANCE = 1170,
YDISTANCE = 110, //Смещение по вертикали
//YDISTANCE = 25// стандарт
XSIZE = 120, // Ширина кнопки
//XSIZE = 100, //стандарт
YSIZE = 30, // Высота кнопки
//YSIZE = 50, //стандарт
FONTSIZE = 12; // Размер шрифта
extern string text = "Закрыть ВСЁ"; // Текст
//extern string text = "CLOSE ALL"; //стандарт
extern color BGCOLOR = clrRed, // Цвет кнопки
BORDER_COLOR = clrRed, // Цвет рамки
text_COLOR = clrWhite; //Цвет текста
string objname="CloseButton";
double dy=0,
dx=0;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
dy=(FONTSIZE/10.0);
dx=(FONTSIZE/15.0);
ObjectCreate(0,objname,OBJ_BUTTON,0,0,0);
ObjectSet(objname, OBJPROP_CORNER, Corner);
ObjectSetInteger(0,objname,OBJPROP_XDISTANCE,XDISTANCE);
ObjectSetInteger(0,objname,OBJPROP_YDISTANCE,YDISTANCE);
ObjectSetInteger(0,objname,OBJPROP_XSIZE,XSIZE*dx+30);
ObjectSetInteger(0,objname,OBJPROP_YSIZE,YSIZE*dy);
ObjectSetString(0,objname,OBJPROP_TEXT,text);
ObjectSetInteger(0,objname,OBJPROP_COLOR,text_COLOR);
ObjectSetInteger(0,objname,OBJPROP_BGCOLOR,BGCOLOR);
ObjectSetInteger(0,objname,OBJPROP_BORDER_COLOR,BORDER_COLOR);
ObjectSetInteger(0,objname,OBJPROP_BORDER_TYPE,BORDER_FLAT);
ObjectSetInteger(0,objname,OBJPROP_HIDDEN,true);
ObjectSetInteger(0,objname,OBJPROP_STATE,false);
ObjectSetInteger(0,objname,OBJPROP_FONTSIZE,FONTSIZE);
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
ObjectDelete(0,objname);
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
}
//+------------------------------------------------------------------+
//| ChartEvent function |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
const long &lparam,
const double &dparam,
const string &sparam)
{
//---
if(id==CHARTEVENT_OBJECT_CLICK && ObjectGet(sparam,OBJPROP_TYPE)==OBJ_BUTTON)//if(sparam==objname) // Close button has been pressed
{
for(int i=OrdersTotal()-1; i>=0; i--)
{
OrderSelect(i,SELECT_BY_POS);
if(OrderType()==OP_BUY || OrderType()==OP_SELL)
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),5);
else
OrderDelete(OrderTicket());
}
ObjectSetInteger(0,objname,OBJPROP_STATE,false);
}
}
//+------------------------------------------------------------------+