Typische Fehler und wie man damit umgeht, wenn man mit dem Handelsumfeld zu tun hat - Seite 4

 
Artyom Trishkin:

Und wenn der Auftrag vom Server storniert wird?

Beim nächsten Tick sieht der EA dann, dass es keine Positionen gibt, und alles ist in Ordnung. Aber es wird keine Verdoppelung geben.


Artyom Trishkin:

Ich denke, dass wir bei der Berücksichtigung von Marktaufträgen zum Beispiel WRONG_VALUE zurückgeben sollten - Positionen können nicht kleiner als Null sein. Dies ist ein Signal, dass ein nicht erfasster Marktauftrag vorliegt. Addieren Sie aber nicht die Anzahl der Positionen.

Dies hängt von der Logik des jeweiligen TS ab.

Im einfachsten Fall, in dem nur ein Handel auf dem Markt erlaubt ist, sollte ein beliebiger Wert außer 0 zurückgegeben werden, wobei auch 1 ausreicht.

 
Andrey Khatimlianskii:

Beim nächsten Tick sieht der Berater, dass es keine Positionen gibt, und alles ist in Ordnung. Aber es wird keine Überschneidungen geben.


Das hängt von der Logik des jeweiligen TS ab.

Im einfachsten Fall, wenn nur ein Handel auf dem Markt erlaubt ist, reicht es aus, einen anderen Wert als 0 zurückzugeben, 1 genügt.

Er (der Expert Advisor) erhält bereits bei diesem Tick einen Wert, der größer ist als die Menge der Marktaufträge. D.h., es sind eigentlich zwei, aber die Funktion ergibt 3.

Ich denke, das ist kein normales Verhalten. Es sollte immer eine gültige Zahl bleiben, ohne virtuelle Positionen, die am Ende vielleicht gar nicht da sind.

Schließlich gibt es Strategien, die präzise Berechnungen für eine genau definierte Anzahl von Positionen, Volumina, aggregierte Stop/Stop-Levels usw. erfordern.

 
Andrey Khatimlianskii:

Das hängt von der Logik des jeweiligen TS ab.

Im primitivsten Fall, wenn nur ein Handel auf dem Markt erlaubt ist, reicht es aus, einen beliebigen Wert außer 0 zurückzugeben, auch 1 ist ausreichend.

Andrew, eine Funktion, die nach einer Menge oder einem Volumen oder anderen quantitativen Daten gefragt wird, ist verpflichtet, deren genauen Wert anzugeben.

Es ist ja nicht so, dass wir mit Spielzeug spielen :)

 
Artyom Trishkin:

Andrew, eine Funktion, die nach einer Menge oder einem Volumen oder einer anderen quantitativen Angabe gefragt wird, ist verpflichtet, den genauen Wert anzugeben.

Sie sehen sich ein spezifisches Beispiel eines EA mit einem Handel auf dem Markt an, und es ist zu 99 % der Zeit falsch geschrieben. Sie müssen noch zu den komplexen Themen kommen.

Wenn Sie wirklich wollen, können Sie die Funktion in IsPosition umbenennen und sie boolesch machen: return(Res>0);

 
Andrey Khatimlianskii:

Es wird ein konkretes Beispiel eines EAs mit einem Handel im Markt betrachtet, der in 99% der Fälle falsch geschrieben wird. Sie müssen noch zu den komplexen Themen kommen.

Wenn Sie wirklich wollen, können Sie die Funktion in IsPosition umbenennen und sie zu einem booleschen Wert machen: return(Res>0);

Nun, nein... es ist ein Beispiel für eine allgemeine Bibliotheksfunktion "für alle Fälle"...

Übrigens, interessanter Vorschlag, daraus eine boolesche Funktion zu machen - nach dem Vorbild vieler Standard-Mql5-Funktionen - mit Rückgabe des Ausführungsergebnisses als boolscher Wert und Anzahl der Positionen durch Übergabe des Wertes an eine Variable per Referenz.

 
Artyom Trishkin:

Nein..., ein Beispiel für eine allgemeine Bibliotheksfunktion "für alle Fälle" wird in Betracht gezogen.

Ja, universal.

 
fxsaber:

Ja, universal.

Die von Ihnen vorgeschlagene Lösung enthält eine Ungenauigkeit bei der Stornierung der Bestellung durch den Server. Ich möchte mit Ihnen besprechen, wie Sie mit dieser Ungenauigkeit umgehen können. Ohne sie ist der Vorschlag unausgegoren.
 
Artyom Trishkin:
Die von Ihnen vorgeschlagene Lösung enthält eine Ungenauigkeit der Auftragsstornierung durch den Server. Ich möchte erörtern, wie man mit dieser Ungenauigkeit umgehen kann. Ohne sie ist das Angebot unausgegoren.

Gehen wir weg von MT5 und hin zu MT4. Ein EA handelt. Plötzlich macht der Broker einen technischen Fehler (nicht Sie) und platziert eine Position auf Ihrem Konto, die den Filter des Expert Advisor Freund oder Feind - Magic, Symbol usw. - erfolgreich passiert. Sekunden später korrigiert der Makler seinen Fehler und löscht (schließt nicht einmal) seine Position von Ihrem Konto.

Wird Ihr TS kaputt gehen?


Ich erinnere mich an eine Situation, in der ein großer Broker, der Expert Advisors liebt, eine großartige Arbeit geleistet hat. Aus "Versehen" zahlte er einen sehr hohen Betrag auf das Konto ein. Dementsprechend eröffnete der Expert Advisor eine Position mit einem sehr großen Lot. Dann korrigierte der Makler den "Fehler" und zog das falsch gutgeschriebene Geld zurück. Das Konto wurde mit einem Stop-Loss geschlossen.

 
fxsaber:

Gehen wir weg von MT5 und hin zu MT4. Ein EA handelt. Plötzlich macht der Broker einen technischen Fehler (nicht Sie) und platziert eine Position auf Ihrem Konto, die den Filter des Expert Advisor Freund oder Feind - Magic, Symbol usw. - erfolgreich passiert. Sekunden später korrigiert der Makler seinen Fehler und löscht (schließt nicht einmal) seine Position von Ihrem Konto.

Wird Ihr TS kaputt gehen?


Ich erinnere mich an eine Situation, in der ein großer Broker, der Expert Advisors liebt, eine großartige Arbeit geleistet hat. Aus "Versehen" zahlte er einen sehr hohen Betrag auf das Konto ein. Dementsprechend eröffnete der Expert Advisor eine Position mit einem sehr großen Lot. Dann korrigierte der Makler den "Fehler" und zog das falsch gutgeschriebene Geld zurück. Das Konto wurde mit einem Stopout geschlossen.

Wir sprechen hier nicht über den TS.
Eine Funktion, die zurückgeben MUSS, was sich physisch auf dem Konto befindet.
Den ganzen Rest muss sich der TS-Entwickler "ausdenken" - auf die Waage bringen. Aber er sollte eine einfache Funktion in seinem Arsenal haben, die nicht lügt und dennoch die Möglichkeit bietet, über den unsicheren Zustand der Umwelt Bescheid zu wissen.
 

Artyom Trishkin:
Мы говорим не о ТС.

In diesem Beispiel geht es um die beschriebene spezifische TZ-Situation. Und da bleibt die Frage unbeantwortet.

Eine Funktion, die zurückgeben MUSS, was sich physisch auf dem Konto befindet.
Alle anderen "Vorstellungen" sollten in der Bilanz des TK-Entwicklers stehen. Aber er sollte eine einfache Funktion in seinem Arsenal haben, die nicht lügt und gleichzeitig eine Möglichkeit bietet, über einen undefinierten Zustand der Umgebung Bescheid zu wissen.

Die Funktion gibt zurück, was sich physisch auf dem Konto befindet. Und er lügt genau so viel, wie er in MT4 lügen würde. Das heißt, alles ist normal.