Dokumentation

Anwendungen

Zuletzt aktualisiert am 29. 4. 2019 von Mark Fric

Zuverlässiges Backtesting in Tradestation / MultiCharts

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 TS / MC

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

Wenn Ihre Strategie in SQ und TS/MC zu völlig unterschiedlichen Ergebnissen führt, dann ist etwas mit Ihrem Setup nicht in Ordnung und Sie müssen das Problem lösen, bevor Sie weitermachen.

Die Backtesting-Engine in SQ wurde so entwickelt, dass sie mit den TS/MC Trading-Engines übereinstimmt. Wenn Sie also Unterschiede feststellen, liegt das höchstwahrscheinlich an den unterschiedlichen Daten oder der Konfiguration der beiden Programme.

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 und Sie müssen diese in Tradestation / MultiCharts importieren, damit es funktioniert.

 

2. Verwenden Sie die richtigen Einstellungen und Daten

Die Unterschiede in den Backtests sind meist auf Probleme in diesem Bereich zurückzuführen.

Es gibt zwei Möglichkeiten, wie Sie die Daten Ihres TS / MC in SQ verwenden können:

Option 1 - Importieren Sie die genauen Daten aus dem Diagramm

Dies ist der zuverlässigste Weg - exportieren Sie die Daten direkt aus Ihrem Chart in TS / MC und importieren Sie sie in SQ.

In Multicharts - verwenden Sie Datei -> Daten exportieren
Öffnen Sie in Tradestation das Datenfenster und nutzen Sie dort die Speicherfunktion.

Auf diese Weise können Sie sicher sein, dass Sie es mit denselben Daten wie Ihre tatsächlichen Sitzungen und anderen Konfigurationen testen.

Wenn Sie also beispielsweise Ihre Strategie in TS/MC auf einem 15-Minuten-Chart mit einer bestimmten Sitzung testen, exportieren Sie genau diese 15-Minuten-Chartdaten mit der angewandten Sitzung von der Handelsplattform und importieren sie in SQ.

Wichtig - Wenn Sie diese Methode verwenden, MÜSSEN Sie in den Handelsoptionen Session = No Session einstellen.. Der Grund dafür ist, dass die Daten bereits die Sitzung enthalten. Andernfalls würde die SQ versuchen, die Sitzung erneut anzuwenden und das Ergebnis wären falsche Daten!


Option 2 - Importieren Sie Minutendaten und lassen Sie SQ höhere Zeitrahmen berechnen

Es ist bequemer, die Minutendaten von TS zu importieren und SQ höhere Zeitrahmen für jeden Backtest berechnen zu lassen, den Sie durchführen.

Wichtig - Stellen Sie in diesem Fall sicher, dass Sie die korrekte Session in SQ verwenden, sie muss genau dieselbe sein wie in Tradestation / Multicharts. Die Balken in TS / MC werden auf der Grundlage dieser Sitzung berechnet, und wenn Sie es falsch haben, werden die Balken falsch berechnet!

Wenn Sie beim Backtest Unterschiede feststellen, greifen Sie auf die vorherige Option zurück und testen Sie sie mit den aus dem Diagramm exportierten Daten.

Es gibt einen neuen Artikel, der beschreibt, wie man richtig die Daten aus Tradestation exportieren.

 

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 die Tradestation- oder MultiCharts-Engine in SQ verwenden, da diese eine Auswahl an Engines bietet.

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

 

4. Verwenden Sie die richtigen zeitbasierten Exit-Handelsoptionen

Dies gilt, wenn Sie eine der zeitbasierten Handelsoptionen aktiviert haben - zum Beispiel Beenden am Ende des Tages, oder Ausfahrt am Freitag.

Wenn Sie eine dieser beiden Optionen verwenden, müssen Sie entweder die Ausstiegszeit auf 00:00 Uhr setzen - SQ schließt dann den Handel am Ende der Tagessitzung - oder, wenn Sie die genaue Zeit angeben, müssen Sie sicherstellen, dass es sich um die Zeit eines bestehenden Balkens VOR dem letzten Balken des Tages handelt.

Eine Fehlkonfiguration könnte dazu führen, dass SQ am Ende des Tages zu einer anderen Zeit schließt als die TS/MC-Plattform.

Wenn Sie Unterschiede in den Strategien feststellen, vergleichen Sie die Schlusszeiten der am Ende des Tages abgeschlossenen Geschäfte zwischen SQ und TS/MC, ob sie sich gleich verhalten.

 

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.

 

6. Die Unterstützung von Unterdiagrammen ist noch in der Entwicklung

Wir haben uns bei der Implementierung der Tradestation / MultiCharts-Testing-Engine auf Single-Chart-Strategien konzentriert.
Strategien, die mehrere Charts (Data2, Data3 etc. in EasyLanguage) verwenden, wurden in StrategyQuant noch nicht auf Übereinstimmung getestet - sie könnten funktionieren oder auch nicht.
Darauf werden wir uns in den nächsten Builds konzentrieren.

 

7. Höhere Prüfgenauigkeit ist noch in der Entwicklung

Im Moment ist es möglich, die Tradestation / MultiCharts Test-Engine mit der Testpräzision "Selected Timeframe" zu verwenden. Dies ist ausreichend für alle Arten von Aufträgen - Markt, Stop, Limit. Tradestation / MultiCharts arbeiten zuverlässig mit dieser Art von Test Präzision, und es kann im Live-Handel verwendet werden.

Wir arbeiten daran, auch bessere Präzisionsmodi hinzuzufügen, sie werden in einem der zukünftigen Builds hinzugefügt werden.

 

8. Es gibt nur wenige Indikatoren, die in TS/MC nicht ausgiebig getestet wurden

Einige wenige Indikatoren sind nicht in allen möglichen Konfigurationen getestet worden und könnten zu Unterschieden beim Handel führen. Sie sind:
- Pivots
- Fibo

 

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
Jordanien
2. 12. 2023 1:57 Uhr

Ich freue mich auf eine präzisere Multicharts-Test-Engine, auf die ich schon seit mehreren Jahren warte und die für die Verbesserung der Glaubwürdigkeit der Testergebnisse wirklich wichtig ist.