错误、漏洞、问题 - 页 1256

 
sanyooooook:

谁知道,OnChartEvent在测试器中是否工作?

它对我不起作用。

它在MT5中也可以使用。
 

我正在这样做,但它不会打印任何东西。

//+------------------------------------------------------------------+
//|                                             CheckObjectClick.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property link      "https:/"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
string           InpName="Button";            // Имя кнопки
ENUM_BASE_CORNER InpCorner=CORNER_LEFT_LOWER; // Угол графика для привязки
string           InpFont="Arial";             // Шрифт
int              InpFontSize=14;              // Размер шрифта
color            InpColor=clrBlack;           // Цвет текста
color            InpBackColor=C'236,233,216'; // Цвет фона
color            InpBorderColor=clrNONE;      // Цвет границы
bool             InpState=false;              // Нажата/Отжата
bool             InpBack=false;               // Объект на заднем плане
bool             InpSelection=false;          // Выделить для перемещений
bool             InpHidden=true;              // Скрыт в списке объектов
long             InpZOrder=0;                 // Приоритет на нажатие мышью

int OnInit()
  {
//---
   ButtonCreate(0,StringConcatenate(InpName,"LIMIT"),0,20,25,55,20,InpCorner,"LIMIT",InpFont,InpFontSize,
                InpColor,clrLime,InpBorderColor,InpState,InpBack,InpSelection,InpHidden,InpZOrder);
   ButtonCreate(0,StringConcatenate(InpName,"STOP"),0,80,25,60,20,InpCorner,"STOP",InpFont,InpFontSize,
                InpColor,clrRed,InpBorderColor,InpState,InpBack,InpSelection,InpHidden,InpZOrder);
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   
  }
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//---
   if(id==CHARTEVENT_OBJECT_CLICK)
   {
      string clickedChartObject=sparam;
      if(clickedChartObject=="ButtonLIMIT")
      {
        Print(1);
      }
      if(clickedChartObject=="ButtonSTOP")
      {
        Print(2);
      }
   }
   //int Click=EventChartCustom(id,CHARTEVENT_OBJECT_CLICK);
  }
  bool ButtonCreate(long              chart_ID=0,               // ID графика
                  string            name="Button",            // имя кнопки
                  int               sub_window=0,             // номер подокна
                  int               x=0,                      // координата по оси X
                  int               y=0,                      // координата по оси Y
                  int               width=50,                 // ширина кнопки
                  int               height=18,                // высота кнопки
                  ENUM_BASE_CORNER  corner=CORNER_LEFT_UPPER, // угол графика для привязки
                  string            text="Button",            // текст
                  string            font="Arial",             // шрифт
                  int               font_size=10,             // размер шрифта
                  color             clr=clrBlack,             // цвет текста
                  color             back_clr=C'236,233,216',  // цвет фона
                  color             border_clr=clrNONE,       // цвет границы
                  bool              state=false,              // нажата/отжата
                  bool              back=false,               // на заднем плане
                  bool              selection=false,          // выделить для перемещений
                  bool              hidden=true,              // скрыт в списке объектов
                  long              z_order=0)                // приоритет на нажатие мышью
  {
//--- сбросим значение ошибки
   ResetLastError();
//--- создадим кнопку
   if(ObjectFind(name)<0)
   {
     ObjectCreate(chart_ID,name,OBJ_BUTTON,sub_window,0,0);
   }
//--- установим координаты кнопки
   ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
   ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
//--- установим размер кнопки
   ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);
   ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height);
//--- установим угол графика, относительно которого будут определяться координаты точки
   //ObjectSet(name,OBJPROP_CORNER,corner);Print(GetLastError());
   ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);

//--- установим текст
   ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
//--- установим шрифт текста
   ObjectSetString(chart_ID,name,OBJPROP_FONT,font);
//--- установим размер шрифта
   ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size);
//--- установим цвет текста
   ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
//--- установим цвет фона
   ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,back_clr);
//--- установим цвет границы
   ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_COLOR,border_clr);
//--- отобразим на переднем (false) или заднем (true) плане
   ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
//--- переведем кнопку в заданное состояние
   ObjectSetInteger(chart_ID,name,OBJPROP_STATE,state);
//--- включим (true) или отключим (false) режим перемещения кнопки мышью
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов
   ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
//--- установим приоритет на получение события нажатия мыши на графике
   ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
//--- успешное выполнение
   return(true);
  }
 

还是有什么地方出了问题?

我以前几乎没有在MT4中处理过事件,所以我不知道。

ZZZ:在正常的图表上,一切都很好。

 
sanyooooook:

还是有什么地方出了问题?

我以前几乎没有在MT4中处理过事件,所以我不知道。

ZS:在一个正常的图表上,所有的都是精美的印刷品。

对,它没有。但它是有效的。尝试用图表追踪事件。

 
svds75:

亲爱的论坛用户,你们好。有一种情况是不清楚的。

事实上,没有办法让函数ChartOpen(),在测试器(visualizer)中,打开几个图形。

在正常模式下,一切正常,但在测试器中,它不断返回的不是帮助中写的零,而是同样的数字16388。

如果有人告诉我出了什么问题,我将非常感激。附有 测试机器人。

我的朋友们,没有人用它来面对?还是说这是一个最近的错误?那么,你如何用图形来测试多轮驱动?
 
sanyooooook:

ZS:在正常的图表上,所有的印刷品都很好。

也许你看错杂志了......如果你在优化模式下,打印机是关闭的......。

向我展示测试员设置的细节

 
denkir:

你一定是看错了日志......事实上,如果你是在优化模式下,那里的打印是关闭的......

向我展示测试者的详细设置。

我不知道该去哪里找 )

我在优化过程中甚至不创建对象。但我没有进入优化模式。


 
我试着用一个在全局层面声明的变量,但它的值也没有变化。
 
sanyooooook:
我试着用一个全局声明的变量,但它的值也没有变化。
OnChartEvent() 在测试器中应该工作的信息在哪里?我错过了什么吗?它对我来说仍然不起作用。既不是在4号,也不是在5号。
 
它是有效的。我检查了我的EA,它从按钮中打开订单。这就是为什么它不打印,我想知道...