Fehler, Irrtümer, Fragen - Seite 1153
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
Das Video in den Forenbeiträgen wird nicht abgespielt. Anstelle des Videos ist ein leerer Raum zu sehen. Ich habe es mit verschiedenen Browsern versucht.
Wie führt man ein in Windows 8.1 installiertes Programm aus? Mit /portable?
Wenn Sie unter Windows 8.1 als normaler Benutzer arbeiten, merkt sich das MT5-Terminal die eingegebenen Kontonummern nicht. Außerdem speichert MetaEditor den MQL5-Speicherstatus nicht. Dies kann nur behoben werden, wenn Sie als Administrator arbeiten oder in den Dateieigenschaften von metaeditor64.exe und terminal64.exe "Dieses Programm als Administrator ausführen" ausgewählt ist.
P.S. Das Terminal ist das neueste - aber das Problem ist nicht neu.
Guten Tag.
Ich habe einen recht ressourcenintensiven Indikator (der aus 7+ Arrays berechnet wird), er lädt normalerweise nur "sporadisch" im Terminal, ich weiß nicht aus welchem Grund. Keine Fehler in ihm, es ist etwas mit MT5 Terminal selbst...
Ich würde es gerne im Tester testen, aber im Tester gibt es immer wieder Fehler: Ich habe einen Screenshot beigefügt.
Gibt eseine Möglichkeit, den Fehler vor dem Start des Prüfgeräts zu bearbeiten und den Indikator im Prüfgerät zwangsweise neu zu laden, wenn er auftritt?
Guten Tag.
Ich habe einen recht ressourcenintensiven Indikator (der aus 7+ Arrays berechnet wird), er lädt normalerweise nur "sporadisch" im Terminal, ich weiß nicht aus welchem Grund. Keine Fehler in ihm, es ist etwas mit MT5 Terminal selbst...
Ich würde es gerne im Tester testen, aber im Tester gibt es immer wieder einen Fehler: Ich habe einen Screenshot angehängt.
Gibt eseine Möglichkeit, den Fehler vor dem Start des Prüfgeräts zu behandeln und den Indikator im Prüfgerät zwangsweise neu zu laden, wenn er auftritt?
.
Der Fehler liegt in Ihrem Code, nicht im Terminal. Es gibt sogar einen Hinweis, wo der Fehler zu suchen ist: Zeile 302, Position 49. Dieser Fehler ist ein Array-Ausgang aus seinem Bereich. Sie haben zum Beispiel ein Array mit der Größe [4], aber Sie versuchen, den Wert [5] zu erhalten.
Ich kann es nicht beheben, das Array ist mit Anführungszeichen (100%) oder Indikatorwerten gefüllt. Im Terminal wird zu einem bestimmten Zeitpunkt der Wert der Kurse oder der Indikatoren X NULL ausgegeben, und zu einem anderen Zeitpunkt wird ein normaler Wert ausgegeben (nicht am 0. Balken). Ich weiß nicht, warum das so ist.
Der NULL-Wert ist im Prüfgerät immer vorhanden. Der Fehler tritt auf, wenn ich versuche, einen Kurs- oder Indikatorwert zu multiplizieren, der aber NULL ist.
Ich kann es nicht beheben, das Array ist mit Anführungszeichen (100%) oder Indikatorwerten gefüllt. Im Terminal gibt der Wert der Kurse X zu einem bestimmten Zeitpunkt NULL an, und zu einem anderen Zeitpunkt gibt er einen normalen Wert an (nicht am 0. Takt). Ich weiß nicht, warum das so ist.
Der NULL-Wert ist im Prüfgerät immer vorhanden. Der Fehler tritt auf, wenn ich versuche, einen Kurs- oder Indikatorwert zu multiplizieren, der aber NULL ist.
Dieser Code ist der Code des Indikators und der Funktion OnInit(). Dementsprechend wird OnInit() im Moment des Terminalstarts verarbeitet - und dieser Code zeigt den Tickpreis korrekt an. Es ist OnInit() und nicht init() - wie bei Ihnen. Wenn der Fehler wiederholt auftritt, senden Sie bitte den Code und die Terminalversion.
Der Fehler liegt darin, dass Sie versuchen, Marktinformationen (MarketInfo...) in OnInit() vom Indikator zu erhalten. Der Indikator hat keine Handelsfunktionen und wartet daher während der Initialisierung nicht auf die Aktualisierung von Konto- und Marktinformationen.
Um Marktdaten zu erhalten, verwenden Sie OnInit() des EA, nicht den Indikator.
Wenn Sie die Marktinformationen im Indikator verwenden wollen, sollten Sie ein Flag (bool) eingeben und die Richtigkeit der Kontoinformationen (Account...) in der Funktion OnCalculate() im Falle des ersten Laufs oder in OnInit() überprüfen, wenn Sie den Zeitrahmen oder die Indikatoreinstellungen ändern.
Führen Sie die Menschen nicht in die Irre. Unabhängig davon, ob init() oder OnInit() des Indikators verwendet wird, garantiert das Terminal nicht, dass dieser Handler aufgerufen wird, wenn die Anmeldung erfolgt ist und der Tick-Wert bekannt ist. Es ist also einfach, auch in OnInit den Wert Null zu erhalten. Es gibt auch kein Verbot der Verwendung von Marktinformationen in Indikatoren. Aber in diesem Fall müssen wir die Initialisierung wirklich in den Berechnungsteil des Indikators übertragen und bei den ersten Ticks ausführen.
Der Indikator verfügt über keine Handelsfunktionen. Der Expert Advisor hat Handelsfunktionen. Wenn der EA also die Marktumgebung und/oder Kontoinformationen aufruft, läuft alles korrekt in OnInit() ab.
Zum Beweis meiner Worte, hier ist ein einfacher EA, in dem OnInit() auf die Handelsumgebung und die Kontoinformationen verweist:
Der Indikator verfügt über keine Handelsfunktionen. Der Expert Advisor hat Handelsfunktionen. Wenn der EA also die Marktumgebung und/oder Kontoinformationen aufruft, läuft alles korrekt in OnInit() ab.
Zum Beweis meiner Worte, hier ist ein einfacher Expert Advisor, dass OnInit() ruft die Marktumgebung und Konto Informationen: