Newsletter 4 - 11/2011

Newsletter 4 - 11/2011
Der heutige Newsletter enthält kein Handelssystem. Ich möchte statt dessen einige Werkzeuge präsentieren, die bei der Entwicklung von Handelssystemen gute Dienste leisten. Im nächsten Newsletter wird es dazu noch weitere Werkzeuge und ein Handelssystem zum Testen und geben. Wenn alles wie geplant läuft, haben Sie also mit dem Dezember Newsletter ein ganzes Werkzeugset inklusive eines Testhandelssystems für Ihre eigenen Projekte beisammen. Darüberhinaus beinhaltet der heutige Newsletter drei Indikatoren, die ich für eigene Untersuchungen entwickelt habe und die ich gerne mit Ihnen teilen möchte. Ein Indikator dient der Untersuchung von Kurslücken zur Markteröffnung und zwei andere wurden für Leistungstests einfacher Equilla Aufgaben geschrieben.

R-Tools Equilla Codes 11/2011 - Werkzeuge zur Handelssystementwicklung

Bitte nutzen Sie den Download Button, um das Tradesignal Equilla Paket zu laden. Tradesignal Online Nutzer können die Equilla Programme in diesem Forum herunterladen: R-Tools Newsletter Informationen auf TradesignalOnline.com

Werkzeuge zur Handelssystementwicklung

Wer selbst Handelssysteme entwickelt weiß sicher genau, wie zeitaufwendig und zum Teil frustrierend es sein kann, den langen Weg von einer Idee bis zum fertigen Setup im positiven Fall oder dem Verwurf der Idee im negativen Fall zu gehen. Eines der Hauptprobleme ist es aus meiner Sicht, die Setups für den Markteintritt so zu gestalten, dass sie auch in Backtests mit langen Kurshistorien und sehr vielen verschiedenen Marktszenarien bestehen können.Ergänzend zu den eigentlichen Handelsregeln werden deshalb einige Filterregeln eingefügt, die den Markteintritt in bestimmten Situationen unterbinden, um die Fehlerrate und den DrawDown zu reduzieren.  

Die folgenden vier Indikatoren helfen diese Filterregeln zu formulieren und biete dabei vor allen eine gute visuelle Unterstützung. Bei der Entwicklung dieser Indikatoren stand die flexible Konfiguration im Vordergrund, die beliebige Zeitebenen abdeckt und dabei trotzdem wenig Rechenlast verursacht.Für alle vier Indikatoren gelten die folgenden Konfigurationsmöglichkeiten. Erwähnt werden sollte noch, dass zur Reduzierung der Rechenlast bei der Berechnung von Indikatoren wann immer es möglich ist, auf exponentielle Glättungsverfahren zurückgegriffen wird. Zwei Beispiele sind Trend- und Volatilitätsfilter. In beiden Fällen wird an Stelle der arithmetischen Durchschnittsberechnung eine exponentielle Berechnungen durchgeführt, die mit zwei Operationen, unabhängig von der Berechnungsperiode, an Stelle von n-Operationen bei einer Berechnungsperiode n auskommen.   

Wahl der Zeitebene

An erster Stelle der Benutzereingaben steht eine Auswahlliste zur Wahl der Zeitebene. Damit kann gesteuert werden, mit welchen Kursdaten die Indikatoren berechnet werden sollen, ganz unabhängig von der Konfiguration des Basischarts. Sie können aus Minuten, Stunden, Tagen oder Wochen auswählen. Damit können die Indikatoren also mit Kursdaten der genannten zeitlichen Auflösung berechnet werden. Ein gleitender Durchschnitt basierend auf Tagesschlusskursen, der in einem beliebigen Intraday Chart dargestellt werden soll, lässt sich so ganz leicht realisieren.

Wahl der Zeiteinheiten je Berechnungsperiode

Mit der nächsten Option, der Auswahl einer Anzahl von Zeit- oder Kalendereinheiten wird es noch interessanter. Für die ausgewählte Zeitebene, zum Beispiel  Stunden können Sie hier eine Anzahl einstellen, die zu jeweils einer Periode kumuliert werden sollen. Damit lassen sich Perioden von 4 Stunden oder 23 Minuten oder 3 Tagen realisieren. Sicher wissen Sie, dass es die gleichen Möglichkeiten zur Konfiguration der Tradesignal Charts im Menü Periode bereits gibt. Der Unterschied ist, dass die hier definierten Perioden als Berechnungsbasis für die vier Indikatoren, im Hintergrund eingelesen werden und völlig unabhängig von der Konfiguration der Basischarts sind. Außerdem geht die Einstellung über die beiden Eingabefelder wesentlich schneller von der Hand, als über den genannten Dialog im Menü Periode.

Trend Analyse

Als Trendfilter wird ein exponentieller Durchschnitt für die gewählte Periode berechnet.Zusätzlich wird der Abstand zwischen Schlusskurs und Durchschnittskurs berechnet und kann mit dem Subchart Indikator angezeigt werden. Das so genannte Price Delta kann in Form absoluter Werte oder relativ zum aktuellen Kurs, als Prozentwert ausgegeben werden. Letzteres ist besonders dann sinnvoll, wenn die abgeleiteten Regeln für mehrere Märkte oder über lange Testzeiträume gelten sollen.

Volatilitäts-Analyse

Der Volatilitätsfilter wird als Durchschnitt der Periodenspannen berechnet. Für die Durchschnittsberechnung wird eine exponentielle Glättung angewendet. Hier ist der Hauptgrund für diese starke Vereinfachung des Begriffs Volatilität, dass andere Methoden deutlich mehr Rechenlast verursachen, die sich auf langen Testzeitreihen sehr unangenehm bemerkbar macht. Trotz der Vereinfachung ist diese Variante der Volatilitätsberechnung sehr gut geeignet, um in Handelssystemen als Filter oder auch zum Bestimmen von Stop Loss Order Preisen verwendet zu werden.

Momentum Analyse

Um den Begriff Momentum abbilden zu können wird auf den MACD Oszillator zurückgegriffen. Zum einen verbrauchen die exponentiellen Durchschnittsberechnungen, auf denen der Oszillator basiert wenig Rechenlast, zum anderen lassen sich mit dem MACD besonders viele Szenarien beschrieben, die über den Begriff Momentum weit hinaus gehen. Der MACD hilft zum Beispiel auch Schwäche im Trend zu erkennen oder Wendezonen zu bestimmen.

Effizienz Analyse

Unter Effizienz wird hier die zielgerichtete Kursentwicklung innerhalb eines erkennbaren Trends gemessen. Der Indikator analysiert, wie effizient sich die Kurse innerhalb der Berechnungsperiode entwickelt haben. Ein gutes Beispiel das hilft, die Funktion des Indikators zu verstehen ist ein Bergsteiger, der einen hohen Berg erklimmt. Zwischen der als Luftlinie gemessenen Entfernung zum Gipfel und dem tatsächlich nötigen Weg durch zahlreiche Täler um Gletscher herum vorbei an unpassierbaren Felswänden etc. liegt oft ein mehrfaches an Kilometern, die der Bergsteiger zurücklegen muss. Je nachdem, wie gut er diesen Weg plant und wie viele Hindernisse er durch sein Können bewältigen oder eben umrunden muss, bewegt er sich mehr oder weniger effizient.

Ähnlich funktioniert der Indikator Efficiency Ratio (EFF) der das Verhältnis zwischen dem Weg vom Anfang zum Endes des Berechnungszeitraumes als gerade Strecke und dem gleichen Weg, aufgelöst in die einzelnen Schlusskursstände abbildet. Je geradliniger die Kursbewegung abläuft, um so starker steigt der Indikator. Sie müssen dabei unbedingt beachten, dass die EFF keine Richtung anzeigt, sondern nur wie effizient oder eben ineffizient die Kursentwicklung innerhalb des Berechnungszeitraumes abgelaufen ist.

Analyse von Eröffnungslücken

Dieser Indikator ist das Produkt der allgegenwärtigen Frage "Wird das Gap geschlossen oder nicht?". Normalwer Weise ist man hier abhängig von den vielen Veröffentlichungen, die mit mehr oder weniger glaubhaften Prozentzahlen agieren.
 

Worum geht es genau?

Zwischen einzelnen Handelstagen klaffen oft große Lücken in den Kursstellungen, die als Gaps oder Over Night Gaps bezeichnet werden. Einige Ursachen für diese Preissprünge sind Nachrichten, die nach Handelsende veröffentlich wurden, besondere Entwicklungen im Late Night Handel oder an den Märkten in Fern Ost oder den USA. Diese Gaps sind zum einen gefürchtet, weil Stop Loss Orders nicht zum gewünschten Kurs ausgeführt werden können und das Positionsrisiko deshalb unscharf und vor allem problematisch hoch werden kann. Auf der anderen Seite sitzen Trader jeden Morgen zur Markteröffnung an Ihren Bildschirmen und hoffen auf markante Preissprünge, um Rücksetz- oder Fortsetzungsbewegungen zu handeln. Gaps bringen Volatilität in den Markt, die von vielen Händlern dankend angenommen wird.
 

Was leistet der Indikator?

