Fehler, Irrtümer, Fragen - Seite 1258

 

Übrigens, wer weiß, wie man dafür sorgen kann, dass beim Klicken auf die Schaltfläche diese gedrückt wird, wenn die LKM gedrückt wird, und losgelassen wird, wenn die LKM losgelassen wird?

und was würde die Taste zum Klicken und Loslassen drücken und was würde die Taste zum Klicken und Loslassen loslassen, Unsinn)

ZS: Natürlich kann man eine Eigenschaft direkt nach der Freigabe der LKM ändern, aber wird das auch so gemacht? )

 
sanyooooook:

Übrigens, wer weiß, wie man dafür sorgen kann, dass beim Klicken auf die Schaltfläche diese gedrückt wird, wenn die LKM gedrückt wird, und losgelassen wird, wenn die LKM losgelassen wird?

und was würde die Taste zum Klicken und Loslassen drücken und was würde die Taste zum Klicken und Loslassen loslassen, Unsinn)

ZS: Natürlich kann man eine Eigenschaft direkt nach der Freigabe der LKM ändern, aber wird das auch so gemacht? )

Ja. Sie müssen den Zustand der Objekte selbst kontrollieren, wenn Sie es auf Ihre Weise machen wollen. )
 
tol64:
Ja. Sie müssen den Zustand des Objekts selbst kontrollieren, wenn Sie es auf Ihre eigene Weise machen wollen. )

alles wäre in Ordnung, aber die Taste wird nicht gedrückt, wenn die LKM gedrückt wird, und nur gedrückt, wenn die LKM losgelassen wird, Unsinn )

ZS: Willst du den Knopf drücken? lass es los )

Aber wenn Sie sonst tun, daOnChartEvent nicht in den Tester zu arbeiten, dann in der Regel keinen Weg in den Tester mit den Kopien der Kopien nicht funktionieren kann.

 
sanyooooook:

alles wäre in Ordnung, aber die Taste wird nicht gedrückt, wenn die LKM gedrückt wird, und nur gedrückt, wenn die LKM losgelassen wird, Unsinn )

ZS: Willst du den Knopf drücken? lass es los )

Aber wenn Sie sonst tun, angesichts der Tatsache, dassOnChartEvent nicht in den Tester zu arbeiten, dann im Allgemeinen keine Möglichkeit, in den Tester mit lops.

Bis jetzt hat der Tester viele Dinge, die nicht funktionieren. Bleibt zu schreiben in servicedesk und dann folgen Updates. )

Und außerhalb des Testers müssen Sie Ihre eigenen Handler schreiben, damit die Steuerelemente so funktionieren, wie Sie es wollen.

 
sanyooooook:

alles wäre in Ordnung, aber die Taste wird nicht gedrückt, wenn die LKM gedrückt wird, und nur gedrückt, wenn die LKM losgelassen wird, Unsinn )

ZS: Willst du den Knopf drücken? lass es los )

Aber wenn Sie sonst tun, da OnChartEvent nicht in den Tester funktioniert, dann keine Möglichkeit in den Tester mit Kopien von nicht funktionieren.

OnChartEvent() behandelt typische und Benutzerereignisse. Was die benutzerdefinierten Ereignisse betrifft, so funktioniert dieser Handler im Tester!!! Siehe meinen Artikel Rezepte in MQL5 - Umgang mit benutzerdefinierten DiagrammereignissenDort gibt es einen CustomEventProcessor-Roboter. Es wird im Tester gehandelt.

Ärger mit dem Tester - die Grafik... Ich habe vorhin an den Service Desk über Grafiken geschrieben, bisher nur Versprechungen...



Рецепты MQL5 - обработка пользовательских событий графика
Рецепты MQL5 - обработка пользовательских событий графика
  • 2014.10.10
  • Dennis Kirichenko
  • www.mql5.com
В данной статье рассматриваются аспекты проектирования и разработки системы пользовательских событий графика в среде MQL5. Предлагается пример подхода для классификации событий. Приводится программный код событийного класса и класса-обработчика пользовательских событий.
 
denkir:

OnChartEvent() behandelt typische Diagrammereignisse und benutzerdefinierte Ereignisse. Was die benutzerdefinierten Ereignisse betrifft, so funktioniert dieser Handler im Tester!!! Siehe meinen Artikel Rezepte in MQL5 - Umgang mit benutzerdefinierten DiagrammereignissenDort gibt es einen CustomEventProcessor-Roboter. Es wird im Tester gehandelt.

Das Problem mit dem Tester ist die Grafik... Ich habe dem Servicedesk schon einmal wegen Grafiken geschrieben, bisher nur Versprechungen...



