Einzelnen Beitrag anzeigen
  #6 (permalink)  
Alt 31.05.20
LQK LQK ist offline
Mitglied
 
Registriert seit: Nov 2019
Beiträge: 76
LQK befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
@LQK:
"OnInit() ist die Funktion die beim Starten eines EA immer zuerst aufgerufen wird, alle weiteren Funktionen müssen somit aus OnInit() heraus aufgerufen werden."

Nein alle weiteren Funktionen werden nicht aus OnInit() heraus aufgerufen, sondern aus OnTick() (bei einem EA!).
Ich verstehe. Habe mir jetzt im Metaeditor mit dem Wizard noch mal eine neue Vorlage für einen EA geöffnet. Habe dabei, wie weiter oben schon jemand geschrieben hat, erstmal alle Häkchen entfernt.

Demnach enthält die so geöffnete Vorlage für den EA nur solche Funktionen, die offenbar jeder EA enthalten sein müssen. Das sind:
  • OnInit()
  • OnDeInit()
  • OnTick()

KORREKTUR:

Die Methode OnTick() muss der EA offenbar nicht zwingend enthalten, zumindest sagt das die Dokumentation. Offenbar können stattdessen auch andere Funktionen (z.B. Timer() o.ä.) tätig werden.

Quelle:
https://www.mql5.com/de/docs/event_handlers/ontick

--

Jetzt gerade versuche ich zu verstehen, was die Methode OnTick() macht. Offenbar läuft die Methode OnTick() jedes Mal dann ab, wenn "im" EA bzw. "in" MT das Ereignis "ES GIBT EINEN NEUEN TICK" aufgetreten ist.


Zitat:
"... und die Funktion OnInit() enthält immer bereits die Funktion EventSetTimer() sowie return(INIT_SUCEEDED)."

Nein, enthält sie normalerweise nicht, nur, wenn während des EA-Ablaufes nach einer bestimmten Zeit Funktionen aufgerufen werden sollen, um nicht auf den nächsten Tick warten zu müssen.
Okay. Besten Dank für die Info.



Zitat:
return(INIT_SUCEEDED), dabei entspricht das INIT_SCCEEDED dem Integerwert 0, neben INIT_FAILED (1) und INIT_PARAMETERS_INCORRECT (2).
Wird 0 zurückgegeben, dann wurde da s Programm erfolgreich initialisiert.

traderdoc

Okay. Das erklärt es. Besten Dank für die Aufklärung!


Grüße,
LQK