Ein Plätzchen für den Backtest - EOD - RSI-SMA LONG ONLY

      Re: Backtest von Futures

      Bei reinen Finanz-Kontrakten sollte der Endlos-Kontrakt für alle Überlegungen reichen.

      Bei Commodities sollte man statt einer wenig kritischen Zusammenrechnung verschiedener Kontrakte sehr genau auf das Underlying achten, denn dort können gerade bei Agrar-Produkten unterschiedliche Kontrakte deutlich unterscheidbare Underlyings in der Realwelt haben, auch wenn sie die gleiche formale Spezifikation des physisch zu liefernden Gutes erfüllen. Aber auch andere Commodity-Underlyings haben produktions- und verbrauchsbedingte saisonale Schwankungen, endliche Lagerzeiten und beziehen sich darum nicht auf gleiche Wirtschaftsgüter.

      Bei Begriff der "Roll-Kosten" sollte eher zurückhaltend aufgefasst werden, da sehr genau zwischen echten Kosten und rein finanz-mathematischen Artefakten unterschieden werden muss.

      Bei reinen Finanz-Kontrakten sollte es kaum echte "Roll-Kosten" geben, weil sie sonst durch Arbitrage mit Kredit und dem Handel des Underlyings einen Free Lunch ermöglichen würden. Die preislichen Unterschiede geben im wesentlichen die unterschiedliche Laufzeit des impliziten Kredites an und zu einem geringem Maß bestimmte eventuell vom Markt eingepreiste Änderungs-Vorwegnahmen in der längeren Laufzeit, weshalb die Kontrakte wegen der längeren Laufzeit und den darin möglichen Preisbewegungen sich also auch nicht ganz genau auf das identische Wirtschaftsgut beziehen. Diese Unterschiede sollten auf geordnet ablaufenden Märkten aber so gering sein, dass ihre Ausnutzung durch Arbitrage nur schwierig ist und sie können daher in der Regel vernachlässigt werden.

      Bei Commodities handelt es sich bei Kontrakten unterschiedlicher Laufzeiten meist um ausreichend deutlich unterschiedliche Wirtschaftsgüter, dass es - salopp gesprochen - eine Ähnlichkeit mit dem Vergleich von Äpfeln und Birnen hat. Daher erscheint eine rein "technische Analyse" einer vermeintlich einheitlich zu betrachtenden Kurs-Kurve nicht unbedingt ausreichend detailliert.

      Da im Wesentlichen jedes ausreichend liquide Instrument zum rein technisch begründeten Spekulieren geeignet ist, wird es bei der Wahl von Commodities in sehr vielen Fällen eher einen Bias des Traders geben, der sich für ihn unmöglich zu beschaffende Informations-Vorsprünge einbildet, und der darum mit einfacher zu handelnden hoch-liquiden Finanz-Futures besser bedient wäre, wo er einer solchen Selbst-Täuschung nicht unterliegt.

      Backtest von Futures (Terminkontrakten)

      Hallo zusammen,

      vieles ist schon zum Backtest gesagt worden, ein weiteres Detail mal ganz allgemein sind die Roll-Over bei Futures, praxisnah ein Portfolio von Handelssystemen auf Commodity Futures, u.a. mit Roll-Over, etc. zu simulieren.

      Der wichtigste Faktor ist hierbei die Verlässlichkeit der Kursdaten und der Simulationssoftware, wie soll der Rollover simuliert werden? Anhand eines nicht adjustierten Kontraktes oder soll das System die Einzelkontrakte handeln und zum Rollover in den nächsten Kontrakt wechseln?

      Adjustage und Roll-Kosten korrekt rückwärts abzurechnen reicht nicht, je nach System sollten (müssen) Signalbasis und Tradebasis getrennt betrachtet bzw. pro Trade synchronisiert werden. Signalbasis kann der Endloskontrakt sein, die Tradebasis wohl dann der jeweilige real gehandelte einzelne Verfallmonat.


      @goso
      mit leicht veränderten Parametern (Nachbarzahlen) ... selbst geringfügig veränderte Parameter die Performance einbrechen lassen riecht es nach Curve Fitting
      volle Zustimmung, sehr sehr wichtig ...

      Viel Erfolg.
      Beste Grüße

      Roti :)
      Man sollte ein Handelssystem bzw. einen Parametersatz auch nicht hinsichtlich der maximalen Performance optimieren, sondern nach anderen geeigneteren statistischen Kennzahlen (z. B. max. DD, Profit/DD, R2) beurteilen.

      Es ist ja ein erheblicher Unterschied ob ein System einen Profit von 80% bei 40% max. DD oder 40% bei 15% max. DD generiert. Das Verhältnis aus Profit und max. DD ist dabei also schonmal ein guter Anfang. Ich habe dann noch die Linearität (lineare Regression) der Gewinnkurve mit einfließen lassen. Man kann die einzelnen Faktoren dann auch noch gewichten, je nachdem welches Verhalten man bevorzugt.
      Hier deine Original-Parameter

      RSI(10) < 29CLOSE > 0,975 SMA 200 (Kerze darf etwas unterhalb der SMA 200 sein)

      SL: ATR(10)*1EXITRSI(10) > 80 oder ATR(10) x 3 oder nach 10 Tagen

      Lass den Backtest mit RSI 8-12 (in 1er Schritten) und sonst unveränderten Parametern laufen, dann mit 25-35 Close (in 1er Schritten), dann mit 0,9-1,1 (in 0,05er Schritten) und dann mit SMA 180-220 (in 5er Schritten).

      Achtung, nicht gleichzeitig, sondern jede Einstellung einzeln und dann vergleiche die Ergebnisse, bei einigen Backtestprogrammen gibt es eine sogeannten Heatmap, mit der man das grafisch darstellen kann, sonst einfach die Endergebnisse als Säulendiagramm mit den Parametern als x-Achse. Die Ergebnisse sollten sich nicht gravierend unterscheiden, sollte das doch der Fall sein ist es entweder überoptimiert oder falls die Parameter frei Schnauze sind ein Lucky Punch.

      ad 10.000 Tage Backtest: Nett, schadet vermutlich nicht, aussagekräftiger sind aber im Regelfall die letzten paar Jahre (auch bei EOD Systemen).

      Welche Parameter-Variationen priorisieren?

      Ohne goso's Antwort zu der Frage nach den zu variierenden Parametern und den Test-Zeiträumen vorweg nehmen zu wollen, die mich selber auch interessiert, gebe ich meine Ansicht dazu an. Da es um einen praktisch machbaren Kompromiss im Gegensatz zu einer theoretisch abschließend fast alles klären könnenden vollständigen Durchmusterung aller Varianten geht, sind aber auch ganz andere Vorgehensweisen als nützliche Resultate liefernd denkbar.

      Die Wiederholung für den sehr langen Zeitraum von 10.000 Tagen kann zwar bei einer so einfachen Strategie bezüglich ihrer grundsätzlichen Stabilität zusätzliche Hinweise liefern, aber ob die dabei zusammengerechneten Resultate für die jetzige Börsenphase mit historisch bisher einmaligen Sonderbedingungen die bestmöglichen Resultate liefern, könnte noch einmal genauer überdacht werden. Die Einschränkung des längsten Test-Zeitraumes auf die Zeit nach der Jahrtausend-Wende oder noch etwas weniger wird vermutlich ausreichend sein. Bei den kürzeren Zeiträumen ist noch einmal zu hinterfragen, wofür genau die Aufteilung in Trainings- und Test-Zeitraum repräsentativ ist.

      Zusätzlich stelle ich hier die Frage, ob die bisherigen Parameter überhaupt durch die Anwendung einer Trainings- bzw. Optimierungs-Methode gewonnen wurden oder einfach nur zur Durchführbarkeit eines Backtests auf sinnvoll erscheinende Vorgabewerte gesetzt wurden.

      Die Parameter-Variationen würde ich isoliert für jeden Parameter (oder allenfalls kombiniert mit den Faktoren beim Ein- und Ausstieg) durchführen, um erst einmal hinsichtlich der Wirkungsweise der einzelnen Faktoren einen Eindruck zu erhalten. Die Berechnungs-Zeiträume der parametrisierbaren Indikatoren würde ich in der ersten Runde der Variationen einfach konstant lassen.

      Besonders wichtig ist die Variation des IR und der daraus folgenden Einsatzhöhe, da dieses auch völlig fernab des üblicherweise angegebenen 1 % IR pro Trade das Optimum haben kann.
      Vorab erstmal vielen Dank für die tollen Informationen, Hinweise, Empfehlungen und Anregungen.
      Ich bin sehr beeindruckt und gebe zu, dass ich die schwere Kost wohl noch mehrfach lesen werde.

      Auf einige Punkte möchte ich bereits jetzt schon eingehen um eine für mich wichtige Entscheidung zum Thema Backtesting zu treffen.

      woren schrieb:

      Will man die 12 Parameter jeweils mit nur 3 (also extrem wenigen) Einstellungen alle miteinander kombinieren, hat man schon über eine halbe Million Varianten pro Aufteilung der Trainings- und Test-Zeiträume.


      Ich stelle fest, dass der Aufwand für einen Backtest immens hoch sein kann. Eine halbe Millionen Varianten zu testen wäre für mich zeitlich sicher nicht möglich. Ich wäre auch nicht bereit dazu.

      woren schrieb:

      Das sinnvolle Nutzen der eigenen Kenntnisse über sein System wird also oftmals besser zur Findung geeigneter Regeln und Parameter beitragen als pure Rechen-Power.


      Danke dir Woren, genau das wäre mein Weg! Wohlwissend das man nicht das perfekte Ergebnis erziehlt. Das wäre aber auch nicht mein Anspruch.

      woren schrieb:

      Die ermittelten Kennzahlen sind nicht bereits per se als zu optimistisch abzutun, wenngleich sie durch einen Backtest alleine noch keine vergleichbare Performance in der Zukunft versprechen. Aber sie könnten eine nicht gleich zu verwerfende Empfehlung für die Strategie geben, bei der zumindest ein positiver Erwartungswert vorhanden zu sein scheint.


      Ich war auch überrascht, dass das relativ simple System recht gut zu funktionieren scheint. Ganz ehrlich, selbst bei 30% Gewinn im Jahr wäre ich mehr als zufrieden. 200 Trades im Jahr sind m.E. überschaubar.

      goso schrieb:

      Schau dir das Ergebnis mit leicht veränderten Parametern (Nachbarzahlen) an, wenn da ein ähnliches Ergebnis herauskommt ist es vermutlich brauchbar, wenn selbst geringfügig veränderte Parameter die Performance einbrechen lassen riecht es nach Curve Fitting.


      Goso, ich werde das germ mal testen und das Ergebnis hier zur Verfügung stellen.
      Parameter leicht verändern, nur welchen ?
      Sollte der Test wieder über alle Zeiträume 1Jahr/3Jahre/10.000 Tage laufen?


      SCREENER
      Wer interesse an einem Screener für die aktuelle Strategie hat, nachfolgend der Code für Prorealtime:

      REM Auswahl der Indikatoren
      myRSI = RSI[10](Close)
      mySMA = Average[200](close)* 0.975

      REM Filter-Bedingung : RSI und SMA
      Filter = myRSI < 29 and Dclose(0) > mySMA

      REM Sortierungskriterium: myRSI
      SCREENER [ Filter ] (myRSI AS "RSI and SMA")
      I did it my way (Sid Vicious ... not Sinatra)
      @Ultracash
      Wie woren das auch schon sehr ausführlich dargelegt hat, möchte ich auch darauf hinweisen mit wieviel Mühe und Arbeit im Detail Backtesting und überhaupt Strategieentwicklung einhergehen. Ich habe selbst vor einiger Zeit eine eigene Backtesting-Software in plain C unter Linux (gcc) entwickelt, die auch in der Lage war Parameterräume zu testen.

      Es ist ein schweres Unterfangen, welches jedoch eingegangen werden muss, wenn man auch nur einigermaßen vernünftige Backtests berechnen will. Man muss sich bewusst sein, dass auch diese dann nur eine Wahrscheinlichkeit ausdrücken was eine Strategie wert ist und kein Garant für den Erfolg sind.

      Es gibt extrem viele Hürden auf diesem Weg. Es geht schon bei der verwendeten Datenbasis los, die ein Backtesting ad absurdum führen kann, wenn die Qualität nicht ausreicht. Es kommen die unterschiedlichen Zeitzonen von Daten dazu, die es auszugleichen gilt, das Einberechnen von Spreads und/oder Kommissionen (die oftmals vergessen werden und dann jede Strategie "gut" aussehen lassen) um nur einige zu nennen.

      Nach meinen Erfahrungen kommt am Ende nur ein schwindend geringer Anteil an Strategien heraus, die es wert wären gehandelt zu werden. Hat man den ganzen Prozess nicht weitestgehend automatisiert und sich auch eine gewisse Toolchain erarbeitet, bewegt sich der Aufwand jenseits von Gut und Böse im Vergleich zum Nutzen.

      Um dann überhaupt langfristig erfolgreich zu sein, bedarf es eines ganzen Pools an Strategien, die auch noch möglichst wenig Korrelationen aufweisen.

      Man findet im Netz immer wieder Leute, die ihr von Hand mit ein bisschen Excel erstelltes Werk als "Backtests" titulieren und verkaufen. Da wird ein wenig nach links im Chart gescrollt und die vermeintlich erfolgten Trades sauber notiert, einfach nur lachhaft.

      Es ist eine andauernde Suche nach dem "Edge" und eine noch viel längere Suche diesen ausnutzbar zu machen. Ich will niemandem die Lust nehmen das zu tun, sondern möchte nur ein stückweit aufzeigen was damit alles verbunden ist.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Chaosfreak“ ()

      Parameter-Anzahl und kombinatorische Explosion

      Weshalb neben Backtests auch immer die theoretische Schlüssigkeit geprüft werden muss, ergibt sich aus der Vielfalt der Kombinations-Möglichkeiten schon bei nur wenigen Parametern.

      Selbst das einfache System von Ultracash hat in seinen nur 5 ziemlich übersichtlichen Regeln bereits 12 sofort erkennbare Parameter, wobei durch minimale Modifikation hin zu vergleichbaren Indikatoren oder Hinzunahme von Regeln ein unendlicher Kosmos weiterer Variationen eröffnet wird.

      Will man die 12 Parameter jeweils mit nur 3 (also extrem wenigen) Einstellungen alle miteinander kombinieren, hat man schon über eine halbe Million Varianten pro Aufteilung der Trainings- und Test-Zeiträume.

      Sicher kann man Vieles heute auf ad-hoc zu bestellender Hardware, wie z. B. bei Amazon's EC2, teils mit schon ganz extremer Hardware (die man auch noch zu Clustern zusammenschalten kann) zu vernünftigen Preisen bekommen. Der exponentiell mit der Parameter-Anzahl wachsenden kombinatorischen Explosion entkommt man aber mit keiner Hardware, die es jemals geben kann. Selbst die Verheißungen der Quanten-Computer werden daran nur wenig ändern, da es neben bis heute nicht gelösten grundsätzlichen theoretischen Problemen auch viele Algorithmen-Klassen gibt, bei denen sie auch nach bereits gesichertem Erkenntnisstand keinen Zusatznutzen bringen.

      Während der Backtest eines fertigen Systems mit einem gewählten Satz an Parametern eine Pflichtaufgabe seriöser Trader ist, wird zu einer schlüssigen Wahl der Regeln und deren Parameter immer auch die theoretische Durchdringung der Annahmen erforderlich sein. Plump-schematisch Optimierung bewirkt dort sehr wenig. Eine sehr wichtige Entscheidung dabei ist, die Auswahl der pro Test zu modifizierenden Parameter und die der festgehaltenen, um die kombinatorische Explosion abzumildern.

      Darüber hinaus gibt es bei der Zuordnung der Wirkungsanteile der einzelnen Elemente der Regeln ein weiteres nicht durch einfaches Durchrechnen in einem Optimierungslauf zu lösendes Problem. Die einzelnen Parameter können auf komplexe Art verwoben sein und sich in unterschiedlichen Wertebereichen stark unterschiedlich beeinflussen, so dass selbst statistische Korrelations-Untersuchungen nicht ausreichen.

      Selbst wenn die Berechnungen noch geklappt haben, ist die Darstellung der dabei gewonnenen Zusammenhänge nicht einfach. Die gängigen multiplen in Matritzen angeordneten Korrelations-Plots (auch Streu-Diagramme bzw. scatter plots) machen das nicht vollauf befriedigend möglich, da sie bei nicht-linearen komplexeren Zusammenhängen nicht gerade sofort ins Auge springende Erkenntnisse liefern müssen.

      Das sinnvolle Nutzen der eigenen Kenntnisse über sein System wird also oftmals besser zur Findung geeigneter Regeln und Parameter beitragen als pure Rechen-Power.

      Es ist sehr schade, dass der sehr scharfsinnige Autor Topologicus hier nichts mehr schreibt (weil er unsachlich vergrault wurde), denn es erfordert schon die nicht einmal bei allen Mathematikern anzutreffende ausgeprägt präzise und zugleich weit über den Dingen schwebende Denkart, um beim für reales praktisches Handeln nützlichen, wirklich kausal begründbaren Aufspüren komplexer Zusammenhänge großen Überblick und Detailgenauigkeit in der richtigen Kombination im richtigen Zeitpunkt einer Untersuchung anzuwenden und das, was man sich gedacht hat, auch noch nachvollziehbar auszudrücken, was ihm beispielhaft gut gelang.

      Höherwertige Wahlverfahren für Trainings- und Test-Zeiträume

      Danke für die ganz wichtige Anmerkung von goso. Curve Fitting kann sogar in Richtung teilweisen indirekten Auswendiglernens der Vergangenheit gehen, wenn nur genügend Parameter als Stellschrauben vorhanden sind und genügend Rechen-Power, diese auch zu finden. Insbesondere, die für einen Außenstehenden ohnehin schwer zu durchschauenden neuronalen Netze mit vielen verborgenen Neuronen oder gar mehreren Schichten davon tendieren stark in diese Richtung, weshalb zu große Neuronen-Anzahlen oft eher schädlich als nützlich sind.

      Bei ordentlich gewählten Zeiträumen für das Training und den Test kommt Overfitting glücklicherweise meistens heraus.

      Wer besonders stabile Aussagen haben möchte, kann statt der einfachen Wahl von einem anfänglichen zusammenhängenden Zeitraum zum Training und der folgenden Zeit als Test-Zeitraum zur Ermittlung realitätsnaher Resultate auch die Test- und Trainings-Zeiträume auf vielerlei Weise mischen (Shuffling). Dazu werden
      • mehrere unabhängige Trainings und Tests ausgeführt, indem
      • der ursprüngliche Kursdaten-Bestand in Teile gleicher oder zufälliger Länge zerschnitten wird,
      • aus diesen eine zufällige Auswahl erfolgt,
      • die ausgewählten und die nicht ausgewählten Teile jeweils zu einem neuen Trainings- und Test-Datensatz zusammengefügt werden
      • mit Kurs-Adjustierung an den Übergangs-Stellen.
      • Auch eine zufällige zeitliche Umordnung der Segmente ist möglich.
      Eine Strategie, die selbst bei dieser Härte-Behandlung noch brauchbare und vergleichbare Resultate zwischen den verschiedenen Varianten liefert, darf man als sehr sicher bewerten. Leider gibt es nur wenige Strategien, die so immun gegenüber dem gesamten Umfeld sind, weil viele bestimmte aktuelle Bedingungen erfordern (grundsätzliche Kursrichtung, Trendizität, Volatilität, bestimmte wirtschafts-politische, volks- oder betriebswirtschaftliche Situation usw.).
      Tipp für alle Backtests: Schau dir das Ergebnis mit leicht veränderten Parametern (Nachbarzahlen) an, wenn da ein ähnliches Ergebnis herauskommt ist es vermutlich brauchbar, wenn selbst geringfügig veränderte Parameter die Performance einbrechen lassen riecht es nach Curve Fitting.

      Methodisch richtigen Untersuchungen sollte auch vertraut werden

      @ Ultracash

      Vielen Dank für die Zeit, die Du Dir genommen hast, und die Ergebnisse, die Du der Community bereitgestellt hast. Die sind schon präsentabel und substantiell in der gezeigten Art und Weise, insbesondere beim klaren Fokus auf nachvollziehbaren Handels-Regeln und nicht vorsätzlich manipulierten Ergebnissen, wie man sie leider viel zu oft in Foren findet.

      Die ermittelten Kennzahlen sind nicht bereits per se als zu optimistisch abzutun, wenngleich sie durch einen Backtest alleine noch keine vergleichbare Performance in der Zukunft versprechen. Aber sie könnten eine nicht gleich zu verwerfende Empfehlung für die Strategie geben, bei der zumindest ein positiver Erwartungswert vorhanden zu sein scheint.

      Backtests sind neben der Prüfung einer Strategie auf theoretische Schlüssigkeit die einzigen Möglichkeiten eine Strategie zu untersuchen und daher - egal wie viele Mängel sie bei der Bedeutung ihrer Prognosekraft haben mögen - für ein seriös vorbereitetes Trading unverzichtbar.

      Man sollte sich aber bewusst sein, dass viele Backtests methodische Mängel haben. Einer dar ganz groben besteht in der Überdeckung von Zeiträumen der Parameter-Optimierung und der Performance-Ermittlung. Solche Backtest-Fehler sind vom Wesen stark vergleichbar mit dem völligen Im-Nachhinein-Zusammenflunkern niemals gemachter Trades einiger der übelsten Foren-Betrüger, die nur darum nicht das absolute Flunker-Level erreichen, weil die Strategie durch die vorgegebenen Handels-Regeln die Willkür einschränkt. Wenn nur genügend Spielraum in der Lernphase gelassen wird, dann kann ein System soweit "optimiert" werden, dass die Ergebnisse der Optimierung sehr nahe an die nur im Nachhinein findbaren perfekten Trade-Zeitpunkte heran kommen. Wenn dann noch eine Überdeckung der Zeiträume stattfindet, ist das Ergebnis optisch scheinbar imposant, aber aus methodischer Sicht völlig wertlos.

      Kleinere Fehler bei zu optimistischen Annahmen der Ausführungs-Qualität oder einfach nur Programmierfehler sind auch nie ganz auszuschließen. Darum muss jeder Backtest, egal mit wie viel Mühe und Liebe er angefertigt wurde, allerkritischst geprüft werden.

      Wenn dann die Ergebnisse immer noch erfolgversprechend aussehen, dann sollte man seinen eigenen Untersuchungen auch trauen. Wozu hätte man sie denn sonst gemacht und wem sollte man denn trauen, wenn nicht sich selbst?

      Irgendwann sollte man sich auch von der Hyper-Vorsicht lösen, immer nur mit Mikro-Konten zu traden. Bei anderen Angelegenheiten im persönlichen Bereich, wie z. B. zu Immobilien oder zur Karrriere-Laufbahn werden auch Entscheidungen im mittleren 6-stelligen bis in den mittleren 7-stelligen Bereich (und bei gar nicht mal so wenigen Leuten noch weit darüber hinaus) gefällt.

      Ein Plätzchen für den Backtest - EOD - RSI-SMA LONG ONLY

      Hallo Gemeinde,

      ich habe mir mal etwas Zeit genommen und einen Backtest an 124 Aktien mit der kostenlosen Software Prorealtime durchgeführt.
      Es wurden 3 Zeiträume betrachtet: 1 Jahr / 3 Jahre und 10.000 Tage
      Die Handelszeiten wurden auf 09.00 bis 17.30 gestellt.

      Folgende Voraussetzungen für das LONG Signal

      RSI(10) < 29
      CLOSE > 0,975 SMA 200 (Kerze darf etwas unterhalb der SMA 200 sein)

      SL: ATR(10)*1

      EXIT
      RSI(10) > 80 oder ATR(10) x 3 oder nach 10 Tagen

      Kapital 1500€ / Risiko 15€
      Das Ergebnis möchte ich euch mal zur Verfügung stellen (siehe Dateianhang, gepackte Open Office Tabelle)

      1 Jahr: (Zeitraum 27.05.2016 bis 27.05.2017)
      204 Trades - Trefferquote 47% - Gewinn 96%

      3 Jahre: (Zeitraum 01.04.2014 bis 09.06.2017)
      718 Trades - Trefferquote 46% - Gewinn 208%

      10.000 Tage: Hier ist jedoch zu beachten, dass es nicht von jeder Aktie 10.000 Daten gab. Einige gingen zurück bis 1991, andere nur bis 2012.
      4277 Trades - Trefferquote 42% - Gewinn 888%

      Was haltet ihr von solchen Backtests?
      Sollte man das mal real mit einem kleinen Konto testen?
      Dateien
      I did it my way (Sid Vicious ... not Sinatra)