Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 595

 
Slava_kornev55:
Ahhhh, ich weiß. So eine Eule konnte ich nicht finden.
Hier, üben Sie.
 
Alexander Antoshkin:
Anscheinend muss irgendwo eine Klammer oder ein Anführungszeichen gesetzt werden, ich verstehe das nicht ............. Ich habe mir ähnliche Beispiele angesehen, es scheint dasselbe zu sein ,,,,,,,,,,,

Geben Sie die Funktion und ihre Konstante DeleteOrder(ticket) an, wenn Sie sie benötigen, und es sollte funktionieren

Wie man eine Konstante korrekt in einen Aufruf einer anderen Funktion schreibt

Hier ist zum Beispiel eine Funktion:

dann schreibe ich eine weitere

Was sagt der Compiler genau?
 
Können Sie mir bitte sagen, ob die Deinitialisierungsfunktion in den EAs und Indikatoren ausgeführt wird, wenn das Terminal geschlossen wird?
 
-Aleks-:
Können Sie bitte mitteilen, ob die Funktion der Deinitialisierung in Beratern und Indikatoren beim Schließen des Terminals ausgeführt wird?

Durchführung der Programme.

Be- und Entladeanzeiger

In den folgenden Fällen werden die Indikatoren geladen:

-Anhängeneines Indikators an ein Diagramm;

-Startdes Terminals (wenn ein Indikator vor dem letzten Schließen des Terminals an ein Diagramm angehängt wurde)

-Ladeneiner Vorlage (wenn die Vorlage einen Indikator enthält, der mit dem Diagramm verbunden ist)

-Profiländern(wenn ein Indikator mit einem der Profilcharts verbunden ist);

-Änderungdes Symbols und/oder der Periode des Charts, dem der Indikator zugeordnet ist;

-nach dererfolgreichen Neukompilierung eines Indikators, wenn dieser Indikator an ein Diagramm angehängt wurde

-Änderung derEingabeparameter desIndikators.

In den folgenden Fällen werden die Indikatoren entladen:

-wennein Indikator von einem Diagramm getrennt wird;

-Schließendes Terminals (wenn ein Indikator an einen Chart angehängt ist);

-Ladeneiner Vorlage, wenn ein Indikator an ein Diagramm angehängt ist

Schließen Sieden Chart, an den ein Indikator angehängt wurde; - Schließen Sie das Terminal (wenn ein Indikator an den Chart angehängt wurde)

-Änderungeines Profils, wenn ein Indikator mit einem der Charts des zu ändernden Profils verbunden ist;

-Änderungdes Symbols und/oder der Periode des Charts, dem der Indikator zugeordnet ist;

-Änderung derEingabeparameter des Indikators.

Be- und Entladen von Experten

Das Laden eines Expert Advisors wird in den folgenden Fällen durchgeführt

-Anbindungdes Expert Advisors an den Chart;

-Startdes Terminals (wenn der Expert Advisor vor dem letzten Schließen des Terminals an den Chart angehängt wurde);

-Ladeneiner Vorlage (wenn ein Expert Advisor an ein Diagramm angehängt wurde)

-nacherfolgreicher Neukompilierung des Expert Advisors (wenn der Expert Advisor an den Chart angehängt wurde)

-Profilwechsel (wenn der Expert Advisor mit einem der Profilcharts verbunden ist);

-Verbindungzum Konto, auch wenn die Kontonummer nicht geändert wurde (wenn der Expert Advisor vor der Terminal-Autorisierung auf dem Server an den Chart angehängt wurde).

Das Entladen des an den Chart angehängten Expert Advisors wird in den folgenden Fällen durchgeführt

-wennder EA vom Diagramm losgelöst ist;

-Wenn einanderer Expert Advisor bereits auf demselben Chart war, wird der Expert Advisor nicht geladen;

-Schließendes Terminals (wenn ein Expert Advisor an einen Chart angehängt wurde);

-Laden Sieeine Vorlage, wenn ein Expert Advisor an den Chartangehängt wurde;

-Schließen Sieden Chart, an den der Expert Advisor angehängt wurde;

-Änderungeines Profils, wenn ein Expert Advisor mit einem der Charts des zu ändernden Profils verbunden ist;

-Änderungdes Kontos, an das das Terminal angeschlossen ist (wenn der Expert Advisor vor der Autorisierung des Terminals auf dem Server an das Diagramm angeschlossen wurde);

-Aufrufder FunktionExpertRemove().

Wenn das Symbol oder der Zeitrahmen des Charts, an den der Expert Advisor angehängt wurde, geändert wird, wird der Expert Advisor nicht entladen oder geladen. In diesem Fall werden die HandlerOnDeinit() für das alte Symbol/die alte Zeitleiste undOnInit() für das neue Symbol/die neue Zeitleiste (falls vorhanden) konsistent aufgerufen, die Werte der globalen Variablen undstatischen Variablen werden nicht zurückgesetzt. Alle Ereignisse, die für EA vor Abschluss der Initialisierung (OnInit()) eingehen, werden übersprungen.

OnDeinit

Das Ereignis Deinit wird für Expert Advisors und Indikatoren in den folgenden Fällen erzeugt

-vor derNeuinitialisierung aufgrund der Änderung eines Symbols oder einer Periode eines Charts, an den ein mql5-Programm angehängt ist;

-Vor der Neuinitialisierung aufgrund einerÄnderung derEingabeparameter;

-Vor demEntladen eines mql5-Programms.

 
Sergey Gritsay:
Was sagt der Compiler genau?
 
Alexander Antoshkin:
ohne vollständigen Code ist es schwer zu verstehen, aber ich vermute, dass Sie denselbenTicketvariablennamen global und lokal in der FunktionDeleteOrder deklariert haben. Ändern Sie den Variablennamen
 

Danke, aber es gibt einen Verdacht, dass OnDeinit.... nicht immer funktioniert wenn das Terminal geschlossen ist.

 
-Aleks-:

Danke, aber ich vermute, dass OnDeinit.... nicht immer funktioniert. wenn das Terminal geschlossen ist.

In OnDeinit() eine Rückstellung vornehmen. Dann können wir uns ausführlicher unterhalten.
 
Sergey Gritsay:
Ohne vollständigen Code ist es schwer zu verstehen, aber ich vermute, dass Sie denselbenTicketvariablennamen global und lokal in der FunktionDeleteOrder deklariert haben. Ändern Sie den Variablennamen

Ja, ich habe es verstanden.

Danke, dass Sie das herausgefunden haben!

 

Bin ich dumm oder sollte es so sein?

Es waren 5 Kaufpositionen offen, das Schleppnetz löste aus und verschob die Stop-Losses, der Preis rollte zurück und 4 Positionen wurden geschlossen und eine blieb offen, wobei der Stop Level über dem Preis lag. Das Protokoll enthält lediglich Aufzeichnungen über die Schließung von 4 Positionen.

Grund der Beschwerde: