Dokumentation

Anwendungen

Zuletzt aktualisiert am 29. 4. 2019 von Mark Fric

Zuverlässiges Backtesting im MetaTrader

Zuverlässigkeit von Backtesting im Allgemeinen

Zunächst einmal müssen wir uns darüber im Klaren sein, dass Backtesting bedeutet, die Strategie anhand historischer Daten zu testen. Der exakte Fluss der Ticks wird sich in der Zukunft nie wiederholen. Selbst wenn Sie also echte Tick-Daten verwenden, bedeutet das nicht, dass sich Ihre Strategie in der Zukunft genauso verhält wie in der Vergangenheit.

Zweitens sollten wir uns darüber im Klaren sein, dass Backtests nicht 100% genau sein können. Im besten Fall bietet Backtesting eine enge Annäherung an, wie Trades in Echtzeit ausgeführt werden würden. Es gibt Dinge wie erweiterte Spreads, Requotes, Slippage, Zeitverzögerungen, Netzwerkunterbrechungen, VPS-Ausfälle und so weiter, die den echten Live-Handel beeinflussen.

 

Die wichtigste Eigenschaft unserer Strategie sollte ihre Robustheit sein. 

Wir müssen sicherstellen, dass wir unsere Strategie nicht einfach nur an die vorhandenen Daten angepasst haben, damit sie in unseren Backtests gut funktioniert; dass sie trotz Änderungen der Daten, der Parameter, der fehlenden Abschlüsse usw. profitabel bleibt.

StrategyQuant bietet eine Vielzahl von Werkzeugen (Cross Checks), um Strategien auf ihre Robustheit zu testen. Sie können t auf verschiedenen Märkten, mit Variationen von Parametern oder mit Variationen von zufälligen Änderungen in den historischen Daten mit Monte-Carlo-Tests testen.

 

Zuverlässiges Backtesting zwischen SQ und MT4/5

Zuverlässiges Backtesting in diesem Sinne bedeutet, dass die Strategie die gleichen oder sehr ähnliche Backtest-Ergebnisse in StrategyQuant und MetaTrader hat.

Wenn Ihre Strategie in SQ und MT völlig unterschiedliche Ergebnisse liefert, dann stimmt etwas mit Ihrem Setup nicht und Sie müssen das Problem lösen, bevor Sie weitermachen.

Die Backtesting-Engine in SQ wurde so entwickelt, dass sie mit der MetaTrader-Handels-Engine übereinstimmt. Wenn Sie also Unterschiede feststellen, liegt das höchstwahrscheinlich an unterschiedlichen Daten oder Konfigurationen zwischen den beiden Programmen.

Im Folgenden werden einige Punkte aufgeführt, auf die Sie achten sollten.

 

1. Stellen Sie sicher, dass Sie alle benutzerdefinierten Indikatoren importiert haben

Dies ist einer der Schritte, die nach der Installation durchgeführt werden: https://strategyquant.com/doc/strategyquant/installation/#steps-after-installation
SQ verwendet einige benutzerdefinierte Indikatoren, die Sie in den MetaTrader importieren müssen, damit er funktioniert.

 

2. Importieren Sie Daten aus Ihrem MetaTrader oder stellen Sie sicher, dass die heruntergeladenen Dukascopy-Daten mit denen Ihres Brokers übereinstimmen

SQ bietet einen bequemen Download von qualitativ hochwertigen Tick- und M1-Daten, die von Dukascopy kostenlos zur Verfügung gestellt werden.
Die Daten selbst sind zuverlässig, aber stellen Sie sicher, dass Sie die gleiche Zeitzone wie Ihr Broker verwenden, insbesondere wenn Sie Funktionen wie Exit am Tagesende/Freitag nutzen möchten.

Am einfachsten können Sie überprüfen, ob Ihr Setup korrekt ist, indem Sie dieselben Daten in SQ und MT verwenden, d. h. Sie exportieren Ihre Daten aus MT und importieren sie in SQ. Prüfen Sie dann, ob der Strategie-Backtest mit diesen Daten übereinstimmt - das sollte er. Ist dies nicht der Fall, überprüfen Sie Punkt 3.

