Merkmale der Sprache mql5, Feinheiten und Techniken - Seite 18
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Und darf ich fragen, warum statisch?
Weil aus dem Zusammenhang gerissen - siehe Originalbeitrag.
undokumentiertes Merkmal der OnInit()-Funktion, kann diese Funktion in jedem Teil des Programms ausgeführt werden. Test-Code.
Ergebnis
...
ein undokumentiertes Merkmal der Funktion OnInit(), kann diese Funktion in jedem Teil des Programms ausgeführt werden. Test-Code.
Alle On-Funktionen sind normale Funktionen und können daher jederzeit aufgerufen werden. OnCalculate oder OnTradeTransaction.
Alle On-Funktionen sind normale Funktionen und können daher jederzeit aufgerufen werden. Entweder OnCalculate oder OnTradeTransaction.
Aber das steht nicht in der Dokumentation
OnInit
Die Funktion OnInit() ist der OnInit-Ereignishandler. Es kann vom Typvoid oderint sein und hat keine Parameter:
voidOnInit();
Das Init-Ereignis wird unmittelbar nach dem Laden eines Expert Advisors oder Indikators erzeugt, dieses Ereignis wird nicht für Skripte erzeugt. Die Funktion OnInit() wird zur Initialisierung verwendet. Wenn OnInit() den Rückgabewert int hat, bedeutet ein Rückgabewert ungleich Null, dass die Initialisierung nicht erfolgreich war, und es wird das EreignisDeinit mit dem Deinitialisierungsgrund codeREASON_INITFAILED erzeugt.
Um die Eingabeparameter eines Experten zu optimieren, empfiehlt es sich, die Werte aus der AufzählungENUM_INIT_RETCODE als Rückgabecodes zu verwenden. Anhand dieser Werte wird der Verlauf der Optimierung gesteuert, einschließlich der Auswahl der am besten geeignetenPrüfmittel. Während der Initialisierung eines Expert Advisors vor dem Start des Tests können Sie mit der FunktionTerminalInfoInteger() Informationen über die Konfiguration und die Ressourcen eines Agenten (die Anzahl der Kerne, die Menge des freien Speichers usw.) anfordern. Auf der Grundlage der erhaltenen Informationen können Sie entweder die Verwendung dieses Testagenten zulassen oder seine Verwendung während der Optimierung dieses Expert Advisors ablehnen.
ENUM_INIT_RETCODE
Kennung
Beschreibung
INIT_SUCCEEDED
Nach erfolgreicher Initialisierung kann das Testen des Expert Advisors fortgesetzt werden.
Dieser Code bedeutet das Gleiche wie Null - die Initialisierung des Expert Advisors im Testgerät war erfolgreich.
INIT_FAILED
Die Initialisierung ist fehlgeschlagen, die Prüfung ist aufgrund nicht behebbarer Fehler sinnlos. Zum Beispiel ist es nicht gelungen, einen Indikator zu erstellen, der für die Arbeit des Expert Advisors erforderlich ist.
Die Rückgabe dieses Wertes bedeutet dasselbe wie die Rückgabe eines Wertes ungleich Null - die Initialisierung des Expert Advisors im Testgerät ist fehlgeschlagen.
INIT_PARAMETERS_INCORRECT
Der Ergebnisstring, der diesen Rückgabecode enthält, wird in der allgemeinen Optimierungstabelle rot hervorgehoben.
Die Tests für diesen Parametersatz des Expert Advisors werden nicht ausgeführt und der Agent kann eine neue Aufgabe erhalten.
Nach Erhalt dieses Wertes ist gewährleistet, dass der Strategietester diesen Auftrag nicht an andere Bearbeiter zur wiederholten Ausführung weitergibt.
INIT_AGENT_NOT_SUITABLE
Keine Fehler bei der Initialisierung, aber aus irgendeinem Grund ist der angegebene Agent nicht zum Testen geeignet. Zum Beispiel unzureichender Arbeitsspeicher,OpenCL-Unterstützung und so weiter.
Nach Rückgabe dieses Codes erhält der Agent bis zum Ende dieserOptimierung keine Aufgaben mehr.
Die Funktion OnInit() vom Typ void bedeutet immer eine erfolgreiche Initialisierung.
Es steht aber nicht in der Dokumentation
OnInit
Die Funktion OnInit() ist der OnInit-Ereignishandler. Es kann vom Typvoid oderint sein und hat keine Parameter:
voidOnInit();
Das Init-Ereignis wird unmittelbar nach dem Laden eines Expert Advisors oder Indikators erzeugt
Hier steht, dass es eine Funktion ist.
Vor OnInit und nach OnDeinit gibt es Aufrufe von Konstruktoren/Destruktoren von globalen Objekten (Ungenauigkeit in der Hilfe). Deshalb können Sie zum Beispiel in Indikatoren Indikatorpuffer ohne OnInit deklarieren. Die Grundzüge sind wie folgt.
Wenn das Feld kleiner ist, wird nur ein Teil der Farben übertragen. Wenn das Feld größer ist, wird es beschnitten.
Für width- und style-Arrays gilt das gleiche Prinzip.
In OrderSendSync wird die überladene (siehe oben) HistoryDealSelect aufgerufen.
Wie kann ich den Zeitpunkt des Öffnens der letzten Position und den Zeitpunkt des Schließens der letzten Position bestimmen?
Und ganz allgemein würde ich gerne die allgemeinen Grundsätze und Algorithmen kennen, um Informationen über offene/geschlossene Positionen auf mql5 zu erhalten.
Was ist zu beachten, welche Besonderheiten gibt es derzeit?
Wie kann ich den Zeitpunkt des Öffnens der letzten Position und den Zeitpunkt des Schließens der letzten Position bestimmen?
Generell würde ich gerne die allgemeinen Prinzipien und Algorithmen kennen, um Informationen über offene/geschlossene Positionen in mql5 zu erhalten.
Was ist zu beachten, was sind die Besonderheiten im Moment?
Dies alles wird durch die Auswahl der Auftrags- und Handelshistorie und das anschließende Lesen der Eigenschaften der Aufträge ermittelt.
POSITIONSNUMMER
Die Positionskennung ist eine eindeutige Nummer, die jeder neu eröffneten Position zugewiesen wird und sich während ihrer gesamten Lebensdauer nicht ändert. Sie entspricht dem Ticket des Auftrags, mit dem die Position eröffnet wurde.
Die Positionskennung wird in jedem Auftrag (ORDER_POSITION_ID) und jedem Geschäft (DEAL_POSITION_ID) angegeben, mit dem er eröffnet, geändert oder geschlossen wurde. Verwenden Sie diese Eigenschaft, um nach Aufträgen und Geschäften zu suchen, die sich auf die Position beziehen.
Wenn eine Position im Netting-Modus storniert wird (ein einzelnes In/Out-Geschäft), wird die POSITION_IDENTIFIER-Kennung der Position nicht geändert. POSITION_TICKET wird jedoch in das Auftragsticket geändert, das zum Storno geführt hat. Im Absicherungsmodus gibt es keine Positionsumkehr.
lang
Und unter Verwendung der Eigenschaften aus der Aufzählung ENUM_DEAL_ENTRY
DEAL_ENTRY_IN
Eintritt in den Markt
DEAL_ENTRY_OUT
Marktaustritt
DEAL_ENTRY_INOUT
Kehrtwende
DEAL_ENTRY_OUT_BY
Gegenposition schließen