PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : "Nullspaltfehler" im EA



werty18
13-11-2024 04:47,
Hallo alle, Ich habe Probleme bei der Ausführung, die EA an einem gewissen Punkt wegen eines "Null-Split-Fehlers" stoppt. Jemand mit Erfahrung, die auf den Fehler hinweisen kann und wie man ihn lösen kann? Vielen Dank im Voraus.

Bravo
13-11-2024 04:52,
Testen Sie das... repariert, aber nicht getestet. MT4/MT5 EAs/Indicadores/Alarms coder

werty18
13-11-2024 04:56,
Hallo, danke für die Hilfe, ich werde es beweisen, wenn der Markt öffnet.

Saske
13-11-2024 05:00,
Hallo, danke für die Hilfe, ich werde es beweisen, wenn der Markt öffnet. MT4/MT5 EAs/Indicators/Alarms code

werty18
13-11-2024 05:03,
Hallo, Das EA funktioniert gut, ohne einen "Null-Split-Fehler" zu haben. Aber ich habe bemerkt, dass der EA "gefroren" wird oder, besser gesagt, nicht mehr funktioniert, nachdem das Ziel erreicht ist. Wenn ich zum Beispiel "alle Befehle jetzt schließen" wähle, schließt der EA alle Befehle, wenn Sie den Tick eingeben. Dann, wenn ein anderer Tick eindringt, wird der EA "gefroren" und es wird nicht mehr funktionieren. Sie können dies bemerken, weil der Timer, der im Diagramm erscheint, nicht läuft, wenn ein Tick nach dem Ausführen der Bedingung kommt. Ich habe unter anderen Bedingungen versucht und das Ergebnis ist das gleiche: sobald der EA läuft, wird es gestoppt. Ich muss das EA entfernen und es wieder an das Diagramm anhängen, damit es wieder funktioniert. Gibt es einen Weg, das zu lösen?

eugenio1113
13-11-2024 05:08,
Wenn dann ein anderer Tick eindringt, wird der EA "gefriert" und es wird nicht mehr funktionieren. Sie können dies bemerken, weil der Timer nicht läuft, wenn ein Tick nach dem Ausführen der Bedingung ankommt. Was meinst du mit "hör auf zu funktionieren"? Die Arbeit des EA ist es, alle Befehle zu schließen. Wenn es keine Befehle zum Schließen gibt, hat das EA keinen Zweck im Diagramm, das heißt, es sollte nicht ausgeführt werden. Es soll ein halbautomatisches EA sein. Ich schlage vor, es in ein Skript zu verwandeln (einzigartige Ausführung).

werty18
13-11-2024 05:12,
Vielleicht habe ich das Problem nicht klar erklärt, hier ist das Testszenario: In einem Demo-Konto öffnen Sie einige Operationen, zum Beispiel 3 Verkäufe und 2 Einkäufe. Wählen Sie "alle Bestellungen jetzt schließen" = True Die EA schließt alle Operationen (3 Verkäufe und 2 Einkäufe)

jaoxsin
13-11-2024 05:16,
Wenn Ihre EA nach Erfüllung einer Bedingung "gefriert" wird, müssen Sie vielleicht eine Schleife hinzufügen, die es ermöglicht, sie weiter auszuführen. Stellen Sie sicher, dass sie einen Neustart-Zyklus hat, damit sie nach jeder Aktion weiter überwacht werden kann.

dreamtheater23
13-11-2024 05:22,
Hast du es einfach versucht, indem du das Diagramm neu gestartet oder den Zeitrahmen geändert hast? Manchmal, wenn du das nur machst, funktionieren die EAs wieder, ohne dass du sie neu programmieren musst. Es kann einfach klingen, aber es funktioniert oft.

eyxa222
13-11-2024 05:25,
Dieses "Frühstück" ist wahrscheinlich, weil das EA keine aktive Bedingung mehr für das Ausführen findet. Du könntest versuchen, eine Variable aufzunehmen, die neue Operationen erkennt und den Code wieder aktiviert, aber sichergehen, dass er nach jeder Ausführung nicht deaktiviert wird.

