Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 625

 
Igor Makanu:

Experimentieren Sie mit diesem Code, lesen Sie die Meldung im EA-Log (TF wechseln, Variable eingeben, Terminal neu laden, ohne EA zu schließen...)

und die zweite Variante besteht darin, im globalen Bereich eine Variable mit statischem Modifikator zu beschreiben

Erstens: Das ist mql4.

Zweitens muss ich OnInit() bei jeder Änderung der Variablen des Expert Advisors ausführen.

Das ist alles, worum ich um Hilfe bitte!

Ja, ein Neustart des Terminals und das Ändern des Textes hilft, aber wenn Sie Variablen ändern, funktioniert OnInit() nicht und deshalb bekomme ich alle Probleme!!!!

 
Игорь:

Erstens ist es mql4. Zweitens muss ich OnInit() ausführen, um die Variablen von EA zu ändern.

Zweitens muss es OnInit() ausführen, wenn Expert Advisor-Variablen geändert werden.

Das ist alles, worum ich um Hilfe bitte!

Ein Neustart des Terminals und das Ändern des Textes hilft, aber wenn Sie die Variablen ändern, funktioniert OnInit() nicht und deshalb bekomme ich alle Probleme!!!!

Ich habe die folgende Lösung. OnInit() kopiert die Variablen beim 1. Durchlauf des EAs. Bei Calc...() oder was auch immer in MT4 wird geprüft, ob die Variablen mit ihren Kopien identisch sind. Wenn die Variablen nicht übereinstimmen, führen wir zwangsweise OnInit() aus, und wenn nötig, führen wir vorher noch etwas anderes aus, um den EA zu aktualisieren. Und schließlich die Rückkehr.

 
Игорь:

Erstens ist es mql4. Zweitens muss ich OnInit() ausführen, um die Variablen von EA zu ändern.

Zweitens muss es OnInit() ausführen, wenn Expert Advisor-Variablen geändert werden.

Das ist alles, worum ich um Hilfe bitte!

Ja, ein Neustart des Terminals und das Ändern der Sicherheiten hilft, aber wenn Sie Variablen ändern, funktioniert OnInit() nicht und deshalb bekomme ich alle Probleme!!!!

Haben Sie sich den Code angesehen, den ich Ihnen gegeben habe? Es war MT4 und alles funktioniert so, wie Sie es wollten

Lesen Sie die Dokumentationhttps://docs.mql4.com/ru/runtime/event_fire

Ich habe den von mir vorgeschlagenen Code ausgeführt, die externe Variable var zweimal geändert, hier ist das Expert Advisor-Protokoll:

0       15:36:39.736    Compiling 'test'
0       15:37:37.573    Expert test EURUSD,H1: loaded successfully
0       15:37:39.101    test EURUSD,H1 inputs: var1=1; 
0       15:37:39.130    test EURUSD,H1: Вызов OnInit(), var1=1
0       15:37:39.130    test EURUSD,H1: initialized
0       15:37:51.341    test EURUSD,H1: uninit reason 5
0       15:37:51.343    test EURUSD,H1: Вызов OnInit(), var1=34567
0       15:37:51.343    test EURUSD,H1: initialized
0       15:37:51.366    test EURUSD,H1 inputs: var1=34567; 
0       15:38:04.124    test EURUSD,H1: uninit reason 5
0       15:38:04.126    test EURUSD,H1: Вызов OnInit(), var1=-9999
0       15:38:04.126    test EURUSD,H1: initialized
0       15:38:04.149    test EURUSD,H1 inputs: var1=-9999; 

Hier ist der Code, in dem die "Bugs" sind.

Sie können jede Funktion von überall in einem MQL-Programm aufrufen. Die Funktion der Initialisierung eines Expert Advisors ist eine Funktion, und Sie können OnInit() zwangsweise aufrufen, aber normalerweise brauchen Sie es nicht.

События клиентского терминала - Программы MQL4 - Справочник MQL4
События клиентского терминала - Программы MQL4 - Справочник MQL4
  • docs.mql4.com
Сразу же после того, как клиентский терминал загрузит программу (эксперт или пользовательский индикатор) и запустит процесс инициализации глобальных переменных, будет послано событие Init, которое обрабатывается функцией OnInit(), если она есть. Это событие также генерируется после смены финансового инструмента и/или периода графика, после...
 
Igor Makanu:

der Code enthält eine Menge Fehler, in

es ist besser, die Preise zu normalisieren, dann werden sie funktionieren, dann wird der Server einen Fehler von "falschen Preisen" ausgeben, es ist wünschenswert,StopLoss_SELL zu normalisieren

und höchstwahrscheinlich müssen Sie prüfen, ob der StopLoss gleich Null ist, und es ist nicht wünschenswert, reelle Zahlen zu vergleichen, um gleich zu sein, Sie sollten versuchen, reelle Zahlen mit > oder < zu vergleichen

Wenn es viele Fehler gibt, würden Sie sie bitte alle aufzählen?

 
Igor Makanu:

Haben Sie sich den Code angesehen, den ich Ihnen gegeben habe? Es war MT4 und alles funktioniert so, wie Sie es wünschen

dann lesen Sie die Dokumentationhttps://docs.mql4.com/ru/runtime/event_fire

Ich habe den Code ausgeführt, den ich vorgeschlagen habe, ich ändere die externe Variable var zweimal, hier ist das Expert Advisor-Protokoll:

Hier ist der Code, in dem die "Bugs" sind.

Sie können jede Funktion von überall im MQL-Programm aufrufen, die Funktion der Initialisierung eines Expert Advisors ist auch eine Funktion. Sie können OnInit() zwangsweise aufrufen, aber normalerweise brauchen Sie es nicht - das Terminal ruftOnInit() von selbst auf.

Vielen Dank, dass ich dank Ihres Fehlercodes !!!!!!!!! gefunden habe. GUTES GLÜCK !!!! UND DANKE FÜR DIE HILFE !!!!!!

 
Bitte beraten Sie mich. Wie kann ich erreichen, dass der Standard-MA-Indikator nicht für die gesamte Historie, sondern für eine bestimmte Anzahl von Kerzen angezeigt wird? Ich würde Ihnen gerne eine Frage stellen.
 
prom18:
Bitte beraten Sie mich. Wie kann ich erreichen, dass der Standard-MA-Indikator nicht für die gesamte Historie, sondern für eine bestimmte Anzahl von Kerzen angezeigt wird? Ich danke Ihnen.
Schreiben Sie Ihren eigenen MA-Indikator mit Einstellung der Tiefe der Geschichte!
 

Wie stelle ich manuell Kurse ein, umeinen EA zu testen?

Es muss eine Lösung geben, aber ich konnte sie nicht finden.

 
Galim_V:

Was ist falsch an der F12-Taste nach einer Pause?

Ich wollte speziell die Preisbewegung festlegen.

 
Andrey Sokolov:

Wie stelle ich manuell Kurse ein, umeinen EA zu testen?

Sicherlich gibt es eine Lösung, aber ich konnte sie nicht finden

Schreiben Sie Ihre eigenen Ticks und geben Sie sie in den Strategietester ein.