Das würde ich in OnInit() im EA machen und nicht mit mehreren _OnInit()-Funktionen.
Dort mit if (oder case) die versch. Funktionen aufrufen, die entweder alles anders heißen, oder denen jeweils andere Parameter übergeben werden.
Ich habe eine vielzahl an Dateien, welche eigene Funktionen beinhalten. Diese Dateien binde ich zu oberst in die mq5 Datei ein
Wie kann ich noch zum Ziel kommen die onInit() Funktion in den verschiedenen inkludierten Dateien zu nutzen?
OnInit() { CallInitFunctions(); return(INIT_SUCCEEDED); } OnDeinit(){} OnTick(){} void CallInitFunctions () { //hier werden die zuvor in OnInit enthaltenen Funktionen ausgelagert. CallInitFunctions () kann //auch von außerhalb aufgerufen werden. }
Wenn die Dateien eingebunden sind stehen sie ja quasi alle auf dem selben "Blatt" und können aus OnInit aufgerufen werden.
ich versteh gerade das problem nicht
ich hab die Funktion x in einer .mqh Datei liegen
diese Funktion kann ich im gesamten code verwende, sogar in anderen .mqh Dateien wenn diese richtig verknüpft sind
OnInit() hat nichts in include Dateien verloren.
Der Einzige Zweck ist das beim Programmaufruf diverse Checks eingebaut werden können und das Hauptprogramm nicht startet falls ein check false ergibt.
OnInit() hat nichts in include Dateien verloren.
Der Einzige Zweck ist das beim Programmaufruf diverse Checks eingebaut werden können und das Hauptprogramm nicht startet falls ein check false ergibt.
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Hallo.
Ich habe eine vielzahl an Dateien, welche eigene Funktionen beinhalten. Diese Dateien binde ich zu oberst in die mq5 Datei ein
"
#include <../Experts/include/my_functions1.mqh>
#include <../Experts/include/my_functions2.mqh>
..."
Nun habe ich in der mq5 Datei die onInit() Funktion. Ich benötige aber diese Funktion auch innerhalb der inkludierten Dateien. Der simple Aufruf dort führt zu zur Fehlermeldung "'__OnInit' - function already defined and has body".
Google brachte mich nur auf folgenden Ansatz:
in der eingebundenen .mqh-Datei jeweils
und in .mq5 Datei
Wenn ich das nur mit 1 inkludierten Datei machen geht es sobald es aber mehr sind ist das Ergebnis/der Fehler der/das Gleiche.
Wie kann ich noch zum Ziel kommen die onInit() Funktion in den verschiedenen inkludierten Dateien zu nutzen?