Um mein Handelssystem zu testen benötige ich Kursdaten, welche auch besondere Entwicklungen abdecken. Wer hat sich mit diesem Thema schon beschäftigt bzw. interessiert sich dafür?
Ich habe mein "Zockersystem" fast 10 Jahre getestet bevor ich es live gefahren bin. Davon waren 4 Jahre out-of-sample, also zum damaligen Zeitpunkt Zukunftsdaten.
Im alten Forum gab es einen Anbieter der die Software dafür lieferte und es gab Benutzer die die Daten teilten, wahrscheinlich war das nicht ganz legal.
Und ehrlich gesagt hat mir das ganze nur geholfen schlechte Ansätze rauszuwerfen. "Nur" in Anführungszeichen, weil das sehr wichtig ist.
Ich glaube Du kannst Tagesdaten von vielen Anbietern gratis bekommen, zumindest für die amerikanischen Werte. Allerdings würde ich mich nicht auf die "nicht-überlebenden" der Daten verlassen. Yahoo finance liefert glaube ich die Daten immer noch gratis und man kann diese sehr einfach mit scripts beziehen.
Für alle weiteren Daten, also kleinere Zeiteinheiten als einen Tag und vor allem inklusive der Toten wirst Du was zahlen müssen.
(07.04.2024, 18:18)EMEUV schrieb: [ -> ]Um mein Handelssystem zu testen benötige ich Kursdaten, welche auch besondere Entwicklungen abdecken. Wer hat sich mit diesem Thema schon beschäftigt bzw. interessiert sich dafür?
Was genau brauchst du denn da für welche Aktien … historische Daten OHLC im csv Format?
Meine Überlegungen gehen dahin, nicht mit historischen Daten zu arbeiten, sondern mit zufälligen Testwerte.
Mit aktuellem Kurs handele ich ja schon 7 Jahre, da bin ich aber geneigt meine Regeln der besonderen Situation anzupassen.
Bei einer Simulation möchte ich das mögliche Ergebnis meiner Regeln sehen.
Unter
Simulation können meine Programmierversuche betrachtet werden.
Nimm doch Kursentwicklungen von anderen Unternehmen die zufällig ausgewählt werden.
Das wäre praxisnäher als irgendwas völlig frei erfundenes.
Dein System sollte bei zufälligen Testdaten nicht profitabel sein!!
Solltest Du die Annahme teilen, dass Aktienkurse nicht zufällig entstehen und du baust ein System für diese Annahme, dann muss dein System bei zufälligen Werten nicht profitabel sein.
Mit zufälligen Daten machst Du also einen Negativ Test.
Um aus der "Backtest Falle" zu kommen, gibt es in meinen Augen nur 2 Möglichkeiten:
1. Du entwickelst ein System zum Beispiel auf einer Datenbasis von 1998 - 2018 und lässt dann dein System einen "Forward-Test" laufen, also von 2019-heute. Hier sollten sich die Ergebnisse nicht signifikant vom Backtest unterscheiden.
2. Du änderst den Markt oder die Aktie für deinen Forward Test. Sprich Backtest von Aktie A Zeitraum 1998-heute und Forward Test von Aktie B 1998-heute. Wobei ich das nicht mit einer Aktie machen würde, sondern mit einem Pool von Aktien. Ich handle nur Werte aus dem S&P 500. In meinen Backtests spiele ich ab und zu folgendes durch:
Ich entwickle ein System auf 100 Aktien vom S&P 500, wenn das System und die Parameter fest stehen, lasse ich den Backtest für die anderen 400 Aktien laufen.
(08.04.2024, 08:57)QuattroTrader schrieb: [ -> ]Dein System sollte bei zufälligen Testdaten nicht profitabel sein!!
Solltest Du die Annahme teilen, dass Aktienkurse nicht zufällig entstehen und du baust ein System für diese Annahme, dann muss dein System bei zufälligen Werten nicht profitabel sein.
Mit zufälligen Daten machst Du also einen Negativ Test.
Um aus der "Backtest Falle" zu kommen, gibt es in meinen Augen nur 2 Möglichkeiten:
1. Du entwickelst ein System zum Beispiel auf einer Datenbasis von 1998 - 2018 und lässt dann dein System einen "Forward-Test" laufen, also von 2019-heute. Hier sollten sich die Ergebnisse nicht signifikant vom Backtest unterscheiden.
2. Du änderst den Markt oder die Aktie für deinen Forward Test. Sprich Backtest von Aktie A Zeitraum 1998-heute und Forward Test von Aktie B 1998-heute. Wobei ich das nicht mit einer Aktie machen würde, sondern mit einem Pool von Aktien. Ich handle nur Werte aus dem S&P 500. In meinen Backtests spiele ich ab und zu folgendes durch:
Ich entwickle ein System auf 100 Aktien vom S&P 500, wenn das System und die Parameter fest stehen, lasse ich den Backtest für die anderen 400 Aktien laufen.
Wie Quattro Trader sagt: bei rein zufälligen Daten (random walk), sollte dein System nicht profitabel sein. Was an sich auch schon ein guter Test für dein Back-Test Logik ist => wenn du vorne random noise reinsteckst, dann solte hinten nix rauskommen...oder du hast einen bug.
Ansonsten ist Resampling (Stücke aus der Krusentwicklung rauszuschneiden und dann durchzumischen) und Monte Carlo Simulationen sind wichtiger Bestandteil um die Robustheit des Systems zu testen und eine IDee für das Risk und Moneymangement zu bekommen.
Ich kann das Buch von Timothy Masters dazu empfehlen (oder alle seine Bücher)
https://www.amazon.de/Permutation-Random...C78&sr=8-1
was ist das bitteschön für ein Handelssystem, welches auf fiktiven Daten beruht?! Welche Parameter willst du denn für deine Handelsentscheidungen heranziehen? Neben Preis spielen doch auch immer Volumen, VWAP, ATR etc. eine wichtige Rolle. Willst du das auch alles durch fiktive Daten berechnen?! Börse ist doch kein Glücksspiel wie Lotto spielen!! Aber gut viele handeln wohl eher nach dem Motto: Affe schlägt Index.
Mein Rat also an Dich. Kauf dir ein paar Dartpfeile und schon hast du deine Zahlenreihen!!
(08.04.2024, 09:39)Wolkenmann schrieb: [ -> ]was ist das bitteschön für ein Handelssystem, welches auf fiktiven Daten beruht?! Welche Parameter willst du denn für deine Handelsentscheidungen heranziehen? Neben Preis spielen doch auch immer Volumen, VWAP, ATR etc. eine wichtige Rolle. Willst du das auch alles durch fiktive Daten berechnen?! Börse ist doch kein Glücksspiel wie Lotto spielen!! Aber gut viele handeln wohl eher nach dem Motto: Affe schlägt Index.
Mein Rat also an Dich. Kauf dir ein paar Dartpfeile und schon hast du deine Zahlenreihen!!
Da spricht der Pragmatiker. Dinge die auf so vielen Inputs beruhen, sind schwer realistisch zu simulieren. Gerade Order Buch Aktivität und das daraus resultierende Preisverhalten sind wirklich schwierig. Option-Chains/Vol Surfaces sind ein ähnliches Problem. Oder Interes Rate Curves.
Die Monte Carlo und Resampling Scahcen sind nur sinnvoll (und dann sind sie aber sehr sinnvoll) wenn das Handelsystem auf einfachen Zeitreihen beruht (sagen wir mal OHLC Daten für alle SP500 Aktien und deren Volumen).
Wenn das Handelssystem auf Orderbuch Daten beruht (was es intraday in der Regelt tut oder tun sollte), dann sind randomisierten Inputs nur bedingt hilfreich.
...ich schreibe meine Test in der Sprache python für Aktien buy/sell und Aktien Optionen
mit Abo Daten von IB.
Die Anpassung und Änderungen von Strategie, Konzept für buy/sell Signale
und Tests machen selbst erstellte scripts einfacher; lässt sich bestimmt auch in PHP umsetzen.
Reale Tagesdaten liefert Yahoo über lange Zeiträume EOD,
nur die 5min od. 1 hours Daten gehen bei Yahoo nur 60 Tage zurück.
Austausch von scripts ohne kommerzielles Interesse möglich. PN oder Tel. reicht aus :-).