Der Strategiecheck

  • Systementwickler
    zuletzt bearbeitet: 13.03.2017 06:08
    Wer bin ich?
    Ich bin diplomierter Informatiker und erstelle seit mehr als 15 Jahren Softwaresysteme.
    Seit ebenso langer Zeit interessiere ich mich für das Börsengeschehen.
    Ich programmiere und trade eigene systematische Handelsansätze,
    unterstützt durch selbst entwickelte Indikatoren und statistische Auswertungen.
    Weitere Informationen findet ihr in meinem Profil bei Tradimo.


    Was soll dieser Blog?
    Nach einigen Diskussionen über Backtesting und systematische Handelssysteme,
    ergab sich die Idee einfache Backtests oder statistische Auswertungen für Alle zugänglich zu machen. Damit die Arbeit übersichtlich und zeitlich auch machbar bleibt, werde ich vorab einige Angaben zur Vorgehensweise veröffentlichen, mit konkreten Richtlinien für eine Programmierbarkeit.
    Auch erlaube ich mir zu komplexe oder ungenau definierte Anfragen nicht zu bearbeiten,
    da dieser Service natürlich umsonst ist. Für Euch bedeutet das Folgendes. Ihr könnt in den Kommentaren einfache Indikatoren oder Regeln definieren, die ich dann in meiner Umgebung teste und die Ergebnisse hier veröffentliche.

    Ein Ziel ist es, den Lesern einen gewissen, überschaubaren Mehrwert zu liefern, damit diese mit eigenen Recherchen und Auswertungen an der Idee und der Umsetzung weiterarbeiten können.


    Was leistet dieser Blog nicht?
    Um diesen Blog nicht zu unübersichtlich werden zu lassen, sollen nicht alle Details
    diskutiert werden. Für Einzelheiten einer Strategie oder Weiterentwicklungen bitte ich
    ein eigenes Thema aufzumachen, gerne mit Verweis auf die hier hinterlegten Ergebnisse.

    • Es sollen hier keine Performance-Parameter diskutiert werden (bspw. ist ein ProfitFaktor von 1.5 oder 2 besser).
    • Erweiterungen einer Strategie oder ergänzende Anfragen sollen im Rahmen bleiben, damit möglichst viele User davon profitieren können und einen Einblick in einfache und verständliche Strategien bekommen.
    • Es werden keine Scalping oder High-Frequency-Strategien betrachtet.
    • Tickdaten werden nicht verwendet, da hier die Zeitreihen oft nicht lange zurückreichen.
      Zudem sind für die meisten Tests Minuten- oder Tages-Daten vollkommen ausreichend.
    • Mehrere Entries oder Exits-Logiken sowie damit verbundene Teilkäufe oder Verkäufe werden nicht betrachtet.
    • Ich werde keine Sourcecodes veröffentlichen und weitergeben, nur die Auswertungen.


    Daten, Umgebung, Zeitreihen, Positionsgrößen?
    Backtests werden mit NinjaTrader, Wealth-Lab oder AmiBroker durchgeführt, MetaTrader habe ich nicht im Einsatz. Als Timeframe werden Intradaydaten ab M1 (1-Minuten-Daten), Tages- oder Wochendaten verwendet. Die Positionsgröße wird immer mit 10.000 € oder $ angesetzt, bei Futures werde ich initial mit einem Kontrakt testen.

    Märkte die getestet werden können (nur hiervon habe ich entsprechend Daten):

    - ETFs
    - Futures (inkl. DAX, S&P, Currencies)
    - US-Aktien
    - Indizes

    Wer bspw. den EUR/USD getestet haben möchte, kann den alternativen Future hierzu verwenden. Ebenso existieren auch für andere Währungspaare entsprechende Future-Instrumente.

    Daten verwende ich von IQFeed. Hier kann jeder auch selber nach einem entsprechenden Symbol in der Datenbank suchen: https://www.iqfeed.net/symbolguide/index.cfm?symbolguide=lookup&displayaction=support&section=guide&web=iqfeed


    Notwendige Informationen für Backtests?
    1.) Markt
    2.) Timeframe
    3.) Verwendeter Indikator
    4.) Entry-Bedingung 1, 2, ...
    5.) Exits / Stops / Targets

    Bitte wartet immer ab, bis ein Setup bearbeitet wurde oder ich mich dazu zumindest geäußert habe, damit es nicht zu unübersichtlich wird. Als Erwartungshaltung sollte max. 1 Setup pro Woche als Richtlinie sinnvoll sein.

    Beispiele:
    Es soll ein Bollinger-Band System auf Apple (AAPL) getestet werden (mit Tagesdaten).
    Entry: Wenn der Schlusskurs des letzten Tages ÜBER dem oberen Bollinger-Band schließt wird ein Long-Trade eröffnet.
    Stops: 20 Ticks / Target: Keines / Exit: Wenn der Schlusskurs wieder UNTER dem oberen Bollinger-Band schließt.


    Notwendige Informationen für statistische Auswertungen?
    1.) Markt
    2.) Timeframe
    3.) Verwendeter Indikator
    4.) Zu prüfende Logik

    Beispiele:
    Wie oft treten im DAX auf täglich 3 höhere Hochs hintereinander auf?
    Mit welcher Wahrscheinlichkeit werden Gaps im DAX auf Tagesbasis wieder geschlossen?
    Wenn der RSI unter 20 fällt, welche Performance (Schlusskurse) hat der DAX die nächsten 1,2,3 Tage?


    Bisher getestete Strategien
    Im Folgenden seht ihr eine Übersicht zu den Auswertung der bisher betrachteten Strategien. Die Beschreibungen stehen meist einige Posts weiter oben, die Erläuterungen oder Diskussionen weiter unten in der jeweiligen Postliste.

    Non-Farm-Payrolls - EUR/USD
    OpenRange - DAX
    OpenRange - S&P500
    SMA20/50 - DAX
    Bounceback - DAX
    %R-System - S&P500
    SuperTrend-Reverse - DAX
    Countertrend - AAPL, DAX, Gold
    End-Of-Month - S&P500
    Freitags-Strategie - DAX
    Weekly-Strategie - DAX
    MA-Pullback
    OpenRange-Breakout mit HeikinAshi
    ReturnOnOpen-Strategie
    CCI_SuperTrend
    DAX_Breakout
    DAX_9:00
    DAX_9:15
    DAX_Pivot
    EURUSD-Breakout
    EURUSD-MACD-Stoch
    GBPYJPY_H4_SMA



    Kurse auf der Tradimo Kurs Plattform





    Haftungsausschluss
    Alle zur Verfügung gestellten Daten dienen allein zu Informationszwecken und nicht als Investmentempfehlung. Die veröffentlichten Informationen sind keineswegs als persönliche Anlageberatung zu verstehen. Alle Auswertungen werden von mir auf Plausibilität und Korrektheit geprüft, dennoch können sie sich als fehlerhaft oder sogar falsch erweisen.
    Die Performance einer Handelsstrategie in der Vergangenheit kann nicht als Maßstab für zukünftige Gewinne dienen. Der Autor kann nicht für evtl. auftretende Verluste haftbar gemacht werden.
  • Moderator (Blogs und TA)
    Das klingt interessant ! Ich freue mich drauf die ersten Strategien von dir vorgestellt zu bekommen. & wo wir grade dabei sind, wie möchtest du das machen ?

    Was ich besonders interessant finde sind die Statistischen Auswertungen !

    Woweit ich weiß sind hier bis jetzt nur sehr wenig diesen Weg gegangen.

    MfG. smile
  • zuletzt bearbeitet: 22.02.2016 16:49
    Hört sich top an. Kannst du evtl. noch einige Worte zu deiner "Testumgebung" sagen. Bzw. generell: Welche Software eignet sich deiner Ansicht nach gut für Backtests (du hast ja bereits einige genannt)?

    Ich nutze aktuell Matlab für alle Auswertungen/Tests. Das ist aber teilweise recht umständlich und viel Programmierarbeit.
  • Moderator (Stell dich vor)
    Coole Idee smile

    Bevor der Ansturm zu groß wird probier ich es doch gleich mal aus biggrin

    Markt: USD/JPY
    Timeframe: M5
    Indikator: ATR (14)
    Entry: Nur zu den NFP Rules werden Trades platziert! Also jeden ersten Freitag im Monat. 5 min nach den News wird geguckt wie die Kerze geschlossen hat, ist sie positiv wird eine Buy Stopp Order ans Hoch dieser Kerze platziert, ist sie negativ wird eine Sell Stopp Order ans Tief gesetzt.
    Stopp: Der Stopp ist der Wert des ATRs zur Order Eingabe. Der TP ist der 3 Fache ATR



    Grüße
    Broker11
  • @Sulpfur
    Ich werde erstmal keine eigene Strategie vorstellen, das mache ich eher in meinem privaten Blog. Hier geht es darum relativ einfache Strategien zu testen, um den Anfängern einen Mehrwert zu geben.

    @LinusCaldwell
    Ich nutze NinjaTrader oft für Intraday-Tests und Systeme und für eine Voll-Automatisierung. In letzter Zeit arbeite ich allerdings lieber mit Wealth-Lab, da es hier noch einfacher ist Systeme zu erstellen. Meist allerdings dann End-Of-Day-Systeme. Matlab ist auch sehr gut zum Testen und um Auswertungen vorzunehmen. Ich benötige aber immer eine visuelle Möglichkeit der Auswertung und konnte mich mit Matlab noch nicht richtig anfreunden. Backtests kannst du im Prinzip auch in Excel machen, sofern du Daten hast. Ein Bezug zu einer höheren Programmiersprachen und einer Trading-Software ist mir allerdings lieber. Das Wichtigste ist m.M. nach, dass du der Software vertraust und der Test nachvollziehbar und auch im Live-Trading so anwendbar ist.
  • digidreas
    Hallo Holger

    Du bietest uns hier also einen kostenlosen Dienst an für den ich, wenn ich ihn über deine private Seite in Auftrag gebe bezahlen müsste? Nicht schlecht Herr Specht.
  • @Broker11
    Ich habe, wie erwähnt, keine Forex-Daten. Welcher Future ist dahinter (Symbol)? Wann werden die Orders gecancelt? Mit Stop-Orders ist das immer etwas komplizierter.
  • @digidreas
    Nein, natürlich nicht smile Ich werde lediglich einfache Systeme, welche mir vollständige Informationen zur Umsetzung liefern hier testen. Sollte es den Aufwand von 30min wesentlich übersteigen, werde ich auch ganz klar sagen, dass ich das nicht immer leisten kann. Ich sehe das eher als Blog für Tradinganfänger. Du merkst es wahrscheinlich schon an meiner Nachfrage zum ersten System. Ich suche sicherlich nicht das korrekt Futuresymbol raus, wenn ich es nicht sofort zur Hand habe. Auch das nachfragen, wird sich in Grenzen halten.

    Das mögen einige unfair oder zu hart finden, aber auf der anderen Seite wird es sonst zu unübersichtlich und zerfahren. Der Mehrwert wäre dahin und ich könnte zeitlich nichts anderes mehr machen. Ich biete das hier an, weil und solang es Spaß macht.
  • Moderator (Stell dich vor)
    Holger Breuer:
    @Broker11
    Ich habe, wie erwähnt, keine Forex-Daten. Welcher Future ist dahinter (Symbol)? Wann werden die Orders gecancelt? Mit Stop-Orders ist das immer etwas komplizierter.

    Sorry, wusste nicht das es da so viele verschiedene Arten von Futures gibt smile Da ich nicht in der Lage war ein passendes Symbol für USD/JPY zu finden, habe ich das Symbol für EUR/USD rausgesucht CME_MINI:E71! ich hoffe das ist richtig.

    Die Order sollte gelöscht werden, wenn sie nach einer Stunde noch nicht ausgelöst wurde.
  • Hallo,

    könntest du folgendes Testen:

    - DAX Open Range Breakout 08-09 Uhr
    - nach Ausbruch erfolgt der Einstieg erst wenn der Kurs 61,8% in die Range zurückgekommmen ist, tut er`s nicht an diesem Tag kein Trade
    - wenn DAX nach Break 1X Range weiter gelaufen ist und dann zurück kommt kein Einstieg mehr
    - SL unter Tief bzw. Hoch
    - TP 3X Range
    - wird TP nicht erreicht wird 22 Uhr geschlossen


    Gibt es eigentlich historische Sentiment-Daten? Da könnte man noch einen Filter einbauen
    z. B. Senti -40, ausbruch short, dann Trade nicht machen

    Auch schön wäre ein Test mit Supertrend als Filter- hier aber in verschiedenen Zeiteinheiten
    (welche liefert brauchbare Ergebnisse)

    Vorab schonmal vielen Dank für deine Bemühungen...
  • @Broker11
    Kein Thema, bei den Futures sind meist die XYZ/USD Instrumente verfügbar. Für den EUR/USD ist das dann meist der 6E, der ist bekannt smile Ich werde mal etwas basteln und die Ergebnisse hier rein stellen. Anfangs werden das dann wohl Charts werden. Später vielleicht auch nur die interessanten Statistiken, mal sehen, wie es passt. Auf Nachfrage auch gerne weitere Grafiken.
  • @CTrade
    Ich werde die einfache Variante gerne hier vorstellen. Alles ander würde zu weit gehen. Ich werde auf M5 mal testen, das bedeutet, der Ausbruch und die Rangegröße werden auch auf M5 berechnet (zum Close bzw. High).

    Erstmal ist aber der Tests mit den NFPs für Broker11 dran. Bitte bis dahin keine weiteren Anfragen.
  • Systementwickler
    zuletzt bearbeitet: 23.02.2016 17:09
    Hier die Auswertung für die NFP-Strategie. Mit $2 Commissions pro Trade.
    Die Trades habe ich im M1 ausgeführt, da andernfalls zu viele "Same-Bar-Exits" aufgetreten wären. Das Programm kennt ja nur Open/High/Low/Close, bei zeitbasierten Charts und Tickdaten habe ich hier nicht.

    Auch auf M1 sehen wir einige Exits an der gleichen Kerze. Es müsste hier jeder Trade einzeln auf seine Gültigkeit geprüft werden. Alle 8 Trades (wenn ich es richtig gesehen habe) könnten auch ein anderes Ergebnis bringen.

    Die ATR wird weiterhin aus M5 berechnet, ebenso das Hoch/Tief der 5-Minuten-Kerze.
    Zudem führen Feiertage evtl. dazu, dass in dem Monat nicht getradet wird, wie bspw. am 1.1.2016. Diese filtere ich nicht exakt raus, da es zuviel Aufwand wäre.

    Offene Trades werden um 22:00 geschlossen, falls weder Target noch Stop erreicht wurden. Die Tradezeiten beziehen sich auf Eastern Standard Time (GMT-5). Hier die Auswertungen von 2014-2015, mit einem Kontrakt und einem $100.000 Account:



    NFPs_2014-2105_Equity
    NFPs_2014-2105_Trades


    Und noch ein weiterer Test, wobei der Stop ebenfalls mit der ATR * 3 verwendet wird:



    NFPs_2014-2105_Equity_SL_ATR3
    NFPs_2014-2105_Trades_SL_ATR3

    -----
    Dieser Backtest ist, wie jeder Test auf historischen Daten, mit Vorsicht zu handhaben.
    Vergangene Ergebnisse sind kein Indiz auf eine gute Performance in der Zukunft.
    Jede Programmierung kann auch Fehler beinhalten. Dafür wird keinerlei Haftung übernommen.
  • Das mit dem direkten Einbetten der Images über Dropbox mit dem img-Tag hat nicht funktioniert. Deswegen vorerst nur die Links. Da die Bilder durch das Einbetten eh recht klein werden, finde ich Links allerdings auch passender.

    Geht das Einbetten denn generell nicht?
    Kann ich Bilder bei Anklicken im Post vergrößern?
  • digidreas
    digidreas
    zuletzt bearbeitet: 23.02.2016 07:27
    Du kannst Dropbox Bilder direkt einbetten dazu musst du nur anstelle des www dl eingebeben.
    Der Dropbox-Link muss dann so beginnen:

    https://dl.,..........

  • zuletzt bearbeitet: 23.02.2016 07:54
    Au fein! Darf ich auch?

    1.) Markt:
    ES (S&P500)
    2.) Timeframe:
    1m
    3.) Verwendeter Indikator:
    -
    4.) Zu prüfende Logik:
    OpenRangeBreakout, Long bzw. Short bei Bruch von Hoch/Tief der ersten 5m Kerze des Tages (15.30-15.35). Exit zum Tagesclose 22.00 Uhr. Erstmal kein StopLoss, TakeProfit.

    Vorab vielen Dank!
  • @DAXMonat
    Nein, du darfst nicht, zumindest jetzt noch nicht smile
    Bitte, wie eingangs erwähnt, erst neue Setup, wenn die alten bearbeitet / besprochen sind.
  • Moderator (Stell dich vor)
    Dank dir Holger smile

Anmelden - Es ist kostenlos!

Indem du den "Anmelden"-Button anklickst, stimmst du zu, dass du die allgemeinen Geschäftsbedingungen gelesen und verstanden hast und sie akzeptierst..
Or