Interessantes Thema für viele: was ist neu in MetaTrader 4 und MQL4 - große Änderungen auf dem Weg - Seite 56

 
MetaDriver:
Mit Lücken sehe ich, aber wie hilft der Tester, den Schlupf zu sehen?
Jeder TS hat seine eigene individuelle Geschichte.
 
Avals:
Um Slippage im Tick-Data-Tester zu erkennen, müssen Sie eine ungefähre Zeitverzögerung bei der Datenübertragung zwischen dem Broker und dem Client (Lag) einstellen. Jeder Tick hat seinen Zeitpunkt, an dem er aufgetreten ist, beispielsweise auf die Millisekunde genau. Im Tester, wenn die Zeit der Platzierung einer Marktorder + lag>die Zeit des nächsten Ticks, dann führen wir zu den Preisen des neuen Ticks. Es ist klar, dass eine Teilausführung auf diese Weise nicht simuliert werden kann, wir brauchen hier Liquiditätsdaten.

Ja, das ist richtig.

+ Sie können auch eine Zeitangabe machen, d. h. die Verzögerung zum Zeitpunkt der Veröffentlichung von Nachrichten erhöhen (durch Vorabkontrolle in der Realität).

 
Avals:

Um Slippage auf Tick-Daten im Tester zu erfassen, müssen Sie die ungefähre Zeitverzögerung zwischen dem Broker und dem Client (Lag) einstellen.

Jeder weiß, dass der MetaTrader 5 Strategy Tester den Modus Arbitrary Delay hat. Hilfe in MetaTrader 5Strategy TesterEinstellungen?

Arbiträre Verzögerung

Der Modus Arbitrary Delay ist für das Testen von Expert Advisors in einer realitätsnahen Umgebung gedacht. Von dem Moment an, in dem ein Auftrag gesendet wird, bis zu seiner Ausführung, kann sich der Preis ändern. Je nach der im Auftrag festgelegten Abweichung kann der Auftrag entweder zum aktuellen Preis ausgeführt werden (wenn er innerhalb der Abweichungsgrenzen liegt) oder neu bewertet werden. Das Testen in diesem Modus ermöglicht es Ihnen, den Expert Advisor richtig zu programmieren, um mit solchen Situationen umzugehen.

Für alle vom Terminal gesendeten Handelsaufträge ( Auftragserteilung, Änderung der Stop-Levels usw.) wird eine Verzögerung imitiert. Die Ausführungsverzögerung erfolgt nach folgendem Prinzip: Es wird eine Zufallszahl von 0 bis 9 gewählt und die Verzögerung wird für die gleiche Anzahl von Sekunden durchgeführt; wenn die gewählte Zahl 9 ist, wird eine weitere Zahl aus dem gleichen Bereich zufällig gewählt und zur ersten hinzugefügt. Die Wahrscheinlichkeit einer Verspätung von 0-8 Sekunden liegt also bei 90%, die einer Verspätung von 9-18 Sekunden bei 10%.

 
Rosh:

Jeder weiß, dass der MetaTrader5-Tester einen Zufallsverzögerungsmodus hat Hilfe in MetaTrader 5StrategietesterEinstellungen?

Dies ist nur relevant, wenn Sie in der Lage sind, mit echten Ticks zu testen, und zwar mit Nuancen (da sich die Verzögerung manchmal im Laufe der Zeit ändert).

 
Rosh:

Ich denke, die meisten Leute sind sich bewusst, dass der MetaTrader5-Tester einen beliebigen Verzögerungsmodus hat Hilfe in MetaTrader 5Strategy TesterEinstellungen:

Ja, eine nützliche Funktion, die es dem EA-Autor ermöglicht, den Umgang mit solchen Situationen richtig zu programmieren". Aber die Auswirkung von Slippage auf Gewinn/Verlust wird ohne Ticks nicht funktionieren. (obwohl die meisten Menschen das nicht brauchen))) )
 

Die zufällige Verzögerung ist ein grobes Hilfsmittel. Dies ist die einzige Möglichkeit für einen ernsthaften Test:

Indikative Historie (der Roboter im Tester sieht nur diese - wie im wirklichen Leben) + seine eigene benutzerdefinierte Historie, die für einen bestimmten TS erstellt wurde (der Tester führt sie aus).

Bei der Erstellung einer benutzerdefinierten Historie werden der LiveTime-Preis (+ Ping), die Liquidität (Level2 und die vom TS betriebenen Volumina), etc. berücksichtigt. Und noch immer können wir keine ideale Übereinstimmung erreichen, obwohl es möglich ist, sich ihr zu nähern. Es gibt nur Feinheiten, die man fühlen muss - um die Realität ihres TS zu ergründen.

