Jump to content
Tom Next - Daytrading Community

Markttechnisches Handelssystem programmieren


Eddy

Recommended Posts

Du musst die Kommission in den Optionen unter "Futures - Simulator" eintragen und im Stratgey Analyzer im Backtestfenster, dort wo du die Backtestparameter eingibst, "Include Commission = true" einstellen.

 

PS: Vielleicht ist 27 für einen Halfturn auch zu viel, und die Hälfte reicht. Das sind ja 2 Punkte pro Roundturn, also 50 €. Musst du mal probieren und mit Demo/Live mal testen.

  • Upvote 2
Link to comment
Share on other sites

Der bereitet dort nur die Daten auf. Ist nervend...

Wenn es sehr lange dauert immer bei großen Datenmassen, dann man auch Rechtsklick => Grid Excel oder so ähnlich klicken, dann exportiert er alles in eine Excel-Datei, dort kann man vielleicht entspannter die Daten auswerten.

Und wie ist das Ergebnis? Ernüchternd, oder?

Link to comment
Share on other sites

Sieht auf jeden Fall recht gut verteilt aus.

Wie sieht das Ergebnis grafisch dargestellt aus? Ist es halbwegs gleichmäßig? Es bringt ja nichts wenn 1 Monat der Profitmonat war und die anderen 5 im Verlust. Das lässt sich aus den Durchschnittsdaten immer schlecht ablesen.

Hast du es überoptimiert auf das halbe Jahr? Wie sieht es mit denselben Parametern (ohne Optimierung) aus von Juli bis heute?

Man muss natürlich auch bedenken, ob man es durchsteht, 16 Verlusttrades in Folge (kann ja vorkommen) auf dem FDAX mental + finanziell durchzuhalten. Darüber sollte man sich immer im klaren sein.

Wie geht die Strategie mit einem Gap von -500 Punkten um? Gibt es Gaps oder sind die ausgeschlossen, weil keine Overnightpositionen vorhanden sind? Das wäre zB dein Halbjahresgewinn. So ein Gap ist möglicherweise in der heutigen Zeit nicht ganz fern. Wenn Frankreich oder Ger auf einmal gerettet werden müssen kann es schon dazu kommen.

An der Kommission sieht man sehr schön: wenn pro Trade auch nur ein Punkt weniger gemacht wird, reduziert sich dein NettoGewinn um 1/3.

  • Upvote 1
Link to comment
Share on other sites

Sieht auf jeden Fall recht gut verteilt aus.

Wie sieht das Ergebnis grafisch dargestellt aus? Ist es halbwegs gleichmäßig? Es bringt ja nichts wenn 1 Monat der Profitmonat war und die anderen 5 im Verlust. Das lässt sich aus den Durchschnittsdaten immer schlecht ablesen.

Leider kann ich noch keine Aussage machen. Der StrategyAnalyzer will nicht so richtig. Entweder er läd Daten oder er ist im Status Saving (Statusanzeige). Er wird nur nicht fertig. :cursing:

 

Hast du es überoptimiert auf das halbe Jahr? Wie sieht es mit denselben Parametern (ohne Optimierung) aus von Juli bis heute?

Man muss natürlich auch bedenken, ob man es durchsteht, 16 Verlusttrades in Folge (kann ja vorkommen) auf dem FDAX mental + finanziell durchzuhalten. Darüber sollte man sich immer im klaren sein.