Der Indikator kann in Intraday- und End of Day Charts, sowie im Scanner von Tradesignal eingesetzt werden. Er analysiert alle Kurslücken zwischen zwei Handelstagen, die größer als ein vorgegebener Schwellenwert sind. Die Analyse ergibt dann Informationen, wie viele Kurslücken es gab, wie viele dieser Lücken geschlossen wurden und wie viele dieser Lücken sogar gedreht werden konnten. Der Indikator betrachtet nur zwei aufeinanderfolgende Handelstage. Lücken die innerhalb eines Tages nicht geschlossen wurden, werden nicht weiter verfolgt. Der Schwellenwert kann in Prozent vom Vortageschlusskurs, zum Beispiel 0.75  oder als Bruchteil/Mehrfaches der Tagesvolatilität zum Beispiel 1.25 vorgegeben werden. Die Tagesvolatilität ist ein gleitender Durchschnitt der täglichen Handelsspannen.

Der Indikator liefert in Intraday Charts besonders viele visuelle Unterstützungen. Rote und grüne Hintergrundflächen zeigen an, wie lange eine Lücke offen ist. Eine gestrichelte Linie zeigt den Kurswert an, der erreicht werden muss, damit die Lücke als gedreht gilt. Ein Rahmen aus schwarzen Linien hebt die einzelnen Handelstage mit Höchst- und Tiefstkurs hervor.

Wir der Indikator im Scanner eingesetzt, liefert er drei Spalten, die von links nach Rechts die Auswertung für Alle Lücken, Aufwärtslücken und Abwärtslücken enthalten. Jede Spalte stellt dabei drei Informationen dar. Von lins nach rechts sind das die Anzahl aller Lücken, die Anzahl der geschlossenen Lücken und die Anzahl der gedrehten Lücken.
 
Gap Close
Eine Kurslücke gilt als geschlossen, wenn der Vortagesschlusskurs noch einmal erreicht wurde. Das heißt, die eigentliche Lücke muss komplett durchlaufen werden.

Gap Reverse
Eine Kurslücke gilt als gedreht, wenn nach dem Gap Close eine weitere Bewegung gegen die Lücke, um mindestens. 50% des Umfangs erfolgt. Bei einer Abwärtslücke muss der Markt also mindestens um die Hälfte des Umfangs der Kurslücke über den Vortagesschlusskurs steigen.

Equilla Performance Test

Die letzten beiden Indikatoren sind Produkt des "Leidens" eines Entwicklers, der gerne mal 10, 12 oder 16 Jahre Intraday Daten verwendet um ein Handelssystem zu testen. Die auflaufenden Wartezeiten summieren sich zu Stunden und das ständige Werten von 30, 60 oder mehr Sekunden für einen Chartdurchlauf zehrt besonders stark an den Nerven.

Das gesamte Testequipment an Indikatoren, Handelssystem-Modulen, Analysetools usw. wurde immer und immer wieder überarbeitet, um noch ein paar Sekunden und noch ein paar Sekunden Rechenzeit zu sparen.

Eine der wichtigsten Fragen dabei war immer, wie viel Rechenlast verursacht die Verwendung lokalen und globalen Variablen und Arrays. Die beiden Indikatoren helfen nun, genau diese Fragen zu beantworten. Eine unscheinbare Zeile im Ausgabefenster von Tradesignal enthält die Zeit in Minuten, Sekunden und hundertstel Sekunden, die für einen Durchlauf eines Indikators benötigt wird.

Der Performance Test

Bis auf den Unterschied, dass der Indikator ...Einzeln immer nur eine Variable oder ein Array Element liest und der Indikator ...Multi zehn Variablen oder zehn Array Elemente sind die Funktionen identisch.

Für jede Periode des Charts wird eine Schleife mit einer einstellbaren Anzahl von Durchläufen verarbeitet. In jedem Durchlauf kann Geschrieben, Gelesen oder Geschrieben und Gelesen werden. Das Ziel der Operationen kann aus Lokale Variable, Global Variable, Lokales Array oder Globales Array gewählt werden.

Nachdem Einfügen in einen Chart, bewirkt die Standard Einstellung, dass für jede Periode des Charts 1000 Durchläufe mit jeweils einer Leseoperation durchgeführt werden. Dabei wird einfach der Inhalt der Testvariable in eine zweite übertragen. Beim Schreiben wird der aktuelle Kurs in die Variable oder das Array Element geschrieben.

Ich bitte um Verständnis, dass ich hier keine detaillierten Auswertungen vorlege, da die verfügbare Zeit irgendwann zu Ende geht. Aber soviel zeigen meine eigenen Tests. Die Arrays in Equilla sind zwar praktisch bei der Verwaltung von größeren Datenmengen oder als Ersatz für große Mengen einzelner Variablen, aber Sie fressen überproportional viel Berechnungszeit, ja sind sogar echte Performance Bremsen.