Fehler, Irrtümer, Fragen - Seite 2186

 
fxsaber:

MT4 Frage.

Ich habe das schon einmal erlebt und bin bei einem HFT-Test erneut über diesen Fehler gestolpert.

Ich setze ein BuyLimit, der Kurs bricht ein und bleibt viele Minuten lang unten. Gleichzeitig leuchtet BuyLimit gelb, aber "nicht ausgeführt".


Versuche, sie zu ändern, scheitern

2018.04.09 19:15:41.242 '89015117': modification of invalid order #108362456

Als ich das sah, erinnerte ich mich an diese längst vergangene Situation. Das Rezept war damals und ist auch heute noch dasselbe - sich wieder zu verbinden. Nach dem Kontakt stellt sich heraus, dass BuyLimit seit langem (seit dem Moment des Überschreitens) eine Kaufposition ist.

Zur gleichen Zeit vor der Wiederverbindung konnten wir andere Aufträge handeln und alles war in Ordnung mit ihnen, nur BuyLimit wurde schwebend.


Es stellt sich heraus, dass es im MT4-Terminal keine Benachrichtigung gibt, dass BuyLimit zu einer Kaufposition geworden ist. Daher ist es ein Ärgernis, bis man sich erneut anmeldet.

Ich muss mich daran erinnern, wie ich diese Situation gelöst habe. Aber ich bin mir zu 99 % sicher, dass ich im Falle von Fehlern oder Ungereimtheiten einfach gezwungen war, mich über die WinAPI neu anzumelden.

Ist es sinnvoll, SD darüber zu informieren, da es sich schließlich um MT4 handelt? So etwas habe ich seit 5 Jahren nicht mehr bemerkt.


Es scheint auf derselben Idee zu beruhen:

Hallo! Im MT4 kommt es beim Löschen einer Limit-Order, die innerhalb des Spreads platziert wurde, oft zu einer Fehlersituation - die zu löschende Order bleibt hängen, was nur durch ein Neuladen des Terminals behoben werden kann. Soweit ich den Mechanismus verstanden habe, geschieht dies auf folgende Weise:

1 ) Wir setzen ein Limit innerhalb des Spreads, nahe dem Preis Ask (für Buy-Orders Limit) oder Bid (fürSell-Orders Limit) und nach einiger Zeit versuchen wir, es zu löschen.

2 ) Wir senden einen Befehl OrderDelete(), während dieser Befehl an den Server geht, kann die Order bereits auf dem Server ausgeführt werden (sie befindet sich innerhalb der Spanne, sehr nahe am Aktivierungspreis). Es hat den Anschein, dass der Befehl, wenn er den Server erreicht, auf den Marktauftrag angewendet wird und wir einen Fehler im Terminal und einen eingefrorenen Auftrag erhalten. In diesem Fall bleibt die Order im Terminal eine Limit-Order (die auch mit der Funktion OrderType() als Limit-Order definiert wird) und wird erst nach einem Neustart des Terminals als Marktorder angezeigt. Wenn Sie es weiterhin als Limit löschen , werden Sie einen Fehler im Log des Expert Advisors mit Code: 3, und im Terminal-Log sehen:[Ungültige Parameter]. Eigentlich sind keine Aktionen mit einer solchen ausgesetzten Order möglich - es handelt sich um eine Limit-Order im Client-Terminal und eine Market-Order auf dem Server . Der Auftrag kann auch nicht manuell gelöscht werden.

Ich füge einen vereinfachten EA (nur für Buy Limit), zur Fehlerreproduktion und ein Profil mit 8 parallel installierten EAs bei (der Fehler tritt schneller auf, als wenn der Fehler von einem EA abgefangen wird - obwohl er auch bei einem installierten EA auftritt). Die Kauforder Limit wird auf 1 fünfstelligen Punkt unter dem Briefkurs gesetzt und wird nach 1 Sekunde nach dem Setzen entfernt. Wenn Sie eine Order sogar 5 Punkte unter dem Ask-Preis setzen und sie nach einer beliebigen Anzahl von Sekunden/Minuten/Stunden löschen, wird der Fehler immer noch von Zeit zu Zeit auftreten, nur weniger häufig, weil sich der Mechanismus seines Auftretens nicht ändert.

Sie müssen das Terminal starten und darauf warten, dass die ausstehende Bestellung erscheint. Normalerweise sollten Sie nicht länger als eine Stunde warten, je nach Marktaktivität.


Bewerbung offen, Begonnen: 2017.06.06.12:37, #1766459


Im Oktober 2017 schrieb mir servicedesk, dass es ihnen gelungen sei, diese Situation zu reproduzieren und dass sie an einer Lösung für das Problem arbeiteten. Und seither ist es still geworden...

 
Pavel Kolchin:

Produkt kann nicht vom Marktplatz heruntergeladen werden, was kann ich tun?


Versuchen Sie es noch einmal.

 
zenz:


Dies ist, wie es scheint, aus der gleichen Linie:

Hallo! Im MT4 kommt es beim Löschen einer Limit-Order, die sich innerhalb eines Spreads befindet, häufig zu einer Fehlersituation - die gelöschte Order bleibt hängen, was nur durch einen Neustart des Terminals behoben werden kann. Soweit ich den Mechanismus verstanden habe, geschieht dies auf folgende Weise:

1 ) Wir setzen ein Limit innerhalb des Spreads, nahe dem Preis Ask (für Buy-Orders Limit) oder Bid (fürSell-Orders Limit) und nach einiger Zeit versuchen wir, es zu löschen.

