Expert Advisors: GlobalVariable

 

GlobalVariable:

Dieser Experte demonstriert ein Beispiel für die Arbeit mit globalen Variablen. Die Aufgabe des Experten: das Ergebnis von Berechnungen in einer globalen Variable zu speichern, und bei der neuen Initialisierung den Wert dieser globalen Variable zu erhalten.

Autor: Karputov Vladimir

 
Automated-Trading:

GlobalVariable:

Autor: Karputov Vladimir

eine globale Variable erhalten, die globale Variable gespeichert, was nun? Tut mir leid, mein Lieber, aber ich verstehe gar nichts. Wozu braucht man diese Variablen überhaupt?
 
spbkit:
eine globale Variable abrufen, die globale Variable speichern, und was dann? Es tut mir leid, meine Liebe, aber ich verstehe gar nichts. Wozu braucht man diese Variablen überhaupt?

Ich bitte um Entschuldigung. Dieses Beispiel wurde als Antwort auf eine Anfrage eines Forumsmitglieds erstellt: Wir brauchten ein Beispiel für die Arbeit mit globalen Variablen des Terminals. Globale Variablen des Terminals speichern ihre Werte nach dem Neuladen des Terminals und dieses Beispiel zeigt, wie man eine globale Variable lesen und schreiben kann.

 

Danke, nützlicher Code! Aber es funktionierte nicht für MT4... Können Sie mich bitte beraten, wie ich diesen Beispielcode besser für MT4 anpassen kann?

 
Aleksandr Glebov:

Danke, nützlicher Code! Aber es funktionierte nicht für MT4... Könnten Sie mir einen Rat geben, wie ich diesen Beispielcode besser für MT4 anpassen kann?

Es genügt, die Dateierweiterung von *.mq5 in *.mq4 zu ändern.
 
Kein klares Beispiel... Ich hatte nie die Gelegenheit, es anzuwenden.... Und wie man zwei Variablen (zwei Preisniveaus) speichert, ist nicht klar...?
 
Aleksandr Glebov:
Kein klares Beispiel... Ich hatte nie die Gelegenheit, es anzuwenden.... Und wie man zwei Variablen (zwei Preisstufen) speichert, ist nicht klar...?

Zeigen Sie mir bitte, was nicht funktioniert hat.

Aleksandr Glebov:
Nicht klares Beispiel... Ich habe es nie geschafft, es anzuwenden.... Und wie man zwei Variablen (zwei Preisniveaus) speichert, ist nicht klar...?

Und an welcher Stelle des Programms wollen Sie die Werte speichern: in OnInit(), in OnTick() oder in OnDeinit?

 
Karputov Vladimir:

Zeigen Sie mir bitte, was nicht funktioniert hat.

Und an welcher Stelle des Programms wollen Sie Werte speichern: in OnInit(), in OnTick() oder in OnDeinit?

Ich habe Werte in OnTick() gespeichert und versucht, sie mit OnInit() abzurufen, aber es hat nicht funktioniert. Es funktionierte nur so: Ich speicherte in OnTick() - GlobalVariableSet("OER", OER ); und hier, in OnTick(), die allererste Bedingung - wenn Aufträge mehr als 0 sind, dann OER = GlobalVariableGet("OER"). Die Variable OER wird nun beim erneuten Laden nicht auf Null zurückgesetzt. Sobald aber im normalen Betrieb Aufträge geöffnet werden, nimmt die gewünschte Variable die Bedingungen der vorherigen globalen Variable.... an. Ist es notwendig zu versuchen, die Werte von OnInit() zu erhalten?
 
Aleksandr Glebov:
Ich speichere Werte in OnTick(), und versuchte, sie mit OnInit() zu erhalten, aber es hat nicht funktioniert. Es funktionierte nur auf diese Weise: Ich speicherte in OnTick() - GlobalVariableSet("OER", OER ); und hier, in OnTick(), die allererste Bedingung - wenn Aufträge mehr als 0 sind, dann OER = GlobalVariableGet("OER"). Jetzt wird die Variable OER beim erneuten Laden nicht zurückgesetzt. Glauben Sie, dass dies der richtige Weg ist, den Code zu schreiben?
Welchen Zweck hat das Speichern von Preisen in globalen Variablen? Was wollen Sie implementieren? Wie sieht der Algorithmus der Aktion aus?
 
Karputov Vladimir:
Welchen Zweck hat die Speicherung von Preisen in globalen Variablen? Was wollen Sie implementieren? Was ist der Algorithmus der Aktion?
Beim Nachladen werden zwei Variablen zurückgesetzt und deshalb funktioniert die Eule beim Laden nicht richtig.... Ich muss lernen, wie man diese Variablen für einen solchen Fall speichert (wenn es beim Laden Aufträge gibt, verwenden Sie Daten aus glob.).
 
Aleksandr Glebov:
Beim Neuladen werden zwei Variablen auf Null zurückgesetzt und deshalb funktioniert der EA beim Laden nicht richtig. Ich muss lernen, wie man diese Variablen für einen solchen Fall zu speichern (wenn es Aufträge beim Laden, verwenden Sie Daten aus glob.).

In OnDeinit() schreiben Sie Ihre Bedingung - ob Sie Ihre globalen Variablen überschreiben müssen oder nicht.

Generell frage ich wieder: "Was ist der Algorithmus der Aktion?". Im Moment ist es ein Heap-mala. Verstehen Sie, dass Sie nicht in der Lage sein werden, ihn zu implementieren, wenn Sie nicht verstehen, was Sie brauchen. Zeichnen Sie ein Flussdiagramm - es wird Ihnen helfen.