ximirenne
13-11-2024 05:30,
Dein EA führt die Funktion nur einmal aus, weil die Bedingung erfüllt ist und dann nichts mehr zu tun hat. Du brauchst einen "Hauptknüppel," der es aktiv hält. Dies kann so einfach sein, wie eine Funktion hinzuzufügen, die immer die Anzahl der geöffneten Operationen überwacht.

jmshrra10
13-11-2024 05:35,
Ich empfehle Ihnen, einen Indikator wie "iTime" anstelle eines einfachen Timers zu verwenden. Ticks aktivieren manchmal den Code nicht, wie Sie möchten, besonders wenn Ihr EA von temporären Bedingungen abhängt.

JuanRamok123
13-11-2024 05:38,
Fügen Sie eine Bedingung hinzu, unter der Ihr EA erneut gestartet werden kann, wenn Sie eine �“nderung bei geöffneten Operationen oder der Bilanz feststellen. Manchmal reicht diese Bedingung aus, um den EA-Fluss zu halten, ohne dass er manuell neu gestartet werden muss.

Paskqual
13-11-2024 05:42,
Was Sie beschreiben, sieht aus wie ein Problem mit der EA-Speicherverwaltung. Wenn es sehr schwer ist, neigen einige MT4 dazu, es nach der Ausführung einmal "aufzuhalten." Hast du versucht, den Code zu optimieren?

luiso11
13-11-2024 05:45,
Wenn das Problem darin besteht, dass der EA beim Schließen aller Befehle nicht mehr funktioniert, ist eine mögliche Lösung, dass Sie überprüfen, ob ein "Befehl" noch offen ist, bevor Sie den Code wieder aktivieren.

oxyya2508
13-11-2024 05:51,
Manchmal ist es besser, eine "leichtere" Version der EAs zu machen. Wenn Sie überlastet sind, können Sie einige entfernen, um zu sehen, ob es noch eingefroren wird. Übermäßige Codebelastung kann auch das Problem verursachen.

oxrayvipe
13-11-2024 05:56,
Haben Sie versucht, das EA in zwei Teile zu teilen? Machen Sie einen, der nur die Befehle verwaltet, und einen, der die Ein- und Ausgangsbedingungen kontrolliert. So können Sie identifizieren, welche der beiden Teile fehlschlägt, wenn Sie anhalten.

kukuxumurru
13-11-2024 06:01,
Dein Code scheint das nächste Ereignis nicht "erwarten" zu wollen. Testen Sie, indem Sie eine Wartefunktion hinzufügen, damit Sie immer neue Befehle überprüfen und nicht "morden" nach Abschluss der ersten Operationen.

yyxeyyy
13-11-2024 06:05,
Für Fälle wie Ihre empfehle ich immer, ein zusätzliches Skript zu programmieren, das nur reagiert, wenn Sie keine Aktivität im Haupt-EA erkennen. Im Grunde wäre es ein "Erreger" für Ihr EA.

Tayayayzxaxaya
13-11-2024 06:08,
Das Hauptproblem hier scheint das Fehlen einer Zyklusfunktion in Ihrem Code zu sein. Wenn Sie sie aktiv bleiben müssen, fügen Sie ein "while true" hinzu, das nur unterbrochen wird, wenn Sie feststellen, dass alle Operationen geschlossen sind und es keine neuen gibt.

Juanpodo
13-11-2024 06:12,
Du könntest die EA jedes Mal, wenn du alle Befehle ausgeführt hast, automatisch neu starten lassen. Fügt eine kleine Verzögerung hinzu, bevor der Prozess wieder gestartet wird, um das System nicht zu überladen.

ccaarrmmooknaa
13-11-2024 06:16,
Sieh mal, die EA funktioniert nicht mehr, weil sie keine Aufgaben hat, sobald sie alles ausgeführt hat. Fügt eine Bedingung hinzu, damit sie weiterhin neue Befehle im Diagramm durchsucht und du siehst, wie das Problem verschwindet.

Mokti23
13-11-2024 06:20,
Der EA funktioniert nur einmal, weil Ihr Code wahrscheinlich nicht "zuhören" neue Operationen. Stellen Sie einen Zyklus ein, der die geöffneten Befehle regelmäßig überprüft, damit er nie aufhört.