Rechnen Sie auch damit, dass Ihr Broker etwas andere Daten hat als Dukascopy, und stellen Sie sicher, dass Ihre Strategie robust ist und das aushält. Testen Sie Ihre Strategie in SQ und dann auf andere Daten in Ihrem MetaTrader ist eine weitere Form der Robustheit zu testen.
Vergewissern Sie sich nur, dass die großen Unterschiede in den Daten nicht auf Ihre Konfiguration zurückzuführen sind, sondern auf einen echten Strategiefehler.

 

3. Stellen Sie sicher, dass Sie den richtigen Motor und den richtigen Balkentyp in den importierten Daten verwenden

Die Wahl der Engine liegt auf der Hand - vergewissern Sie sich, dass Sie wirklich MetaTrader 4 oder 5 in SQ verwenden, da es eine Auswahl an Engines bietet.

Wenn Sie Daten aus einer Datei importieren, stellen Sie sicher, dass Sie die Option "Zeitstempel ist Beginn der TaktzeitDatentyp "Balken". Dies ist der vom MetaTrader verwendete Datentyp, der die Berechnung der höheren Zeitrahmen beeinflusst.

 

4. Konfigurieren Sie Ihren MetaTrader StrategyTester richtig

Stellen Sie sicher, dass Sie die gleiche Streuungseinstellung, gleicher Datumsbereich, etc.. Es geht darum, die gleiche Konfiguration zwischen SQ und MT zu haben.

Sie sollten auch in Erwägung ziehen, den MetaTrader vom Netzwerk zu trennen, da er sonst (standardmäßig) den aktuellen Live-Spread im Backtest verwendet, was bedeutet, dass Ihr Backtest jedes Mal ein wenig anders ausfällt, wenn Sie ihn ausführen.

So trennen Sie die Verbindung zu MetaTrader4
Zunächst einmal muss der MetaTrader online und mindestens eine Weile verbunden sein, damit er die aktuellen Spreads lädt. Dann können Sie die Verbindung trennen, indem Sie proxy auf einen Dummy-Wert setzen.

Gehen Sie zu Extras → Optionen, Registerkarte Server und aktivieren Sie das Kästchen Proxyserver aktivieren.

Klicken Sie dann auf die Schaltfläche Proxy ..., um den Proxy einzurichten.

Geben Sie als Server localhost und als Login und Passwort einen Dummy-Text ein. Schließen Sie das Dialogfeld, indem Sie auf OK klicken, und schließen Sie das Dialogfeld Optionen, indem Sie erneut auf die Schaltfläche OK klicken, um Ihre Einstellungen zu speichern.

Jetzt müssen Sie MetaTrader neu starten und beim nächsten Start wird die Verbindung zum Broker getrennt.

In der unteren rechten Ecke von MetaTrader sollte der Status Keine Verbindung angezeigt werden.

Von nun an werden alle Ihre Tests mit denselben Spreads durchgeführt, und die Ergebnisse sind jedes Mal dieselben, wenn Sie den Test durchführen.

 

5. Starten Sie SQ neu und löschen Sie temporäre Dateien, wenn Probleme auftreten

SQ speichert die Backtest-Daten sowohl im Speicher als auch in den Dateien auf der Festplatte, und es kann vorkommen, dass die Daten im Cache eine ältere (falsche) Version sind und nicht aktualisiert wurden, wenn Sie neue Daten importieren oder etwas ändern.

Wenn Sie Unterschiede im Backtest feststellen, versuchen Sie zunächst, SQ zu beenden, alle Dateien im Ordner /internal/testfiles zu löschen und SQ erneut zu starten.

War dieser Artikel hilfreich? Der Artikel war nützlich Der Artikel war nicht nützlich

Abonnieren
Benachrichtigen Sie mich bei
1 Kommentar
Älteste
Neuestes Meistgewählt
Inline-Rückmeldungen
Alle Kommentare anzeigen
Blade Runner
Blade Runner
21. 11. 2019 15:42 Uhr

Wirklich wichtig können auch die Zeitstempel- und DST-Einstellungen der heruntergeladenen Daten in Bezug auf den Broker sein, den Sie für den Demo- oder Realhandel verwenden möchten, insbesondere in höheren Zeitrahmen wie H4.