P.S. Beachten Sie, dass Sie nach der Erstellung eines solchen benutzerdefinierten Builds noch einen Filter darauf anwenden müssen. Daher kann ein solcher benutzerdefinierter Verlauf in Form von M1 HighBid+LowAsk vorliegen. D.h. es ist nicht notwendig (fast immer), durch eine Zeckenhistorie oder Level2 - Historie zu testen. Wir sollten nur eine vorläufige Ausführungsgeschichte aus dieser großen Geschichte erstellen. Und dann geht das Muster weiter.

 
hrenfx:

Die zufällige Verzögerung ist ein grobes Hilfsmittel. Dies ist die einzige Möglichkeit für einen ernsthaften Test:

Indikative Historie (der Roboter im Tester sieht nur diese - wie im wirklichen Leben) + seine eigene benutzerdefinierte Historie, die für einen bestimmten TS erstellt wurde (der Tester führt sie aus).

Bei der Erstellung einer benutzerdefinierten Historie werden der LiveTime-Preis (+ Ping), die Liquidität (Level2 und die vom TS betriebenen Volumina), etc. berücksichtigt. Und noch immer können wir keine ideale Übereinstimmung erreichen, obwohl es möglich ist, sich ihr zu nähern. Es gibt nur Feinheiten, die man fühlen muss - um die Realität ihres TS zu ergründen.

P.S. Beachten Sie, dass Sie nach der Erstellung eines solchen benutzerdefinierten Builds noch einen Filter darauf anwenden müssen. Daher kann ein solcher benutzerdefinierter Verlauf in Form von M1 HighBid+LowAsk vorliegen. D.h. es ist nicht notwendig (fast immer), durch eine Zeckenhistorie oder Level2 - Historie zu testen. Wir sollten nur eine vorläufige Ausführungsgeschichte aus dieser großen Geschichte erstellen. Und dann wird das Muster seinen Lauf nehmen.

Ich nehme an, dass nur FOREX gemeint ist?

Denn bei Futures gilt: 1 Tick (4-stellig) = 10 Ticks (meist 5-stellig) bei FOREX.

 
Wenn nur FOREX gemeint war, würde ich eine Klarstellung vornehmen.
 
hrenfx:

Die zufällige Verzögerung ist ein grobes Hilfsmittel. Dies ist die einzige Möglichkeit für einen ernsthaften Test:

Indikative Historie (der Roboter im Tester sieht nur diese - wie im wirklichen Leben) + seine eigene benutzerdefinierte Historie, die für einen bestimmten TS erstellt wurde (der Tester führt sie aus).

Bei der Erstellung einer benutzerdefinierten Historie werden der LiveTime-Preis (+ Ping), die Liquidität (Level2 und die vom TS bedienten Volumina), etc. berücksichtigt. Und noch immer können wir keine ideale Übereinstimmung erreichen, obwohl es möglich ist, sich ihr zu nähern. Es gibt nur Feinheiten, die man fühlen muss - um die Realität ihres TS zu ergründen.

P.S. Beachten Sie, dass Sie nach der Erstellung eines solchen benutzerdefinierten Builds noch einen Filter darauf anwenden müssen. Daher kann eine solche benutzerdefinierte Historie in Form von M1 HighBid+LowAsk vorliegen. D.h. es ist nicht notwendig (fast immer), durch eine Zeckenhistorie oder Level2 - Historie zu testen. Wir sollten nur eine vorläufige Ausführungsgeschichte aus dieser großen Geschichte erstellen. Und dann geht das Muster weiter.

Dies ist die Aufgabe des Testers. Vor dem Testen/Optimieren müssen Sie die erforderliche benutzerdefinierte Historie erstellen, je nachdem, was optimiert werden soll und welche Art von Aufträgen es gibt, zum Beispiel. Das ist ein rein technischer Aspekt, der von einem automatisierten System optimal erledigt werden kann. Ich denke, dass MT auch dies (Aufbereitung der historischen Daten) im Rahmen der Möglichkeiten des Testers tut.
 

Dies ist die Aufgabe eines geeigneten Algotraders, nicht die eines Testers. Im MT5-Tester gibt es keine Daten über die Besonderheiten des getesteten TS und die gleiche Level2-History, um eine Execution-History für Ihren TS zu erstellen.

Diezufällige Verzögerung ist das erste, was einem beim Schreiben des Testers in den Sinn kommt. Grob - ja, aber mit Sinn. Manchmal wird eine solche Rauheit auch für Begrenzer verwendet - zufällige Verzögerung.

Es geht nicht um Superpräzision, sondern immer um die goldene Mitte zwischen Präzision und Geschwindigkeit. Nur in ganz bestimmten Situationen ist es sinnvoll, Finessen einzusetzen.

Für MT5 ist die Idee eines willkürlichen Verzögerungsmodus (ich habe die Implementierung nicht gesehen) also durchaus angemessen.