oxrcmoktixxa
13-11-2024 06:26,
Wenn Ihr Problem ist, dass der Timer eingefroren wird, versuchen Sie, einen Zähler oder Trigger hinzuzufügen, der den EA dazu zwingt, seinen eigenen Zustand jede Zeit zu überprüfen. Dies löst normalerweise die meisten "Frieren."

yaxayyixoyex.ex
13-11-2024 06:30,
Vielleicht stoppt die EA, weil es beim Schließen aller Befehle einen Konflikt in der Programmierung gibt. Stellen Sie sicher, dass der Code erneut ausgeführt wird, auch wenn Sie keine Befehle zur Bearbeitung in jedem Tick erkennen.

Ixxiyu
13-11-2024 06:33,
Du könntest eine boolesche Variable hinzufügen, die kontrolliert, ob die EA bereits alle Befehle geschlossen hat oder nicht. So wird jedes Mal, wenn die Bedingung "alles schließen" erfüllt ist, der EA überprüfen, ob sie weiterhin funktionieren soll.

yyyey03
13-11-2024 06:39,
Manchmal fehlschlagen EAs, wenn der Code nicht optimiert ist. Wenn Sie viele Bedingungen haben, können Sie den Code vereinfachen und sehen, ob mit weniger Einschränkungen noch gestoppt wird.

Mimimi1928
13-11-2024 06:44,
Du sagst, es stoppt, nachdem du alles geschlossen hast. Vielleicht solltest du eine Funktion hinzufügen, die alle 10 Sekunden neue Operationen überprüft. So wird die EA wieder aktiviert, wenn du etwas Neues erkennst.

por.tu.gal.1960
13-11-2024 06:48,
Wenn das EA nur einmal die Befehle schließt, ist es am einfachsten, es in ein Skript anstatt in ein EA zu konvertieren. Skripte sind in der Regel stabiler und erfüllen in vielen Fällen die gleiche Funktion.

xayyyea46
13-11-2024 06:53,
Meine Empfehlung ist, dass Sie "OnTimer" anstelle von Ticks verwenden. Diese Funktion kann dazu führen, dass das EA in regelmäßigen Abständen ausgeführt wird, wodurch es nicht eingefroren wird.

Xayaayxox3
13-11-2024 06:59,
Das Problem ist, dass die EA die �“nderung nicht erkennt, wenn neue Befehle geöffnet werden. Sie könnten einen Befehlsmonitor in den Code einfügen, um sicherzustellen, dass die EA wieder aktiviert wird.

iyix
13-11-2024 07:03,
Testen Sie einen Tick-Zähler auf dem EA programmieren. Jedes Mal, wenn Sie eine bestimmte Zahl erreichen, könnte das EA Ihren Prozess neu starten und neue Befehle automatisch erkennen.

Cristinacarabe77
13-11-2024 07:09,
Das Hinzufügen eines "Befehlsmonitors" kann die Lösung sein. Auf diese Weise wird das EA ständig überprüfen, ob neue Befehle erfüllt werden müssen, auch nach Abschluss der oben genannten Befehle.

Oxnwahhs
13-11-2024 07:12,
Manchmal halten die EAs an, weil der Code keine kontinuierliche "Hör"-Funktion hat. Mit einem einfachen "for"-Zyklus kannst du das Problem lösen, ohne den Code zu berühren.

Purwza
13-11-2024 07:17,
Versuchen Sie, eine Funktion hinzuzufügen, die kontrolliert, wenn der Timer angehalten wurde. Diese Art von Code reaktiviert normalerweise den EA und verhindert, dass er nach der ersten Befehle eingefroren wird.

Toyaexox0
13-11-2024 07:22,
Wenn der EA eingefroren wird, prüfe, ob du irgendwelche "Geisteroperation" hast, die Konflikte verursacht. Das heißt, offene Befehle, die der EA nicht richtig erkennt. Manchmal wird der EA nicht mehr funktionieren.

