intalus.de/tradesignal-howto In Zusammenarbeit mit 2 Herausgegeben ENTWICKLUNG EINER HANDELSSTRATEGIE. : Mit Equilla zum Trading-Erfolg. EQUILLA BASICS. 2 von Ausgabe 07
FINDEN SIE WEITERE TRADESIGNAL HOW TO UNTER: ZUSÄTZLICHE TRADING TIPS ZUR TECHNISCHEN ANALYSE UND ÜBER ALGORITHMIC TRADING FINDEN SIE HIER: www.intalus.de/trading-tips 2
ENTWICKLUNG EINER HANDELSSTRATEGIE. : Mit Equilla zum Trading-Erfolg. Nachdem wir uns im ersten Teil die wichtigsten Grundbegriffe und den Aufbau eines Quellcodes in Equilla angeschaut haben, wird nun die Erstellung einer einfachen Handelsstrategie vorgestellt. Hierbei gehen wir den Einsatz von Variablen und bedingungsabhängigen Abläufen ein. Lesen Sie, wie man mithilfe weniger Zeilen die 200-Tage-Linie als Kauf- und Verkaufssignale nutzen kann und wie ein ATR-Stop implementiert werden kann. basics www.traders-mag.com 09.2014 bb Variablen die Container für Daten 4 bb Bedingungsabhängige Abläufe 5 bb Step by step zur ersten Handelsstrategie 6 bb Implementierung eines Stopps 10 bb Ergebnisse des Backtests 14 bb Fazit 16 Mit Equilla zum Trading-Erfolg Teil 2: Entwicklung eines Handelssystems Nachdem wir im ersten Teil (TRADERS 07/2014) die wichtigsten Grundbegriffe und den Aufbau eines Quellcodes in Equilla angeschaut haben, wird nun die Erstellung eines einfachen Handelssystems vorgestellt. Hierbei gehen wir auf den Einsatz von Variablen und bedingungsabhängigen Abläufen ein. Lesen Sie, wie man mithilfe weniger Zeilen die 200-Tage-Linie als Kauf- und Verkaufssignale nutzen kann und wie ein ATR (Average True Range)-Stopp implementiert werden kann.» Variablen die Container für Daten den Tag Variables deklariert werden. Wichtig hierbei: Bevor wir mit der Erstellung des Handelssystems beginnen, möchten wir unsere Leser mit der Funktionsweise Skripts, weil nur dort der Zugriff auf die Variable Variablen gelten immer nur innerhalb des jeweiligen besteht. von Variablen vertraut machen. Sie sind es, die Zahlen, Berechnungsergebnisse, Benutzereingaben oder Kurswerte speichern und diese überhaupt erst für die Weiterverarbeitung und spätere Verwendung zugänglich machen. Variablen entstehen, indem sie im Skript durch Bedingungsabhängige Abläufe Neben Variablen gehören bedingungsabhängige Abläufe zu den zentralen Elementen eines Handelssystems. Sie bestimmen, welche Reaktion auf bestimmte Ereignisse HINWEIS: Der vorliegende Beitrag ist im TRADERS Magazin (Ausgabe 09/2014) erschienen. 64 3
VARIABLEN DIE CONTAINER FÜR DATEN. Bevor wir mit der Erstellung der Handelsstrategie beginnen, möchten wir unsere Leser mit der Funktionsweise von Variablen vertraut machen. Sie sind es, die Zahlen, Berechnungsergebnisse, Benutzereingaben oder Kurswerte speichern und diese überhaupt erst für die Weiterverarbeitung und spätere Verwendung zugänglich machen. Variablen entstehen, indem sie im Skript durch den Tag Variables deklariert werden. WICHTIG HIERBEI: Variablen gelten immer nur innerhalb des jeweiligen Skriptes, weil nur dort der Zugriff auf die Variable besteht. TEILEN SIE DIESE TRADESIGNAL HOW TO! 4
BEDINGUNGSABHÄNGIGE ABLÄUFE. Neben Variablen gehören bedingungsabhängige Abläufe zu den zentralen Elementen einer Handelsstrategie. Sie bestimmen, welche Reaktion auf bestimmte Ereignisse (z.b. Berechnungsergebnisse, Benutzereingaben) erfolgen soll. bb Einfache Bedingung (if then ): WENN Bedingung DANN mache a bb Bedingung mit Verzweigung (if then else ): WENN Bedingung DANN mache a, ANSONSTEN mache b Neben diesen beiden Grundformen können Bedingungen auch verschachtelt werden, wodurch mehrere Abfragen und Anweisungen durchgeführt werden. Wie solch eine verschachtelte Bedingung aussehen kann, wird im weiteren Verlauf anhand der Kaufund Verkaufsbefehle der Crossover-Handelsstrategie dargestellt. 5
STEP BY STEP ZUR ERSTEN HANDELSSTRATEGIE. Mithilfe der vordefinierten und Funktionen und Indikatoren können Tradesignal-User ihre individuelle Handelsstrategie schreiben. Wir möchten an dieser Stelle die allseits bekannte Crossover-Methode als Grundlage für solch eine Strategie nutzen. Fangen wir mit dem Kopfteil an. Hier wird eine kurze Beschreibung der Handelsstrategie angegeben, um bei einer Vielzahl unterschiedlicher Strategien schnell erkennen zu können, welcher Ansatz jeweils dahinter steht steht. Meta: Synopsis ("Diese Handelsstrategie handelt Überschneidungen des Kurses mit der 200-Tage-Linie. Sie kann sowohl long only, als auch als Long-Short-Variante genutzt werden. Der Initial Stopp basiert auf der ATR."); TEILEN SIE DIESE TRADESIGNAL HOW TO! 6
Weiter geht es mit dem Eingabebereich. Hier werden alle benutzerspezifischen Parameter (Inputs) sowie die eben besprochenen Variablen deklariert. Mit Price(Close) wird bestimmt, dass der Gleitende Durchschnitt auf Schlusskursbasis berechnet wird. Der Input Period(200,1) dient zur Eingabe der Periodenzahl. Die Zahl 1 bedeutet, dass nur ganzzahlige Änderungen dieses Parameters zugelassen werden. Zur Definition von bullishen und bearishen Signalen, die später über die Eingabemaske der Software modifiziert werden können, dienen die Inputs Bullish und Bearish. Jeder dieser Inputs bietet zwei Auswahlmöglichkeiten. So kann der User beim Input Bullish festlegen, ob ein Long-Einstieg oder ein Short-Ausstieg erfolgen soll. Analog dazu bietet der Input Bearish die Möglichkeiten des Long-Ausstiegs sowie des Short-Einstiegs. Mithilfe dieser Option können im späteren Backtest bequem alle Kombinationen durchgespielt werden. 7
Um Ein- und Ausstiegssignale im Chart anzeigen zu lassen, fügen wir Visuals als Input ein und stellen diesen standardmäßig auf Active, sodass der Gleitende Durchschnitt automatisch im Chart dargestellt wird. Inputs: Price(Close), Period(200,1), Bullish(LongEinstieg,ShortAusstieg)=LongEinstieg, Bearish(LongAusstieg,ShortEinstieg)=LongAusstieg, Visuals(Active,Inactive)=Active; Im nächsten Schritt kommen wir zu den Variablen, die im vorliegenden Script für die fortlaufende Berechnung und Speicherung der Werte des Gleitenden Durchschnitts verantwortlich sind. Die Variable avg greift dabei auf die bereits in Teil 1 vorgestellte Funktion AverageFC zurück, die einen einfachen Gleitenden Durchschnitt berechnet*. Sie greift hierbei auf die Inputs Price und Period zurück, die wir auf Close-Basis der letzten 200 Handelsperioden deklariert haben. Variables: avg, avtr; avg=averagefc(price,period); avtr=avgtruerange(14); * Möchte man dagegen den exponentiellen Durchschnitt verwenden, muss auf die Funktion XAverage zurückgegriffen werden. TEILEN SIE DIESE TRADESIGNAL HOW TO! 8
Der nachfolgende Programmteil enthält das eigentliche Herzstück der Handelsstrategie. Werfen wir zunächst einen Blick auf den ersten Teil, der für die bullishen Signale zuständig ist: If Price Crosses Over avg Then If Bullish = LongEinstieg Then Buy Next Bar at Market Else If Bullish=ShortAusstieg Then Cover Next Bar at Market; Wie man erkennen kann, ist die Befehlsstruktur relativ einfach zu verstehen. Schließt der zugrundeliegende Markt oberhalb der 200-Tage-Linie (..crosses over avg.. ), kommt die folgende Bedingung ins Spiel: Wenn der Input Bullish auf LongEinstieg eingestellt ist, dann erfolgt der Kauf des Wertpapiers per Market-Order zur nächsten Handelsperiode. Ist dieser dagegen auf ShortAusstieg eingestellt, erfolgt die Schließung (cover) einer vorhandenen Short-Position ebenfalls per Market-Order zur nächsten Handelsperiode. Die gleiche Struktur kommt nun beim Bearish-Modus zum Einsatz: If Price Crosses Under avg Then If Bearish=LongAusstieg Then Sell Next Bar at Market Else If Bearish=ShortEinstieg Then Short Next Bar at Market; 9
IMPLEMENTIERUNG EINES STOPPS. Zum Abschluss möchten wir noch einen einfachen Stopp zur Verlustbegrenzung implementieren. Konkret soll ein ATR-Stopp zum Einsatz kommen. Mithilfe der vorinstallierten Funktionen ist dies einfach umsetzbar. SetStopContract; SetStopLoss(LotSize*1*avtr[BarsSinceEntry]); Der Code berechnet den Stopp anhand der Stückzahl (LotSize), die mit der einfachen Average True Range (avtr) multipliziert wird. Die eckige Klammer sorgt dafür, dass der ATR-Wert zum Zeitpunkt des Einstiegs fixiert wird. Lotsize ist der Multiplikator des Futures pro Punkt, z.b. 25 beim DAX Future. Um zu definieren, dass der Stopp pro Future gilt und nicht für die Gesamtposition wird in der oberen Zeile SetStop- Contract hinzugefügt. Mithilfe der Funktion BarsSinceEntry lässt sich auch problemlos ein Zeitstopp einbauen. Für Long Positionen gilt: If MarketPosition=1 and BarsSinceEntry >=10 Then Sell next bar at low[barssinceentry] stop; TEILEN SIE DIESE TRADESIGNAL HOW TO! 10
Hier prüft das Programm zunächst, ob der Markt eine Long-Position hält (marketposition=1) und bereits mindestens 10 Handelsperioden seit dem Einstieg vergangen sind. Ist dies der Fall, wird die Position geschlossen, sobald der Markt unterhalb des Tiefs der Einstiegskerze schließt. Ist der Markt in einer Short-Position, gilt: If MarketPosition=-1 and BarsSinceEntry >=10 Then Cover next bar at high[barssinceentry] stop; Möchte man den Stopp nach 50 Handelsperioden auf Einstand ziehen, müsste der Ausstiegsbefehl wie folgt lauten: If MarketPosition=1 and BarsSinceEntry >=50 Then Sell next bar at entryprice stop; If MarketPosition=-1 and BarsSinceEntry >=50 Then Cover next bar at entryprice stop; 11
Zu guter Letzt möchten wir, dass der Gleitende Durchschnitt und die Stopps automatisch im Chart dargestellt werden. Mithilfe der beiden Grafikfunktionen DrawSymbol und DrawLine kann dies wie folgt in die Tat umgesetzt werden. If Visuals=Active Then begin DrawSymbol(GetActiveOrderPrice(1)); DrawLine(avg); End; Der vollständige Equilla Code ist auf Abbildung 1 (nächste Seite) zu sehen. TEILEN SIE DIESE TRADESIGNAL HOW TO! 12
Meta: Synopsis ("Diese Handelsstrategie handelt Überschneidungen des Kurses mit der 200-Tage-Linie. Sie kann sowohl long only, als auch als Long-Short-Variante genutzt werden. Der Initial Stopp basiert auf der ATR."); Inputs: Price(Close), Period(200,1), Bullish(LongEinstieg,ShortAusstieg)=LongEinstieg, Bearish(LongAusstieg,ShortEinstieg)=LongAusstieg, Visuals(Active,Inactive)=Active; Variables: avg, avtr; avg=averagefc(price,period); avtr=avgtruerange(14); If Price Crosses Over avg Then If Bullish = LongEinstieg Then Buy Next Bar at Market Else If Bullish=ShortAusstieg Then Cover Next Bar at Market; If Price Crosses Under avg Then If Bearish=LongAusstieg Then Sell Next Bar at Market Else If Bearish=ShortEinstieg Then Short Next Bar at Market; SetStopContract; SetStopLoss(LotSize*1*avtr[BarsSinceEntry]); If MarketPosition=1 and BarsSinceEntry >=50 Then Sell next bar at low[barssinceentry] stop; If MarketPosition=-1 and BarsSinceEntry >=50 Then Cover next bar at high[barssinceentry] stop; If Visuals=Active Then begin DrawSymbol(GetActiveOrderPrice(1)); DrawLine(avg); End; Abb. 1: Equilla Code Der vorliegende Equilla Code handelt Überkreuzungen des Kurses mit der 200-Tage-Linie und nutzt einen Initial Stop auf ATR-Basis. Quelle: Tradesignal 13
ERGEBNISSE DES BACKTESTS. Mit dem eben vorgestellten Handelssystem, können wir nun den ersten Praxistest durchführen. Hierzu kompilieren wir den Equilla-Code und ziehen ihn anschließend bequem per Drag and Drop in einen Chart unserer Wahl, zum Beispiel den DAX. Tradesignal visualisiert alle Ein- und Ausstiege im DAX-Chart sowie den entsprechenden Verlauf der Kapitalkurve. Die im Equilla Script deklarierten Inputs können bequem über die Werkzeugleiste modifiziert werden, die Ergebnisse sind sofort im Chart sichtbar. Möchte man also erfahren, ob sich auch der Handel der Short-Signale beim DAX ausgezahlt hätte, genügen nur wenige Klicks. Auch die Änderung der Periodenlänge lässt sich hier dank der im Code deklarierten Inputs bequem steuern. TEILEN SIE DIESE TRADESIGNAL HOW TO! 14
Abb. 2: Anwendung der Handelsstrategie auf den DAX (Long/Short Variante) Alle Ein- und Ausstiegssignale und Stopps werden im Chart visuell markiert, die Kurve darunter zeigt den historischen Verlauf der Kapitalkurve. Quelle: Tradesignal 15
FAZIT. Mit Tradesignal können Trader ohne große Programmierkenntnisse individuelle Handelsstrategien entwickeln und das eigene Trading auf eine solide Basis stellen. Mithilfe vordefinierter Funktionen lassen sich die eigenen Ideen in ein Script überführen und anschließend backtesten und optimieren. Die Formelsprache Equilla liefert hierfür zahlreiche Tools und Module, die dem Systementwickler das Leben einfacher machen. Mehr dazu im nächsten Teil unserer Equilla-Serie. TRADESIGNAL HOW TO. JETZT KOSTENLOS ABONNIEREN. Tragen Sie sich auf in den Verteiler ein und Sie erhalten jede Ausgabe pünktlich bei Erscheinen. TRADESIGNAL HOW TO. intalus.de 01 Ausgabe intalus.de/tradesignal-howto 03 Ausgabe POINT & FIGURE CHARTS FÜR EINSTEIGER. Die ultimativen Tools für profitable Investmententscheidungen. STRESSTESTING WIE ROBUST IST IHRE HANDELSSTRATEGIE? Richtig optimieren statt Curve Fitting. Herausgegeben von In Zusammenarbeit mit Herausgegeben von TEILEN SIE DIESE TRADESIGNAL HOW TO! In Zusammenarbeit mit 16
SPECIAL OFFER! 20% RABATT. FÜR IHREN AUFSTIEG. Erhalten Sie exklusiv als Tradesignal How To-Leser 20% Rabatt bei Bestellung eines TRADERS Jahresabonnements. TRADERS Ihr persönlicher Tradingcoach ist DAS Ausbildungsmagazin für den privaten Trader. Beziehen Sie 12 Monate lang das TRADERS zum Spezialpreis und lernen Sie alles, was Sie auf Ihrem Weg zum erfolgreichen Trader brauchen. JETZT BESTELLEN: http://traders-media.de/intalus.html 17 Tradesignal ist ein Produkt und eingetragene Marke der Tradesignal GmbH, Bremen www.tradesignal.com.
TRADESIGNAL HOW TO. 07 MIT EQUILLA ZUM TRADING-ERFOLG. PROFITIEREN SIE AUCH VON DIESEN TRADESIGNAL HOW TO PDFS & VIDEOS. intalus.de/tradesignal-howto intalus.de TRADESIGNAL Ausgabe 01 HOW TO. POINT & FIGURE CHARTS FÜR EINSTEIGER. POINT & FIGURE CHARTS FÜR EINSTEIGER. Die ultimativen Tools für profitable Investmententscheidungen. Die ultimativen Tools für profitable Investmententscheidungen. In Zusammenarbeit mit TRADESIGNAL HOW TO 01 Herausgegeben von 1 Ausgabe 05 EQUILLA BASICS. In Zusammenarbeit mit intalus.de/tradesignal-howto Ausgabe 06 TRADESIGNAL HOW TO 02 Neue Tools für noch mehr Bedienkomfort und effizienteres Arbeiten. Herausgegeben von Teil 1: Mit Equilla zum Trading-Erfolg. Herausgegeben von TRADESIGNAL HOW TO 06 WHAT S NEW IN TRADESIGNAL 7.7. WHAT S NEW IN TRADESIGNAL 7.3. Neue Tools für noch mehr Bedienkomfort und effizienteres Arbeiten. EQUILLA BASICS TEIL 1 TEIL 1: Mit Equilla zum Trading-Erfolg. In Zusammenarbeit mit Ausgabe WHAT S NEW IN TRADESIGNAL 7.3. TRADESIGNAL HOW TO 05 EQUILLA GRUNDLAGENWISSEN. EQUILLA GRUNDLAGENWISSEN. intalus.de/tradesignal-howto 02 1 WHAT S NEW IN TRADESIGNAL 7.7. Performanceanalyse von A bis Z, neue Indikatoren und frischer Look. In Zusammenarbeit mit Herausgegeben von Performanceanalyse von A bis Z, neue Indikatoren und frischer Look. intalus.de/tradesignal-howto Ausgabe 03 TRADESIGNAL HOW TO 03 STRESSTESTING WIE ROBUST IST IHRE HANDELSSTRATEGIE? STRESSTESTING WIE ROBUST IST IHRE HANDELSSTRATEGIE? Richtig optimieren statt Curve Fitting. In Zusammenarbeit mit Richtig optimieren statt Curve Fitting. Herausgegeben von MEHR HOW TO IM ARCHIV UNTER: intalus.de/tradesignal-howto Ausgabe 04 TRESSTESTING WIE ROBUST IST IHRE ANDELSSTRATEGIE? WHAT S NEW IN TRADESIGNAL 7.6. Erweiterte Auswertungsmöglichkeiten zur Risiko- und Ertragsmessung, Kategorie-Tags und neue Indikatoren. In Zusammenarbeit mit TEILEN SIE DIESE TRADESIGNAL HOW TO! Herausgegeben von TRADESIGNAL HOW TO 04 WHAT S NEW IN TRADESIGNAL 7.6. Erweiterte Auswertungsmöglichkeiten zur Risiko- und Ertragsmessung, Kategorie-Tags und neue Indikatoren. 18
intalus.de TR DING TIPS. 17 Ausgabe MIT VIDEO WOLKENKRATZER. China World Trade Center Tower III, Beijing. Mit 330 Metern das zur Zeit höchste Gebäude in Beijing. KAUF- UND VERKAUFSSIGNALE, POSITIONSGRÖSSE UND STOPPS. TEIL 1: Die Toolbox für den Trader. INKLUSIVE ARBEITSBEREICH ZUM DOWNLOAD. TIPP: Interessierte Leser können auf www.intalus.de/trading-tips wertvolle Informationen und Praxistipps zum Thema Equilla und Tradesignal downloaden kostenlos als PDF oder Video. Jeden Monat neu! Herausgegeben von In Zusammenarbeit mit 2015 Intalus www.intalus.de Dieses Werk bzw. dessen Inhalt steht unter einer Creative Commons Namensnennung-Nicht-kommerziell 3.0 Unported Lizenz: http://creativecommons.org/licenses/by-nc/3.0/deed.de Tradesignal und die Formelsprache Equilla sind Produkte und eingetragene Marken der Tradesignal GmbH. Nicht autorisierte Nutzung oder Missbrauch ist ausdrücklich verboten. Alle weiteren auf diesen Seiten genannten und ggf. durch Dritte geschützten Marken- und Warenzeichen unterliegen uneingeschränkt den Bestimmungen des jeweils gültigen Kennzeichenrechts und den Besitzrechten der jeweiligen eingetragenen Eigentümer. 19
DEN HÖCHSTEN BERG ERKLIMMT MAN NICHT AN EINEM TAG. Machen Sie sich fit für den Aufstieg mit Workshops von Intalus. ALLE INFOS UNTER: www.intalus.de/workshops