2 ) Wir senden einen Befehl OrderDelete(), während dieser Befehl an den Server geht, kann die Order bereits auf dem Server ausgeführt werden (sie befindet sich innerhalb der Spanne, sehr nahe am Aktivierungspreis). Es hat den Anschein, dass der Befehl, wenn er den Server erreicht, auf den Marktauftrag angewendet wird und wir einen Fehler im Terminal und einen eingefrorenen Auftrag erhalten. In diesem Fall bleibt die Order im Terminal eine Limit-Order (die auch durch die Funktion OrderType() als Limit-Order definiert ist) und wird erst nach einem Neustart des Terminals als Marktorder angezeigt. Wenn Sie es weiterhin als Limit löschen , werden Sie einen Fehler im Log des Expert Advisors mit Code: 3, und im Terminal-Log sehen:[Ungültige Parameter]. Eigentlich sind keine Aktionen mit einer solchen ausgesetzten Order möglich - es handelt sich um eine Limit-Order im Client-Terminal und eine Market-Order auf dem Server . Der Auftrag kann auch nicht manuell gelöscht werden.

Ich füge einen vereinfachten EA (nur für Buy Limit), zur Fehlerreproduktion und ein Profil mit 8 parallel installierten EAs bei (der Fehler tritt schneller auf, als wenn der Fehler von einem EA abgefangen wird - obwohl er auch bei einem installierten EA auftritt). Die Kauforder Limit wird auf 1 fünfstelligen Punkt unter dem Briefkurs gesetzt und wird nach 1 Sekunde nach dem Setzen entfernt. Wenn Sie eine Order sogar 5 Punkte unter dem Ask-Preis setzen und sie nach einer beliebigen Anzahl von Sekunden/Minuten/Stunden löschen, wird der Fehler immer noch von Zeit zu Zeit auftreten, nur weniger häufig, weil sich der Mechanismus seines Auftretens nicht ändert.

Sie müssen das Terminal starten und darauf warten, dass die ausstehende Bestellung erscheint. Normalerweise sollten Sie nicht länger als eine Stunde warten, je nach Marktaktivität.


Bewerbung offen, Begonnen: 2017.06.06.12:37, #1766459


Im Oktober 2017 schrieb mir servicedesk, dass es ihnen gelungen sei, diese Situation zu reproduzieren und dass sie an einer Lösung für das Problem arbeiteten. Und seither ist es still geworden....

Gut, dass Sie der Sache auf den Grund gegangen sind, einschließlich der Reproduktion! Die Handelsumgebung im Terminal ist nämlich noch nicht mit dem Trade Server synchronisiert.

Allerdings gab es nach Mai 2017 (Build 1090) keine Updates mehr und das Problem wurde im Oktober reproduziert. Der Zeitpunkt ist selbst für den MT5 schwer zu bestimmen, und erst recht für den 4.

Offenbar hielten die Entwickler diesen Fehler nicht für kritisch. Ich halte das für inakzeptabel. Ich halte das für inakzeptabel, denn fast niemand arbeitet mit Limit-Orders und innerhalb des Spreads.


ZZY Grüßen Sie mich in Ihrer Bewerbung an den BOD. Vielleicht ist es banal, sie haben es vergessen.

 
Fast235:

Warum wird beim Speichern eines Handelsberichts "Backtest" angezeigt?



Dies ist der Bericht aus der Registerkarte "Backtest" im Strategietester, richtig?

 
Alexander:

Dies ist der Bericht aus der Registerkarte "Backtest" im Strategietester, richtig?


Das ist nur ein versteckter Weg, um für Ihren Bericht zu werben.

 

Können Sie mir bitte sagen, wo der Fehler liegt?

(2018.04.10 15:20:13.844 Tester-Debug-Version von "MQL5\Experts\Probe5.ex5" kann nur auf lokalen Agenten optimiert werden, keine Cloud, keine Farm)

Mit der Optimierung bin ich schon am Ende. Entweder stimmt er dem Betrieb im lokalen Netz zu oder nicht!

 
AVAAR:

Können Sie mir bitte sagen, wo der Fehler liegt?

(2018.04.10 15:20:13.844 Tester-Debug-Version von "MQL5\Experts\Probe5.ex5" kann nur auf lokalen Agenten optimiert werden, keine Cloud, keine Farm)

Mit der Optimierung bin ich schon am Ende. Entweder er ist mit dem lokalen Netzwerk einverstanden oder nicht!

Kompilieren mit F7, nicht mit F5.

 
AVAAR:

Können Sie mir bitte sagen, wo der Fehler liegt?

(2018.04.10 15:20:13.844 Tester-Debug-Version von "MQL5\Experts\Probe5.ex5" kann nur auf lokalen Agenten optimiert werden, keine Cloud, keine Farm)

Mit der Optimierung bin ich schon am Ende. Entweder funktioniert es im lokalen Netz, oder nicht!

Der hervorgehobene Text ist die Ursache für Ihren Fehler.

Sie müssen die Datei kompilieren, bevor Sie sie optimieren können.

 
Alexander:

Dies ist der Bericht aus der Registerkarte Backtest im Strategietester, richtig?

Nein, das ist aus dem Tools-Modus, echter Handel, ich wollte das Ergebnis zeigen, aber es heißt Backtest)

vom Strategy Tester zusätzliche Felder im Bericht

 
Vladislav Andruschenko:


Es ist nur eine getarnte Art, für Ihren Bericht zu werben.

Wenigstens ist es kein Winzling)