oxnoahygora
13-11-2024 07:27,
Es ist möglich, dass das EA "gefroren" wird, weil die Bedingung "alles schließen" programmiert ist, ohne eine Reaktivierung zuzulassen. Es enthält eine Linie, die es nach Erfüllung der ersten Bedingung wieder aktiviert.

Daynalpz
13-11-2024 07:31,
Das Problem ist typisch für EAs, die nicht programmiert sind, auf �“nderungen des Diagramms zu reagieren. Fügt einen Befehl hinzu, der den EA zwingt, sich nach dem Schließen zu reaktivieren.

Carlis11s
13-11-2024 07:34,
Sie können dieses Problem lösen, indem Sie in jedem Tick eine "refresh" Funktion verwenden. Diese Funktion wird das EA ständig überprüfen lassen, wenn es Aufgaben hat, die das Einfrieren verhindern.

Luisfruter
13-11-2024 07:39,
Eine andere Lösung kann darin bestehen, den EA so zu konfigurieren, dass er jede bestimmte Anzahl von Ticks überprüft, wenn es neue Befehle gibt. Dies wird es unaufhörlich halten.

Axeyiya68
13-11-2024 07:45,
Wenn ein EA nach dem Ausführen einer Aktion eingefroren wird, ist es in der Regel darauf zurückzuführen, dass es keine Neustart-Kondition hat. Du könntest ein "while" im Code hinzufügen, damit es weiterhin ausgeführt wird, solange es Befehle gibt.

Yyxuxyyiy
13-11-2024 07:49,
Versuchen Sie, die Wartezeit des EA so zu ändern, dass er nach dem Schließen aller Befehle erneut überprüft wird. Sie verhindern, dass der Code nach der Erfüllung Ihrer ersten Aufgabe "gefroren" wird.

radeco
13-11-2024 07:53,
Wenn der EA alle Befehle schließt und dann aufhört, wird der Code vielleicht nur einmal ausgeführt. Prüfen Sie, ob er eine Neustart-Funktion hat und stellen Sie sicher, dass er nach der ersten Ausführung nicht ausgeschaltet wird.

bubixxa978
13-11-2024 07:58,
Eine mögliche Lösung ist, einen Statusmonitor hinzuzufügen, der erkennt, ob der EA nicht mehr funktioniert und automatisch wieder aktiviert wird. Damit Sie ihn nicht manuell neu starten müssen.

ivanxo91
13-11-2024 08:03,
Wenn Ihr EA nach dem Schließen aller Befehle eingefroren wird, versuchen Sie einen Zyklus zu verwenden, der die Anzahl der geöffneten Operationen ständig überprüft. So wird das EA auch nach dem Schließen des gesamten Vorgangs weiter funktionieren.

SPG
13-11-2024 08:08,
Du könntest den EA in mehrere Teile aufteilen, damit jeder eine bestimmte Funktion erfüllt und so verhindert wird, dass alles aufhört, wenn er nur eine Bedingung erfüllt.

oxrayroblesc
13-11-2024 08:11,
In vielen Fällen halten die EAs an, weil der Code nicht optimiert ist. Bringen Sie die EA dazu, alle eine Weile neue Bedingungen zu überprüfen, und Sie werden sehen, wie er nach der ersten Ausführung nicht aufhört.

ariqwlex
13-11-2024 08:17,
Es scheint, dass Ihre EA keine "Neustart"-Funktion hat. Fügen Sie eine hinzu, die jede bestimmte Anzahl von Ticks überprüft, ob es neue Operationen oder Bedingungen für die Verarbeitung gibt.

Oxray
13-11-2024 08:22,
Wenn Ihr EA nach dem Schließen aufhört, müssen Sie vielleicht eine Funktion hinzufügen, die Sie dazu zwingt, das Diagramm auf der Suche nach neuen Befehlen immer wieder zu überprüfen.

Ayeyxu265
13-11-2024 08:25,
Stellen Sie das EA so ein, dass Sie den Status der Befehle in jedem Tick überprüfen. Dadurch wird sichergestellt, dass Sie immer aktiv sind und nach der ersten Aufgabe nicht "gefriert" werden.