Eine Optimierung habe ich noch nicht vorgenommen (bis auf die Anzahl Bars in der Korrektur). Allerdings versuche ich Trendverläufe (also die 1-2-3's) "zu verschmelzen". Dadurch bekomme ich einen sauberen Trendverlauf mit der Folge, das die Anzahl der Entries die schnell ausgestoppt werden, erheblich reduziert wurde.

 

Wie geht die Strategie mit einem Gap von -500 Punkten um? Gibt es Gaps oder sind die ausgeschlossen, weil keine Overnightpositionen vorhanden sind? Das wäre zB dein Halbjahresgewinn. So ein Gap ist möglicherweise in der heutigen Zeit nicht ganz fern. Wenn Frankreich oder Ger auf einmal gerettet werden müssen kann es schon dazu kommen.

Gaps habe ich über die Handelszeiten ausgeschlossen (8:00 - 21:50). Alle Positionen ab 21:50 wurde entweder gecancelled der zum Marktpreis verkauft. Ohne diese Begrenzung gabs in der Tat erhebliche Overnight Verluste.

Link to comment
Share on other sites

So, das Problem mit dem StrategyAnalyzer ist gelöst. Ich muss mein Handelssystem "entladen", da sich sonst irgendetwas blockiert.

Hier ist die Performancekurve für das 1. Halbjahr und die Berechnung ab dem 1.7. bis heute. Da gibts einige böse Drawdowns. Das muss ich jetzt erst mal analysieren.

post-2640-0-45257400-1321712157_thumb.png

post-2640-0-65637600-1321712170_thumb.png

post-2640-0-86036400-1321712187_thumb.png

Link to comment
Share on other sites

Ich habe die Drawdowns mal untersucht. Zwei Hauptprobleme habe ich gefunden (der Handelsstil ist "Bewegungshandel aus der Korrektur"). Ich eröffne somit sehr früh einen Trade in der Korrekturphase eines Trends.

 

Nach einem "großen" opening gap wird ein Trade eröffnet.

Nach einer "langen" Bewegung (in Punkten) wird ein Trade eröffnet.

 

In beiden Fällen wird der erste Stop auf den letzten P3 gesetzt und mittels Parbolic SAR nachgezogen. Dadurch ergibt sich eine große Punktdifferenz. Wenn ich jetzt in der Nähe des P3 ausgestoppt werde, ist ein sehr großer Verlust entstanden.

 

Ich muss also versuchen, nach "großen" Gaps und "langen" Bewegungen keinen Trade in dieser Korrektur zuzulassen.

 

Gibt es ein Verfahren, um "große" Gaps bzw. "lange" Bewegungen als solche zu identifizieren? Eine feste Größe (also z.B. 100 Pkt.) ist wohl eher nicht sinnvoll.

 

Im Bild ist ein Short-Trade zu sehen.

post-2640-0-74728900-1321971038_thumb.png

Link to comment
Share on other sites

Ich habe mal folgende Lösungsansatz implementiert:

 

Wenn das Verhältnis des ATRs des ersten Bars eines neuen Handelstages (ATRCurrent) zum ATR des letzten Bars des vorhergehenden Handelstages (ATRPrevious) einen bestimmten Faktor überschreitet, wird in der aktuellen Korrektur nicht gehandelt.

 

Trade verboten wenn: ATRCurrent / ATRPrevious > Schwellwert

 

Im Bild habe ich mit Schwellwert = 1,3 gerechnet. Die ersten bösen drawdowns sind damit weg.

 

Ein weitere zu lösende Situation ist in Bild 2 gezeigt. Eine Lösung könnte folgendermaßen aussehen:

 


  •  
  • Bestimme die Trendrichtung ab dem 1. Bar eines neuen Tages
  • Es werden nur Trades zugelassen, die in Richtung dieser Trendrichtung laufen
  • Beende diese Regel wenn ein bestimmtes Ereignis eintritt (z.B. Tageszeit > 10.00 Uhr)

 

Für die einfache Trendbestimmung müsste doch ein Gleitender Durchschnitt ausreichen oder gibt es was besseres.

 

Nach welchen Kennzahlen und welchen Werten beurteilt ihr denn ein Handelssystem?

post-2640-0-79000200-1321990864_thumb.png

post-2640-0-04372400-1321990882_thumb.png

Link to comment
Share on other sites

Bild rechts:

Ich verstehs nicht ganz. Du hast einen riesigen ATR-Sprung durch das Gap und trotzdem eröffnet das System einen Short trade. Ich dachte genau das wolltest du verhinden. :birdie:

Dieser Handelssatz setzt grundsätzlich in der Korrekturphase eine StopBuy-Order ab. Ich erläutere den Trade mal anhand einiger Bilder:

Bild 1 zeigt dem übergeordneten Timeframe (30 Min). Der abwärts gerichtetet Trend 93 wird am OutsideBar um 16.00 Uhr gebrochen und der aufwärtsgerichtete Trend 94 entsteht. Dieser wird um 8:30 seinerseit gebrochen (durch das Gap. Der abwärtsgerichtete Trend 95 entsteht.

 

Bild 2 zeigt den Timeframe, in dem gehandelt wird (5 Min). In der Korrekturphase des abwärtsgerichteten Trends 845 wurde eine StopBuy-Order plaziert. Mit fortschreitender Korrektur wurde der Stop nachgezogen. Am 9.00 Bar werde ich eingestoppt ((was aber wohl ein Fehler ist. Das Einstoppen hätte erst am 9:05 Bar passieren dürfen). Aber formal erst mal ok.

 

Jetzt wo ich das hier schreibe, entdecke ich auch schon die ersten Fehler.

Aus marktteschnischer Sicht ist Trend 95 kein Trend.

Ich benutzte im Programm zur Definition einer Trendrichtung ein Verfahren, das auch schon bei 2 Punkten greift. Hier: 95.1.1 und 95.1.2 :cursing: Es sollten eigentlich 4 Punkte vorhanden sein.

 

Ich mach jetzt wohl besser Feierabend.

post-2640-0-74236800-1321995115_thumb.png

post-2640-0-01993400-1321995141_thumb.png

Link to comment
Share on other sites

  • 4 months later...

Erkennen von Seitwärtsbewegungen

 

Mit dem Erkennen einer Seitwärtsbewegung hatte ich mich schwer getan. Im Buch von Cene gibts es dafür eine einfache (auch zu programmierende) Lösung:

 

Im Aufwärtstrend: Solange der letzte P2 nicht überschritten und der letzte P3 nicht unterschritten wird, liegt eine Seitwärtsbewegung vor. Ich hatte versucht,

in der Korrektur Subtrends zu finden und diese mit dem Haupttrend zu verschmelzen. Klappt zwar auch ganz gut, ist aber sehr kompliziert. Im Abwärtstrend entsprechend umgekehrt.

 

Ich habe mal versucht, das Cene-Verfahren zu implementieren und ein paar Bilder angehängt, die diesen Verlauf zeigen.

Wie beurteilt ihr dieses Verfahren?

 

Bild T2:

Der Punkt P3=2.2.3 ist der letzte bestätigte P3.

Der Punkt P3=2.4.3 wurde noch nicht bestätigt, da P2=2.3.2 noch nicht überschritten wurde.

Der High des Bar um 11:40 liegt auf dem Level von P2=2.3.2.

 

Bild T3

Die beiden folgenden Bars (11:45, 11:50) bilden kein HH oder LL zum Bar um 11:40.

Der Bar um 11:55 fällt unter das Low vom Bar um 11:40.

 

Jetzt ist folgende Situation eingetreten:

- Die Bewegung (Bild 2) 2.2.3 - 2.3.2 wurde noch nicht bestätigt, da 2.3.2 noch nicht überschritten wurde

- Da der Bar um 11:55 wieder eine Korrektur einleiten würde, hätte man 2 unbestätigte P2'2 (2.2.2 und 2.5.2)

 

So wie ich Cene verstanden habe, haben wir somit eine Seitwärtsbewegung. Die letzte Bewegung und die letzte Korrektur werden entfernt und die Bewegung

wird von P3=2.2.3 zum Bar um 11:55 gezeichnet (Bild T3, Punkt P2=2.3.2)

 

Im Bild T4 ist der weitere Verlauf dargestellt. Der P2=2.3.2 liegt auf dem Level von P2=2.3.2 in Bild T2 und T3.

Damit ist es möglich, in einer Bewegungsphase seitwärts gerichtete Verläufe zu erkennen und diese dann NICHT zu handeln (macht nur Sinn, wenn man VOR einem P2-Durchbruch bereits einen Einstieg sucht)

post-2640-0-27376300-1333891850_thumb.png

post-2640-0-52112100-1333891866_thumb.png

post-2640-0-55657200-1333891882_thumb.png

post-2640-0-96275500-1333891916_thumb.png

  • Upvote 5
Link to comment
Share on other sites

Musste doch noch etwas am Programm ändern.

 

Ganz so einfach geht es wohl doch nicht.

 

In Bild T5 sieht man einen Aufwärtstrend. Die letzte Bar wird eine Korrektur erzwingen. Da der P2=2.8.2 noch nicht bestätigt wurde,

befindet sich (so wie ich Cene verstanden habe) die letzte Korrektur in einer Seitwärtsphase (Bild T6).

 

In Bild 8 steht ein Bruch des P3 = 2.7.3 bevor, was den Trend beenden wird. Die Korrektur sieht nach einem schönen Abwärtstrend aus. Lt. Cene ist es aber noch eine Korrektur, solange P3 nicht unterschritten wird.

In Bild 9 sieht man den Abwärtstrend (erst mit einem "Arm"). Das ist aber wohl zu einfach. Der Trend muss mit dem Hoch am Punkt P2=2.8.2 beginnend neu berechnet werden.

In Bild 10 sieht man, wie es richtig aussehen muss. (Bild T10 kommt sofort)

 

Ist der Verlauf jetzt so ok?

post-2640-0-86646100-1334000789_thumb.png

post-2640-0-22778400-1334000810_thumb.png

post-2640-0-58428000-1334000828_thumb.png

post-2640-0-57136000-1334000857_thumb.png

  • Upvote 4
Link to comment
Share on other sites

@Eddy

Keine Kritik, nur eine Idee.

 

Würde es dir sehr viel Mühe machen deine Sichtweise/Annahme etc. vielleicht demnächst direkt in das jeweilige Bild zu schreiben ?

Wenn man sich dein Bild im Browser ansieht, überdeckt dieses das ganze Fenster, da man sich anhand deiner Bezifferung und dem Chart auch erst zurechtfinden muß (inklusive Bildnummern) macht der überdeckte Text das nachvollziehen nicht grade einfacher.

 

Für dich wäre die direkte Bildbeschreibung vllt. auch von Vorteil (nur so ein Gedanke) wenn du dir das Bild nach meheren Wochen noch mal anguckst,

kannst du direkt auf die Sichtweise vor Wochen zurückblicken.

Hat ja auch alles mit einer gewissen Entwicklung beim Chart lesen zu tun.

Geht mir zumindest so.

 

btw.

Bild #10 würde ich aus meiner Sichtweise zustimmen.

  • Upvote 3
Link to comment
Share on other sites

  • 4 weeks later...

Ich habe mal ein kleines Testprogramm geschrieben (NinjaTrader-Script), mit dem Umkehrstäbe nach Voigt und Cene erkannt und im Chart markiert werden. Dazu berechne ich 3 Kennzahlen (Bild). Aus ihnen wird dann bestimmt, ob ein Umkehrstab vorliegt. Für Voigt wird zusätzlich das Rauschen des Open[0] um den Close[1] berücksichtigt. Die Parameter zur Berechnung der Kennzahlen können verändert werden. Ebenso die Basis, in der ein Parameter angegeben wird. Möglich sind:

Tick, %, ATR und WATR (gewichteter ATR)

 

Es erfolgt KEINE Bewertung des Umkehrstabes. Vielleicht hat jemand Interesse und "spielt" etwas mit dem Indikator.

post-2640-0-59121600-1336406479_thumb.png

A0ReversalBars.zip

  • Upvote 6
Link to comment
Share on other sites

  • 6 months later...

Der Admin hat mich darauf hingewiesen, mich mal wieder zu melden. Zur Zeit lese ich hier i.d.T. nur mit. Ich hatte den Eindruck gewonnen, das meine Entwicklung eines HS AUßERHALB von etablierten Systemen (z.B. NinjaTrader) hier eher belächelt wird.

 

Hier dann mal meine aktuellen Aktivitäten:

 

1. Übernahme von historische Daten 1 Min-Daten in eine MySQL-Tabelle. Die Realtime- 1Min-Daten werden ebenfalls laufend gesichert.(ggfs. werde ich das auf Tickdaten ausweiten). Die Idee dahinter ist u.a., a) im Backtest qualitativ bessere Aussagen zu den Trades zu bekommen und b) Charts schneller aufzubauen.

 

2. Eine Anbindung an IB. Zur Zeit nutzte ich die ActiveX-API dafür.

 

3. Erstellen von Triggern, die über Parameter gesteuert werden. Zusammenfassen von Triggern zu Strategien.

 

Eddy

Link to comment
Share on other sites

  • 2 years later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...