4. Если какойто ордер сработал и тралится то до закрытия по тралу одера не должно открыватся больше не одного ордера, а остальные анулироваться сразу после начала трала.
//+------------------------------------------------------------------+
//| CornerButton.mq4 |
//| Copyright 2020, AM2 |
//| http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, AM2"
#property link "http://www.forexsystems.biz"
#property version "1.00"
#property strict
input int corner=0;
input int deltax=100;
input int deltay=50;
int Width = 0;
int Height = 0;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
Width=(ushort)ChartGetInteger(0,CHART_WIDTH_IN_PIXELS);
Height=(ushort)ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS);
PutButton("baton",Width-deltax,Height-deltay,"БАТОН");
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
Comment("");
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void PutButton(string name,int x,int y,string text)
{
ObjectDelete(0,name);
ObjectCreate(0,name,OBJ_BUTTON,0,0,0);
//--- установим координаты кнопки
ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
//--- установим размер кнопки
ObjectSetInteger(0,name,OBJPROP_XSIZE,80);
ObjectSetInteger(0,name,OBJPROP_YSIZE,30);
//--- установим угол графика, относительно которого будут определяться координаты точки
ObjectSetInteger(0,name,OBJPROP_CORNER,corner);
//--- установим текст
ObjectSetString(0,name,OBJPROP_TEXT,text);
//--- установим шрифт текста
ObjectSetString(0,name,OBJPROP_FONT,"Arial");
//--- установим размер шрифта
ObjectSetInteger(0,name,OBJPROP_FONTSIZE,12);
//--- установим цвет текста
ObjectSetInteger(0,name,OBJPROP_COLOR,Red);
//--- установим цвет фона
ObjectSetInteger(0,name,OBJPROP_BGCOLOR,White);
//--- установим цвет границы
ObjectSetInteger(0,name,OBJPROP_BORDER_COLOR,Blue);
}
//+------------------------------------------------------------------+
//| ChartEvent function |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
const long &lparam,
const double &dparam,
const string &sparam)
{
//--- нажатие кнопки на клавиатуре
if(id==CHARTEVENT_CHART_CHANGE)
{
Width=(ushort)ChartGetInteger(0,CHART_WIDTH_IN_PIXELS);
Height=(ushort)ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS);
PutButton("baton",Width-deltax,Height-deltay,"БАТОН");
}
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| CornerButton.mq4 |
//| Copyright 2020, AM2 |
//| http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, AM2"
#property link "http://www.forexsystems.biz"
#property version "1.00"
#property strict
input int corner=0;
input int deltax=100;
input int deltay=50;
int Width = 0;
int Height = 0;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
Width=(ushort)ChartGetInteger(0,CHART_WIDTH_IN_PIXELS);
Height=(ushort)ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS);
PutButton("baton",Width-deltax,Height-deltay,"БАТОН");
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
Comment("");
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void PutButton(string name,int x,int y,string text)
{
ObjectDelete(0,name);
ObjectCreate(0,name,OBJ_BUTTON,0,0,0);
//--- установим координаты кнопки
ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
//--- установим размер кнопки
ObjectSetInteger(0,name,OBJPROP_XSIZE,80);
ObjectSetInteger(0,name,OBJPROP_YSIZE,30);
//--- установим угол графика, относительно которого будут определяться координаты точки
ObjectSetInteger(0,name,OBJPROP_CORNER,corner);
//--- установим текст
ObjectSetString(0,name,OBJPROP_TEXT,text);
//--- установим шрифт текста
ObjectSetString(0,name,OBJPROP_FONT,"Arial");
//--- установим размер шрифта
ObjectSetInteger(0,name,OBJPROP_FONTSIZE,12);
//--- установим цвет текста
ObjectSetInteger(0,name,OBJPROP_COLOR,Red);
//--- установим цвет фона
ObjectSetInteger(0,name,OBJPROP_BGCOLOR,White);
//--- установим цвет границы
ObjectSetInteger(0,name,OBJPROP_BORDER_COLOR,Blue);
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
Width=(ushort)ChartGetInteger(0,CHART_WIDTH_IN_PIXELS);
Height=(ushort)ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS);
PutButton("baton",Width-deltax,Height-deltay,"БАТОН");
}
//+------------------------------------------------------------------+
1) Не корректно прибавляется лот, второй лот должен быть как сумма первого +лот прибавления.
2) При включенной функции закрытия по сигналу, поз. закрываются при касании линии инд. FL01. А должно закрываться по обратному сигналу инд. Vertekx.
При закрытии позиций противоположным сигналом, новая поза (в данном примере, на скрине поза №7) должна остатся в работе, а она почему то закрывается на 30 пипсах. Это не правильно.
AM2