Fehler, Irrtümer, Fragen - Seite 1256

 
sanyooooook:

Wer weiß, ob OnChartEvent in der Testversion funktioniert?

Bei mir funktioniert das nicht.

Es funktioniert auch im MT5.
 

Ich tue dies, aber es wird nichts gedruckt:

//+------------------------------------------------------------------+
//|                                             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);
  }
 

oder ist irgendwo etwas falsch?

Ich habe bisher kaum mit Ereignissen in MT4 gearbeitet, daher weiß ich es nicht.

ZZZ: Bei einer normalen Karte ist alles in Ordnung.

 
sanyooooook:

oder ist irgendwo etwas falsch?

Ich habe bisher kaum mit Ereignissen in MT4 gearbeitet, daher weiß ich es nicht.

ZS: Auf einer normalen Karte ist alles fein gedruckt.

Stimmt, das tut es nicht. Aber es funktioniert. Versuchen Sie, das Ereignis mit dem Diagramm zu verfolgen.

 
svds75:

Hallo liebe Forumsnutzer. Es gibt eine Situation, die nicht eindeutig ist.

Eigentlich ist die Sache, dass keine Möglichkeit, die Funktion ChartOpen (), in der Tester (Visualizer), öffnen Sie ein paar Diagramme.

Im normalen Modus funktioniert alles, aber im Testgerät gibt es ständig nicht Null zurück, wie in der Hilfe geschrieben, sondern die gleiche Zahl 16388.

Ich wäre sehr dankbar, wenn mir jemand sagen könnte, was los ist. Testroboter angebracht.

Meine Freunde, hat sich denn niemand damit auseinandergesetzt? Oder ist es ein neuer Fehler? Wie testen Sie dann Multivolutionen mit Grafiken?
 
sanyooooook:

ZS: Alle Ausdrucke sind auf einer normalen Karte in Ordnung.

Vielleicht schauen Sie in das falsche Journal... wenn Sie sich im Optimierungsmodus befinden, sind die Drucker ausgeschaltet...

Zeigen Sie mir die Details der Testereinstellungen

 
denkir:

Sie müssen im falschen Logbuch nachsehen... wenn Sie sich im Optimierungsmodus befinden, sind die Ausdrucke dort nämlich ausgeschaltet...

Zeigen Sie mir die Details zu den Einstellungen des Testers.

Ich weiß nicht, wo ich suchen soll.)

Ich erstelle während der Optimierung nicht einmal Objekte. Aber ich bin nicht im Optimierungsmodus.


 
Ich habe es mit einer auf globaler Ebene deklarierten Variablen versucht, aber auch ihr Wert ändert sich nicht.
 
sanyooooook:
Ich habe versucht, eine global deklarierte Variable zu verwenden, aber auch ihr Wert ändert sich nicht.
Wo ist die Information, dass OnChartEvent() im Tester funktionieren soll? Habe ich etwas verpasst? Bei mir klappt es immer noch nicht. Weder in 4, noch in 5.
 
Es funktioniert. Ich habe mit meinem EA überprüft, dass er Aufträge über die Schaltflächen öffnet. Ich frage mich, ob das der Grund ist, warum es nicht gedruckt wird...
Grund der Beschwerde: