Fehler, Irrtümer, Fragen - Seite 2859
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
Was denken Sie generell über eine mögliche Umsetzung?
Es gibt viele mögliche Umsetzungen
aber es geht um die Aufgabe des Datenaustauschs zwischen EAs
Der einfachste Weg ist, die Erlaubnis für die Initialisierung zu prüfen und die Initialisierung selbst in OnTick() durchzuführen- dies würde es ermöglichen, das Wiederherstellen von Charts und das anschließende Ausführen von EA auf ihnen zu vermeiden, und das Speichern von EA vor dem Schließen wäre in OnDeinit() möglich
esist nicht wichtig, wer diesen Zoo verwaltet - entweder der Haupt-EA oder ein Dienst
Im Protokoll des Testers
Was bedeutet das?
Im Protokoll des Testers
Was bedeutet das?
Das bedeutet, dass das Zeitfeld 0 enthält, wenn der nächste Wert von m1 ohlc empfangen wird (oder der Bar-Status bei der Prüfung durch offene Preise).
undefinierte Funktion bedeutet, dass das Problem außerhalb der vordefinierten Funktionen (OnTick, OnTimer usw.) aufgetreten ist, d. h. in der Hauptschleife des Testers
Das bedeutet, dass beim Abrufen des nächsten m1 ohlc-Wertes (oder des Bar-Status beim Testen anhand der offenen Preise) das Zeitfeld 0 enthält.
undefinierte Funktion bedeutet, dass das Problem außerhalb der vordefinierten Funktionen (OnTick, OnTimer usw.) aufgetreten ist, d. h. in der Hauptschleife des Testers
Alles funktionierte den ganzen Tag über einwandfrei, und dann fing es an. Was kann ich als Nutzer tun?
Das bedeutet, dass beim Abrufen des nächsten m1 ohlc-Wertes (oder des Bar-Status beim Testen anhand der offenen Preise) das Zeitfeld 0 enthält.
undefinierte Funktion bedeutet, dass das Problem außerhalb der vordefinierten Funktionen (OnTick, OnTimer usw.) aufgetreten ist, d. h. in der Hauptschleife des Testers
Ich verstehe nicht, ist es ein Fehler in meinem Code oder ist es ein Fehler im Terminal? Ich habe den gesamten Verlauf gelöscht - das hat nicht geholfen.
Hinzugefügt:
Ich habe eine Funktion in meinem Code gefunden, deren Deaktivierung den Fehler vermeidet, aber in einem anderen EA funktioniert diese Funktion korrekt! Wie das? Ich kann sie in meiner privaten Nachricht hinterlassen.
Selbst wenn diese fehlerhafte Funktion aktiviert ist, wird OnTick() beim ersten Balken vollständig ausgeführt und dann dieser Fehler.
Auf verschiedenen Terminals wird der Fehler bestätigt.
Lief auf Ticks - kein Fehler...
Aber das Seltsame liegt im Protokoll:
Auf Ticks, wenn das Tool zu sehen, war der erste Tick genau um 10:00 Uhr, und Handelssitzung ist noch zu dieser Zeit geschlossen. Dies ist im visuellen Modus, ohne Häkchen kommt der erste Druck auf 10 Uhr.
Am einfachsten ist es, die Initialisierungserlaubnis zu Beginn eines jeden EA in OnTick() zu überprüfen
Dies ist das Hauptproblem der Aufgabe.
Achten Sie auf die Karten-IDs und gehen Sie nach Dienstalter vor. Dies hebt jedoch die Interaktion von EAs nicht auf. Oder erstellen Sie eine Datei oder vielleicht eine SQLite-Datenbank mit den Karten-IDs in der Startsequenz.
Etwa so: Wenn bei der ersten Initialisierung keine Chart_ID() in der Liste vorhanden ist, wird sie in die Liste eingetragen. Wenn sie nicht geschlossen wird, weil das Terminal geschlossen ist, wird sie aus der Liste entfernt. Auf diese Weise wird es möglich sein, die Interaktion von EAs zu konfigurieren.
Dies ist der Hauptknackpunkt des Problems.
skizziert, wie ich es sehe... 2 EA mit diesem Code erstellt:
und eine Steuerung EA, die im Timer ( 5 sec ) arbeitet
Überprüft, alles funktioniert, die einzige Sache, oder es funktionierte nicht mit GlobalVariableSetOnCondition(), um einen Datensatz in globalen Variablen zu machen
Dies ist das Hauptproblem der Aufgabe.
GlobalVariableSetOnCondition ist alles, was benötigt wird, um das Problem zu lösen.
Die Operation ist nur zulässig, wenn GlobalVariableSetOnCondition den Wert true zurückgegeben hat.
Nach erfolgreicher Initialisierung und Freigabe der Ressourcen wird die Hauptvariable wieder in ihren ursprünglichen Zustand versetzt und ein weiterer EA gestartet.
In DeInit - bedingungslose Löschung der Variablen, um nicht in das Terminal ohne EAs zu laufen (wenn das vorherige Laden nicht korrekt abgeschlossen wurde).
Vielen Dank für die Empfehlungen. Ich werde mir GlobalVariableSetOnCondition ansehen.