Ok, danke, ich werde mir das mal ansehen, bisher habe ich es durch Überprüfung der Eigenschaft der Schaltfläche gemacht.
 

Die Situation ist wie folgt: Ich erstelle ein OBJ_TEXT-Objekt im Diagramm. Dann lösche ich diesen OBJ_TEXT manuell aus dem Diagramm. Dann versuche ich, das gelöschte Objekt im Diagramm zu finden, und erhalte eine Fehlermeldung (das ist logisch: das Objekt wurde gelöscht, also kann es nicht gefunden werden). Dann versuche ich, den Ankerpunkt des gelöschten OBJ_TEXT-Objekts mit ObjectMove zu verschieben, erhalte aber keinen Fehler.

Frage: Sollte ObjectMove einen Fehler anzeigen, wenn versucht wird, den Ankerpunkt eines gelöschten OBJ_TEXT zu verschieben?

 

Wer es weiß: Beim Versuch, einen Indikator im Visualizer (Tester) anzuzeigen, erscheint ein Fehler 4014, obwohl kein solcher Fehler auftritt, wenn derselbe Code im Terminalfenster ausgeführt wird.

Der Code lautet wie folgt:

            Indic_Handle[Indic_Total-1]=iMA(NULL,0,MA_Period,MA_Shift,MODE_LWMA,PRICE_CLOSE);

            if(Indic_Handle[Indic_Total-1]==INVALID_HANDLE)

              {Error_Message;return(false);}


            if(F_If_Indic_Exist(Indic_Handle[Indic_Total-1])==false) // Проверяем есть ли уже индикатор с таким хендлом. Если нет - добавлем новый индикатор

               if(ChartIndicatorAdd(0,0,Indic_Handle[Indic_Total-1])==false) 

                 {Error_Message;return(false);}


Der Befehl "Error_Message" wird durch ein Makro definiert:

#define Error_Message_Exp Alert(__FILE__+": "+__FUNCTION__+": Error at line "+(string)__LINE__+". Last Error code: "+(string)GetLastError())


Bei der Ausführung im Terminal: Der Code funktioniert wie gewünscht, ohne Fehler. Der Indikator wird auf dem Chart gezeichnet, die Variable"Indic_Handle[Indic_Total-1]" erhält einen Handle-Wert.

Aber wenn sie im Tester und/oder im Visualizer ausgeführt werden. Ein Fehler wird in das Protokoll geschrieben:

2014.12.15 21:16:10 Core 1 2014.01.01 00:00:00   Alert: GA_Incl.mqh: F_Offspr_Init: Error at line 149. Last Error code: 4014

(Zeile "149" - ist die Zeile"{Error_Message;return(false);}" unter Zeile "148":"if(ChartIndicatorAdd(0,0,Indic_Handle[Indic_Total-1])==false)".

Der Fehler tritt offensichtlich bei der Ausführung der Funktion "ChartIndicatorAdd" auf, die in der Testerumgebung und in der Terminalumgebung unterschiedlich ausgeführt wird.

Die Dekodierung des Fehlercodes macht dies nicht deutlich:

ERR_FUNCTION_NOT_ALLOWED

4014

Die Systemfunktion darf nicht aufgerufen werden

Im Forum fand ich eine Erwähnung dieses Fehlers in der gleichen Situation durch einen anderen Benutzer, aber seine Frage bleibt unbeantwortet. (https://www.mql5.com/ru/forum/1111/page763#comment_208678)

Ich habe herausgefunden, dass, wenn ich das Programm trotz des Fehlers im Tester weiterlaufen lasse, der gewünschte Indikator auf das Diagramm angewendet wird. Der Indikator-Handle entspricht jedoch nicht dem Wert in der VariablenIndic_Handle[Indic_Total-1]. (Der Indikator selbst wird jedoch nach einigen Ticks erstellt, nachdem der Befehl ChartIndicatorAdd aufgerufen wurde.

Bitte helfen Sie mir

Ich danke Ihnen.

Документация по MQL5: Операции с графиками / ChartIndicatorAdd
Документация по MQL5: Операции с графиками / ChartIndicatorAdd
  • www.mql5.com
Операции с графиками / ChartIndicatorAdd - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
methaqvot idi Benachrichtigung kam nicht, ich habe auf die zweite Stunde gewartet... Vor drei Stunden hat es noch funktioniert...
 
valeryk:

Richtig, es wird nicht gedruckt. Aber es funktioniert. Versuchen Sie, das Ereignis mit Grafiken zu verfolgen.

Bei mir funktioniert das nicht. Ein Klick auf ein Objekt im Tester löst kein Ereignis aus. Auf der Demo/Real - es funktioniert. Was ist los? (MT4)