Montag, 15. Dezember 2008

Programmierer In Aktion

Softwareentwickler arbeiten gerne mit Code, mit Programmcode versteht sich. Doch welche Tradingsoftware ermöglicht einem das Umsetzen seiner Handelsideen und das Backtesten derselbigen.

Nachdem ich schon Jahre auf der Suche nach der richtigen Software bin und mich mit einigen Programmen auch intensiver beschäftigt habe, ist es aktuell TradeSignal in der Version 5, die mir meine Handelsentscheidungen vereinfachen soll.

Leider ist es auch hier so, wie mit vielen anderen Charting- und Programmiertools ... jede hat so ihre Eigenheiten bei der Programmierung.

Nun ist die Equilla-Programmiersprache von TradeSignal sehr stark an die EasyLanguage von TradeStation angelehnt, was den Einstieg einfacher gestaltet. TradeStation ist eine wirklich gute Software und die Programmierung relativ einfach. Leider gibt es die TradeStation nur noch im monatlichen Abo und in der neuesten Version nicht mehr direkt zu kaufen ... oder hat sich da mittlerweile wieder etwas getan?

Nun ja, ein weiterer Grund der mich zu TradeSignal wechseln ließ ist der Support des deutschen Aktienmarktes, dies unterstützte TradeStation bis Ende 2006 gar nicht.

Ach ja, zurück zur Programmierung. Ich wollte am Wochenende meine Erkenntnisse bzgl. des Strategie-Stops und des auf der Volatilität basierenden Risikos natürlich auch im Programmcode umsetzen.

Vorab ... dies hat funktioniert ... allerdings war der Weg dorthin nicht immer einfach. Die Software berechnet für jedes Handelsmodul, am jeden Bar, alle Variablen neu. Zusätzlich existieren noch interne Systemvariablen, die ebenfalls an jedem Bar neu berechnet werden. Ein Bar entspricht bei mir einem Tag, da ich auf Tagesbasis handeln möchte. Folgende Fragen stellen sich dem interessierten Programmierer nun ...
  • Warum werden interne Variablen bei Kauf und Verkauf innerhalb des Codes nicht sofort angepasst, sonder erst am nächsten Bar? Hierdurch wird das Verwalten des Zustands dieser Variablen in lokalen, eigenen Variablen notwendig.
  • Kaufe ich bei einer Strategie am aktuellen Bar, oder erst am nächsten (Buy This Bar oder Buy Next Bar)?
  • Wie achte ich bei einem Stopp-Modul, das ich bereits am Bar des Einstiegs den Stopp aktiv in den Markt bringe?
  • Sollte das PositionSizing, also die Berechnung der zu tradenden CFDs, in ein eigenes Modul oder nur in eine Funktion ausgegliedert werden?
Leider existiert bei den gängigen Softwareprogrammen kein Debugger, zumindest kenne ich kein Tool, so dass Fehler nur über das Kompilieren des Sourcecodes bzw. über die Ausgabe entdeckt werden. Wobei die Ausgabe wiederum von den Fähigkeiten des Programmierers abhängt ... :-)

Nach Überwindung aller Hindernisse konnte ich meinen Einstieg am nächsten Bar (sehr wichtig), mit den Stopp-Ordern am nächsten Bar (wobei das Stopp-Modul ausgelagert wurde, damit der Wechsel der Stopp-Engine einfach gestaltet wird) zusammenbringen. Das Position-Sizing wurde lediglich in eine Funktion ausgelagert und scheint ebenfalls zu funktionieren. Details zu den Lösungen können bei Bedarf gerne nachgereicht werden.

Ergebnis: Variable Setzung des StoppLoss und des ProfitTargets in Prozent sowie des InitialKapitals. Daruas werden dann pro Aktie, Kurs und ATR-Vola die Anzahl der handelnden CFDs berechnet.

Bleibt nur die Formatierung der Ausgabe ....

Beste Grüße
DarthTrader

Keine Kommentare:

Kommentar veröffentlichen

Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.