DAX 0800 5 minutes System

Viewing 14 posts - 1 through 14 (of 14 total)
  • Author
    Posts
  • #54846 quote
    teddy58
    Participant
    Average

    Das System handelt im DAX um 08 h, in die Richtung in die sich der Markt bewegt. Es lebt von einem kleinen TP und einer hohen Trefferquote, damit verbunden ist ein hoher Drawdown. Bei 200.000 Einheiten kommt der worst case nicht vor, aber irgendwann wird er kommen. Das System ist also als gefährlich anzusehen. Gibt es jemanden, der den Drawdown begrenzen kann ohne Verlust der Performance? 

    // DAX 0800 5M
    // Created by Peter Wohlfarth
    
    defparam preloadbars= 5000
    defparam cumulateorders= false
    
    
    // MA Hull
    Period= 170
    inner= 2*weightedaverage[round(Period/2)](close)-weightedaverage[Period](close)
    MMHULL= weightedaverage[round(sqrt(Period))](inner)
    MMHULL1= weightedaverage[round(sqrt(Period))](inner[1])
    
    // Setup
    tplong= 12
    tpshort= 12
    sllong= 160
    slshort= 160
    
    
    // Handel long
    C1= time = 080000 and HistoricVolatility[500](close) > 0.085
    C2= close[1] > close[119]+6
    C3= MMHULL > MMHULL1 and average[135](close) > average[135](close[1])
    C4= close[119] < close[287]+160
    C5= close < lowest[288](close)+150 and close < lowest[576](close)+200 and close < lowest[864](close)+250 and close < lowest[4050](close)+800
    C6= close > highest[288](close)-100
    C8= currentdayofweek= 5 and time= 085500
    
    if C1 and C2 and C3 and C4 and C5 then
    buy 1 contract at market
    set target profit tplong
    set stop loss sllong
    endif
    
    if longonmarket and C8 then
    sell at market
    endif
    
    // Handel short
    C11= time = 080000 and HistoricVolatility[500](close) > 0.085
    C12= close[1] < close[119]-8
    C13= MMHULL < MMHULL1
    C14= close[119] > close[287]-100 and close[119] < close[575]+200
    
    if C11 and C12 and C13 and C14 and C6 then
    sellshort 1 contract at market
    set target profit tpshort
    set stop loss slshort
    endif

     

    #54869 quote
    Despair
    Blocked
    Master

    Dein System hat eine hohe Trefferquote aufgrund des Verhältnisses von TP/SL. Das ist über 13! Sowas macht selten Sinn. Ein Verlierer nach 13 Gewinnern und du bist im Minus.

    #54925 quote
    mr blue
    Participant
    Senior

    Warum erwartest Du einen grossen Drawdown? Jede order geht ja mit klarem tp und sl rein. 

    #54937 quote
    teddy58
    Participant
    Average

    Bei Backtests kann man ja erkennen, dass eine Position schonmal mehr als 100 Pkt ins Minus geht. Und bei derzeit 160 Pkt wird der SL ausgelöst. das bedeutet, dass der Gewinn von 14 Treffern aufgefressen wird. Da geplant ist, das System hoch gehebelt auszuführen, hinterläßt ein ausgelöster SL unangenehme Spuren auf dem Konto. Momentan habe ich noch keine Idee, wie man den DD begrenzen kann, und zwar in der Weise, dass die Performance-Kurve nicht beeinträchtigt wird. Es kann eigentlich, so glaube ich, nur ein planmäßiger Ausstieg und Wiedereinstieg sein, wobei mit Positionsgrößen durchaus experimentiert werden kann. Aber dazu fehlt mir (noch) das letzte Quäntchen Erfahrung in der Programmierung. Vielleicht gibt es aber auch andere Möglichkeiten, die ich nicht kenne. Bin für jeden Hinweis dankbar.

    #54938 quote
    Jessar
    Participant
    Senior

    Ich würde versuchen den stop nicht nach punkte zu setzten sondern immer über oder unter widerstands/ unterstützungen zu platzieren, das verringert sicher die trefferquote aber auch den drawdown  somit kannst du mehr positionen kaufen und kommst auf den selben gewinn.

    Ich sprechen bei drawdown natürlich von punkte nicht euros.

    Und sorry für diese lange wurst ich schreibe im moment vom handy

    #54943 quote
    teddy58
    Participant
    Average

    Oha, dazu müsste man Code haben, der Widerstandslinien erkennt. Du hast nicht zufällig was da?

    #55865 quote
    verdi55
    Participant
    Veteran

    Ich habe mal ein ähnliches System gehabt, auf DAX-2-Minutenbasis, das die Kursrichtung um 9 Uhr herum gehandelt hat. Man kann versuchen, die erste Position herumzudrehen mit Hilfe eines Supertrends, wenn sie ins Minus läuft und der Supertrend geschnitten wird. Und danach vielleicht noch maximal einmal herumdrehen mit dem Supertrend, wenn die Kurse wieder in die andere Richtung gehen sollten. Die Stops lagen auch bei 120 – 150 Punkten. 

    Am Ende erlitt das System das Schicksal der meisten : die angefittete Vergangenheit sah ganz toll aus, aber die Realität mit den optimierten Parametern war eher schlecht. Nach dem Ende der Optimierung stimmten die Parameter für die Wirklichkeit nicht mehr, und das System lief öfters in den Stop oder endete sonstwie im Minus und fraß den Gewinn der vorherigen 10-20 Handelstage auf. 

    Am Ende hat keines dieser Systeme in den letzten 2 Jahren ohne neue, nachträgliche  Optimierung irgendeinen Gewinn gemacht. Es ging mal hoch, mal runter, und das wars. Gute Phasen wechselten sich mit Katastrophenphasen ab. 

     

    Noch ‘ne kleine Anmerkung : Wenn man den Kurs vom Vortag, sagen wir um 22:00 oder einer anderen Uhrzeit wissen will, dann ist es besser, sich um genau 22:00 am Vortag den Kurs zu merken, und nicht mit close[119] oder close[287] zu arbeiten (z.B. Zeile 44). Denn über Nacht fallen öfters einzelne Bars aus, wenn es da keine neuen Kurse gibt, und die werden dann nicht mitgezählt. Close[119] kann dann u.U. jeden Tag den Kurs bei einer etwas anderen Uhrzeit ergeben. 

    teddy58 thanked this post
    #55900 quote
    verdi55
    Participant
    Veteran
    Dein System hat eine hohe Trefferquote aufgrund des Verhältnisses von TP/SL. Das ist über 13! Sowas macht selten Sinn. Ein Verlierer nach 13 Gewinnern und du bist im Minus.

    Das ist das Schicksal aller Scalping-Systeme, und etwas ähnliches liegt ja hier auch vor. Kleine Gewinnmitnahmen bei sehr großen StopLoss-Abständen, in der Hoffnung, daß der Kurs früher oder später schon durch den takeprofit laufen wird. Aber wenn nicht, kanns ganz schlecht werden. Allerdings laufen hier nicht alle Verlustpositionen in den vollen StopLoss, weil ja am nächsten Morgen eine entgegengesetzte Position eröffnet werden kann.

    Manche Leute machen auch nacheinander sehr viele solcher Positionen mit kleinem TP/SL auf und lassen alle die offen, die im Verlust liegen. Das geht vielleicht eine Weile gut, aber früher oder später geht es immer schief, wenn der Kurs einfach nicht mehr in die richtige Richtung drehen will und die kumulierten Minuspositionen riesige Verluste erzeugen. Das konnte man schon häufiger auf ayondo beobachten.

    #55902 quote
    verdi55
    Participant
    Veteran

    Trotzdem funktioniert das System hier erstaunlich gut, weil zum Beispiel der Bereich von Period (Zeile 9) ziemlich breit ist, in dem es gut läuft. Von Werten von ca. 100 bis 450 für Period bekommt man anständige Resultate ohne Riesendrawdowns.

    Allerdings ist das beste Ergebnis, das man für Period = 290 erhält, 1700 Punkte für 692 Handelstage. Das sind ca. 2.5 Punkte pro Handelstag, und mit normalem Swingtrading auf längeren Zeiteinheiten dürfte sich normalerweise mehr erreichen lassen, so ca. 1000 – 2000 DAX Punkte in normalen Jahren, oder 4-8 Punkte pro Tag, wenn ein System nicht allzusehr an die Vergangenheit angefittet (optimiert) ist. 

    #55908 quote
    verdi55
    Participant
    Veteran

    Solche Systeme, wenn sie denn in der Wirklichkeit genauso laufen sollten wie im Backtest, eignen sich für exponentielles Wachstum durch Reinvestieren der Gewinne. Probier mal folgendes :

    // DAX 0800 5M
    // with exponential growth / reinvestment of gains
     
    defparam preloadbars= 5000
    defparam cumulateorders= false
     
     
    // MA Hull
    Period= 170
    inner= 2*weightedaverage[round(Period/2)](close)-weightedaverage[Period](close)
    MMHULL= weightedaverage[round(sqrt(Period))](inner)
    MMHULL1= weightedaverage[round(sqrt(Period))](inner[1])
     
    // Setup
    tplong= 12
    tpshort= 12
    sllong= 160
    slshort= 160
     
     
    
    SP = strategyprofit
    cp = countofposition
    pp = positionperf
    pprice = positionprice
    
    Anzahl = 1 + ((SP + pp * pprice * ABS(cp)) / 160)
    
    Anzahlgerundet100 = round(Anzahl * 100)
    
    n = Anzahlgerundet100 / 100
    
    If n < 1 then
    n = 1
    endif
    
    If n > 500 then
    n = 500
    endif
    
    
    // Handel long
    C1= time = 080000 and HistoricVolatility[500](close) > 0.085
    C2= close[1] > close[119]+6
    C3= MMHULL > MMHULL1 and average[135](close) > average[135](close[1])
    C4= close[119] < close[287]+160
    C5= close < lowest[288](close)+150 and close < lowest[576](close)+200 and close < lowest[864](close)+250 and close < lowest[4050](close)+800
    C6= close > highest[288](close)-100
    C8= currentdayofweek= 5 and time= 085500
     
    if C1 and C2 and C3 and C4 and C5 then
    buy n contract at market
    set target profit tplong
    set stop loss sllong
    endif
     
    if longonmarket and C8 then
    sell at market
    endif
     
    // Handel short
    C11= time = 080000 and HistoricVolatility[500](close) > 0.085
    C12= close[1] < close[119]-8
    C13= MMHULL < MMHULL1
    C14= close[119] > close[287]-100 and close[119] < close[575]+200
     
    if C11 and C12 and C13 and C14 and C6 then
    sellshort n contract at market
    set target profit tpshort
    set stop loss slshort
    endif
    

    Hier wird für alle 160 Euro (bzw. Bruchteile davon), die man verdient hat, ein Kontrakt mehr gekauft, bis maximal 500 Kontrakte erreicht sind. Wenn man Glück hat und eine gute Phase ohne größere Drawdowns erwischt, kann man damit auf hohe Kontraktzahlen kommen, ohne wesentlich mehr verlieren zu können, als das System vorher verdient hat. 

    teddy58 and mr blue thanked this post
    #55927 quote
    teddy58
    Participant
    Average

    Oha, du willst mich wohl reich machen 🙂  Naja für 500 Kontrakte braucht man schon ein dazu passenden Kontostand. Aber das Prinzip ist schon interessant. Money Management habe ich bisher ganz außen vor gelassen, dem Prinzip folgend, MM kann aus einem schlechten System kein gutes machen. Dieses System ist ja nicht schlecht, aber doch ein Spiel mit dem Feuer. Vielleicht wartet man einen Drawdown ab und steigt dann ein …

    #55976 quote
    verdi55
    Participant
    Veteran

    In dem exponentiellen System muß man sich bewußt sein, daß der Wachstumsfaktor (letzte Zahl in Zeile 27) mindestens so groß wie der StopLoss sein sollte. Wenn der Faktor auf 160 steht, und das System einmal in den vollen StopLoss läuft, bevor man die Höchstzahl an Kontrakten erreicht hat, verliert man alles, was man vorher verdient hat (wenn es keine Slippage gibt). Wenn man den Faktor z.B. auf 320 setzt, verliert man nur die Hälfte. Dann dauert auch das Wachstum der Kontraktzahl länger. 

    Übrigens ist im Prinzip die Formel für den Hull MA des vorigen Bars in Zeile 12 nicht ganz richtig. Es müßte meiner Ansicht nach einfach heißen : MMHULL1 = MMHULL[1]

    #56017 quote
    verdi55
    Participant
    Veteran
    Wenn man mal in dem obigen exponentiellen Beispiel einfach nur die profit targets (Zeile 15 u. 16) von 12 auf 14 Punkte erhöht, bekommt man einen Eindruck (siehe Bild unten), wie später die Realität aussehen könnte. Dann denken wir uns noch etwas Slippage hinzu, d.h. ungünstigere reale Einstiegskurse als im Backtest – das dürfte um Punkt 8:00 Uhr ziemlich häufig und heftig auftreten. Und schon müssen wir wieder ein bißchen auf den schnellen Reichtum warten… Trotzdem interessantes System, und danke für die Anregung mit dem Hull MA. Der funktioniert hier tatsächlich am besten.
    #56018 quote
    verdi55
    Participant
    Veteran
    Attachment ging nicht durch, also hier nochmal :[attachment file=56019]
Viewing 14 posts - 1 through 14 (of 14 total)
  • You must be logged in to reply to this topic.

DAX 0800 5 minutes System


ProOrder: Automatischer Handel & Backtesting

New Reply
Author
author-avatar
teddy58 @teddy58 Participant
Summary

This topic contains 13 replies,
has 5 voices, and was last updated by verdi55
8 years, 1 month ago.

Topic Details
Forum: ProOrder: Automatischer Handel & Backtesting
Language: German
Started: 12/06/2017
Status: Active
Attachments: 3 files
Logo Logo
Loading...