prorealtime erlaubt ihnen das erstellen von ... · die trading-systeme können auf zweierlei weisen...

97
ProRealTime erlaubt Ihnen das Erstellen von Handelssystemen, die Sie backtesten und im automatisierten Tradingmodus ausführen können. Um über alle Neuheiten informiert zu sein, können Sie uns auf Google+ folgen. V 5.1.2 – 20170831

Upload: others

Post on 24-Sep-2019

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

ProRealTime erlaubt Ihnen das Erstellen von Handelssystemen, die Sie backtestenund im automatisierten Tradingmodus ausführen können.

Um über alle Neuheiten informiert zu sein, können Sie uns auf Google+ folgen.

V 5.1.2 – 20170831

Page 2: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

INHALTSVERZEICHNIS

Einführung_______________________________________________________6

Öffnen des Moduls zum Erstellen von Handelssystemen............................................6

Das Fenster zum Erstellen von Handelssystemen.......................................................7

Tastatur-Shortcuts.........................................................................................................................8

Programmierung von Handelssystemen______________________________9

Hinweise zur Programmiersprache ProBuilder.............................................................9

Ein- bzw. Ausstieg aus dem Markt................................................................................................9

Stops und Targets.......................................................................................................12

Schützende Stops.......................................................................................................................12

Limit Profit (Targets)....................................................................................................................12

Trailing Stops...............................................................................................................................13

Verwendung von "Set Target" / "Set Stop" mithilfe der bedingungsabhängigen Anweisung "IF"13

Multiple Stop und Target-Levels..................................................................................................14

Anhalten eines Handelssystems mittels QUIT............................................................17

Verfolgen der Positionen.............................................................................................17

Variablen zum Positionszustand..................................................................................................17

Größe der Position......................................................................................................................18

TradeIndex...................................................................................................................................18

TradePrice...................................................................................................................................18

PositionPerf.................................................................................................................................19

PositionPrice................................................................................................................................19

StrategyProfit...............................................................................................................................19

Definition der Parameter zur Ausführung von Handelssystemen...............................20

Order-Kumulierung......................................................................................................................20

PreLoadBars................................................................................................................................21

FlatBefore und FlatAfter..............................................................................................................22

NoCashUpdate (nur beim Backtest)............................................................................................22

MinOrder und MaxOrder (nur beim Backtest).............................................................................22

Einbeziehung von Indikatoren.....................................................................................23

ProRealTime Indikatoren.............................................................................................................23

Persönliche Indikatoren...............................................................................................................23

Ratschläge zum Programmieren.................................................................................23

Verringerung der einbezogenen Anzahl von Indikatoren............................................................23

Einbeziehung persönlicher Indikatoren.......................................................................................24

ProBacktest – Simulation von Handelssystemen______________________27

Money Management....................................................................................................28

Startkapital...................................................................................................................................28

Brokergebühren und Risiko-Verwaltung......................................................................................28

Page 3: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Optimierung von Variablen..........................................................................................30

Festlegung des Zeitraums bei der Backtest-Durchführung........................................32

Anpassen von Handelszeiten beim Backtesting.........................................................32

Gründe für das Anhalten eines ProBacktests.............................................................34

Anzeige von Variablenwerten im Backtest (ab ProRealTime v10.2)..........................35

Die Walk Forward-Methode________________________________________36

Praktisches Beispiel....................................................................................................37

ProOrder Automatisiertes Trading__________________________________41

Vorbereitung eines Handelssystems zur automatischen Ausführung.........................42

Starten eines Handelssystems in ProOrder und Überprüfen der Ergebnisse............44

Parameter zum automatisierten Trading und Bedingungen zur Ausführung..............48

Einstellungen beim Handelssystem............................................................................................48

Automatisches Anhalten von Handelssystemen.........................................................................49

Gleichzeitiges Ausführen von manuellem und automatischem Trading.....................50

Ausführen mehrerer Handelssysteme bei demselben Instrument..............................51

Einschränkungen bei Indikatoren................................................................................52

Hinweis in Bezug auf individuell angepasste Zeitzonen und Handelszeiten..............52

Anhang A: Anzeige der Ergebnisse_________________________________53

Gewinn- und Verlust-Kurve (Equity Curve).................................................................53

Kurve der einzelnen Positionen..................................................................................54

Detaillierter Bericht......................................................................................................55

Anhang B: Beispiele von Programmiercodes_________________________59

Auf Heikin Ashi basierendes Handelssystem..............................................................................59

Auf dem ZigZag basierendes Handelssystem.............................................................................60

Handelssystem Breakout Range System mit Trailing Stop.........................................................61

Auf dem geglätteten Stochastik basierendes Handelssystem....................................................62

Swing Trading, ADX und Gleitender Durchschnitt.......................................................................63

Handelssystem mit einem Positionszähler..................................................................................64

Handelssystem mit TRADEINDEX – Find inside bar..................................................................65

Money Management Handelssysteme........................................................................66

Schützende Stops und Profit Targets..........................................................................................66

Inaktivitätsstops...........................................................................................................................66

Orderkumulierung – Hinzufügen von Kontrakten zu einer bestehenden Position......................67

Klassische Martingale..................................................................................................................68

Große Martingale.........................................................................................................................69

Piquemouche...............................................................................................................................70

Die Progression d'Alembert.........................................................................................................71

Page 4: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Die Annulation d'Alembert...........................................................................................................72

Anhang C: Detailliertes Beispiel eines Handelssystems________________73

Präsentation des automatisierten Handelssystems "Breakout ProOrder"..................74

Ergebnisse des Handelssystems (von 2008 bis 2015)...............................................75

Die dem Handelssystem zugrundeliegenden Ideen...................................................76

Idee Nr. 1: Breakout bei 30 Minuten............................................................................................76

Idee Nr. 2: Höchstens 2 Positionen pro Tag eröffnen..................................................................77

Idee Nr. 3: Risikobeschränkung mittels eines Maximalabstands zwischen beiden Niveaus......78

Idee Nr. 4: Erhöhung der Chancen einer günstigen Orderausführung.......................................79

Idee Nr. 5: Zum Vermeiden falscher Signale nur bei eindeutigen Breakouts handeln................80

Idee Nr. 6: Keine Positionseinnahme, sollte nicht ausreichend Zeit übrig sein...........................81

Programmcode des Handelssystems "Breakout ProOrder".......................................82

Testen eines Handelssystems / Programmcodes.......................................................84

Virtuelles Portfolio (PaperTrading)..............................................................................................84

Echter Trading-Modus.................................................................................................................84

Glossar_________________________________________________________85

Hinweis: ProRealTime bietet keinerlei Dienstleistungen im Bereich finanzieller Investitionen. Indiesem Dokument zur Verfügung stehende Informationen stellen in keiner Hinsicht eineInvestitionsberatung oder Aufforderung zum Kaufen oder Verkaufen irgendwelcherFinanzinstrumente dar.

Die in diesem Handbuch dargestellten Beispiele haben ausschließlich pädagogischen Charakter.Bei Ihrem persönlichen Trading sind Sie bei der Wahl Ihrer Kriterien absolut unabhängig.Historische Performance ist keinesfalls eine zuverlässige Kennzahl für zukünftige Performance undist nicht konstant.

Jedes Handelssystem kann Sie dem Risiko aussetzen, einen Ihre Einlage übersteigenden Verlustzu erleiden.

Page 5: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Einführung in die Programmierung von Handelssystemen mit ProRealTime v10

Diese Version des Handbuchs gilt für alle Versionen von ProRealTime ab Version 10.

Das Programmier-Tool von ProRealTime erlaubt das Erstellen von persönlichen Handelssystemen.

Die Handelssysteme können direkt programmiert oder mithilfe des Programmierassistenten (keineProgrammierkenntnisse nötig) erstellt werden.

Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden:

Als Backtest zur Überprüfung der entsprechenden Performance anhand von historischen Daten einesInstrumentes,

als automatisches Handelssystem innerhalb des Moduls ProOrder, mithilfe dessen die Order in Echtzeitbeim PaperTrading-Konto ausgeführt werden.

Die Erstellung der Handelssysteme basiert auf der Programmiersprache ProBuilder zusammen mitErweiterungen, die sich ausschließlich auf die Erstellung von Handelssystemen beziehen.

Sie können Einstiegs- und Ausstiegspunkte, Stops sowie Risikomanagement jedes Handelssystems auf derBasis von persönlichen Bedingungen festlegen:

Standardmäßig in Ihrer Workstation vorhandene oder von Ihnen selbst programmierte Indikatoren,

die in der Vergangenheit geleistete Performance Ihres Handelssystems,

Ihre letzten Orderaufträge.

Die Ergebnisse eines Handelssystems werden in folgender Form dargestellt:

'Gewinn- und Verlust-Kurve' (oder 'Equity Curve'), die den Status Ihres virtuellen Portfoliosentsprechend des angewendeten Handelssystems widerspiegelt,

Histogramm der Positionen (grün bei Kauf, rot bei Leerverkauf), Glattstellung und Phasen ohneTransaktionen (kein Balken),

Detaillierter Bericht, der die allgemeinen Statistiken Ihres Handelssystems in Bezug auf das Instrument,die Zeitperiode und den gewählten Zeitraum anzeigt.

Beim Backtest können weiterhin Variablen optimiert werden, um bei Ihrem Handelssystem diejenigenauszuwählen, die die besten Ergebnisse für das jeweilige Instrument und die gewählten Historien liefert.

Beim automatischen Trading werden die auf der Basis des Handelssystems ausgeführten Orderaufträge inIhrem Portfolio und in der Order-Liste angezeigt. Der Portfolio-Wert wird anhand der erzielten Gewinne bzw.Verluste aktualisiert.

Dieses Handbuch hat folgenden Aufbau: Der erste Teil erklärt die Funktionen zum Erstellen vonHandelssystemen. Der zweite Teil stellt die Programmieranweisungen ProBuilder dar. Der dritte Teil erläutertdie Simulation von Handelssystemen als ProBacktest. Der vierte Teil zeigt die Ausführung einesautomatischen Handelssystems. Der Anhang am Ende des Handbuches erklärt die Anzeige vonErgebnissen, stellt einige Programmierbeispiele vor sowie bietet ein Glossar zur ProgrammierspracheProBuilder.

Wir empfehlen Anfängern oder wenig erfahrenen Nutzern, sich zuerst das Video "Test Ihrer Strategien inder Vergangenheit ohne Programmieren eines Codes" anzusehen.

Die in diesem Handbuch vorgestellten Ideen sind ausschließlich dazu bestimmt, Ihnen das Programmierenvon Handelssystemen nahe zu bringen und Ihnen das Überprüfen Ihrer eigenen Ideen zu ermöglichen. Eshandelt sich hierbei keineswegs um Investitionsempfehlungen.

Wir wünschen Ihnen viel Erfolg bei Ihrem Trading und eine angenehme Lektüre!

V 5.1.2 – 20170831 www.prorealtime.com 5 / 97

Page 6: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Einführung

Einführung

Öffnen des Moduls zum Erstellen von Handelssystemen

Der Bereich zum Erstellen von Handelssystemen kann über die Schaltfläche 'Indikatoren undHandelssysteme' geöffnet werden, die sich rechts oben in jedem Chart-Fenster Ihrer ProRealTime-Workstation befindet.

Die Standardeinstellung des Verwaltungsfensters öffnet sich in der Registerkarte 'Indikatoren'; wählen Siedie zweite Registerkarte 'Handelssysteme & Automatisches Trading' aus. Sie können dort folgendes tun:

Bereits vorhandene Handelssysteme öffnen (vordefiniert oder individuell angepasst)

Neues Handelssystem erstellen und dieses anschließend auf jedes Instrument anwenden

Bestehendes Handelssystem verändern, löschen oder duplizieren

Handelssysteme importieren bzw. exportieren

V 5.1.2 – 20170831 www.prorealtime.com 6 / 97

Page 7: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Einführung

Das Fenster zum Erstellen von Handelssystemen

Das Fenster zum Erstellen von Handelssystemen besteht aus zwei Bereichen:Im linken Teil des Fensters befindet sich der Bereich zur Code-Erstellung (per Programmierung oder

mithilfe des Assistenten).Im rechten Teil des Fensters können die Bedingungen zur Ausführung des Handelssystems als Simulation

(ProBacktest) oder als automatische Trading-Ausführung (ProOrder) festgelegt werden. DetaillierteInformationen zum Konfigurieren von Handelssystemen finden Sie im dritten Teil dieses Handbuchs.

Der linke Bereich zur Programmierung ermöglicht Folgendes:Einen Indikator direkt im Editor-Fenster zu programmieren,die Hilfefunktion 'Funktionen einfügen' zu verwenden, über die ein neues Fenster mit der Bibliothek der

verfügbaren Programmieranweisungen geöffnet wird. Diese Anweisungen sind in unterschiedliche Kategorienuntergliedert, um Ihnen bei der Programmierung kontextbezogen zur Seite zu stehen. Sie finden dort weiterhinim unteren Teil des Fensters Hilfetexte in Bezug auf den gesuchten Befehls oder die gewählte Funktion.

V 5.1.2 – 20170831 www.prorealtime.com 7 / 97

Page 8: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Einführung

Beispiel:Lassen Sie uns die Bibliothek der Funktionen verwenden, indem wir auf 'Funktionen einfügen' klicken.

Klicken Sie zuerst auf den Bereich 'Handelssystem Anweisungen', dann rechts auf 'BUY' und abschließendauf die Schaltfläche 'Hinzufügen'. Der Befehl erscheint dann im Programmierfenster.

Lassen Sie uns jetzt eine vollständige Codezeile erstellen. Gehen wir z.B. davon aus, dass wir 10 Titel zumMarktpreis kaufen möchten.

Wir gehen in derselben Art wie oben beschrieben vor, um die folgenden Befehle in der vorgegebenenReihenfolge einzufügen: 'SHARES', 'AT' und 'MARKET' (trennen Sie die Worte jeweils durch ein Leerzeichen).

Geben Sie dann zwischen den Worten 'BUY' und 'SHARES' die Anzahl der Titel (10) ein, die Sie zumgewünschten Kurs kaufen möchten. Die fertige Anweisung zum Kauf von 10 Titeln zum Marktpreis siehtdann folgendermaßen aus: 'BUY 10 SHARES AT MARKET'.

Der folgende Bereich stellt die zur Verfügung stehenden Anweisungen für Handelssysteme vor. Wenn SieBeispiele kompletter Handelssysteme einsehen möchten, dann gehen Sie bitte zum Anhang B am Endedieses Handbuchs.

Tastatur-Shortcuts

In der Version 10 von ProRealTime verfügt das Fenster zum Erstellen von Handelssystemen über mehrerenützliche Funktionen, die mithilfe von Tastatur-Shortcuts verwendet werden können:

Alles auswählen (Strg+ A): Markiert den gesamten im Editor angezeigten Text

Kopieren (Strg + C): Kopiert den markierten Text

Einfügen (Strg + V): Fügt den kopierten Text ein

Rückgängig machen (Strg + Z): Macht die zuletzt im Editor getätigte Aktion rückgängig

Wiederholen (Strg + Y): Wiederholt die zuletzt im Editor getätigte Aktion

Suchen / Ersetzen (Strg + F): Sucht einen Text im Code-Editor / Ersetzt einen Text im Code-Editor(diese Funktion berücksichtigt Groß- und Kleinschreibung)

Kommentieren / Kommentar aufheben (Strg + R): Kommentiert den markierten Code / Hebt denKommentar-Status des markierten Codes auf (der kommentierte Code wird durch das vorherigeHinzufügen von " // " oder von "REM" sowie in grauer Farbe hervorgehoben). Der auf diese Weisegekennzeichnete Code wird bei der Ausführung nicht berücksichtigt.

MAC-Nutzer können dieselben Tastatur-Shortcuts benutzen. Es muss in diesem Fall nur die Taste "Strg"durch die "Apfel"-Taste ersetzt werden.

Die meisten dieser Shortcuts können auch mittels eines rechten Mausklicks innerhalb des Editor-Fenstersverwendet werden.

V 5.1.2 – 20170831 www.prorealtime.com 8 / 97

Page 9: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Programmierung von Hande lssyst emen

Programmierung von Handelssystemen

Hinweis: Die in diesem Handbuch dargestellten Beispiele haben ausschließlich pädagogischenCharakter. Bei Ihrem persönlichen Trading sind Sie bei der Wahl Ihrer Kriterien absolut unabhängig.Alle hier dargestellten Informationen haben „allgemeinen“ Charakter und enthalten auf keinen Fallirgendwelche Informationen oder individuelle Beratung oder irgendeine AufforderungFinanzinstrumente zu kaufen oder zu verkaufen. Historische Performance ist keinesfalls einezuverlässige Kennzahl für zukünftige Performance und ist nicht konstant. Jedes Handelssystemkann Sie dem Risiko aussetzen, einen Ihre Einlage übersteigenden Verlust zu erleiden.

Hinweise zur Programmiersprache ProBuilder

Wir empfehlen Ihnen zuerst die Lektüre des Programmierhandbuchs ProBuilder, in dem das Programmierenvon Indikatoren behandelt wird: Das vorliegende Handbuch versteht sich als eine Fortsetzung und stelltausschließlich ProBuilder-Anweisungen vor, die für Handelssysteme bestimmt sind.

ProBuilder ist die Programmiersprache von ProRealTime. Diese Sprache ist sehr einfach und bietetweitreichende Möglichkeiten. Sie basiert auf den folgenden Prinzipien:

Die Berechnungen werden am Ende jedes Balkens vollzogen. ProBuilder-Programme inklusiveHandelssysteme sowie deren einzelne Funktionen werden bei jedem Schließen eines Candlesticks erneutüberprüft, vom ältesten bis zum jüngsten.

Alle Anweisungen zum Platzieren von Orderaufträgen werden nach den Berechnungen hinsichtlich desaktuellen Candlesticks ausgeführt (dies bedeutet, dass die Orderaufträge frühestens bei Eröffnung desnächsten Candlesticks ausgeführt werden).

Ein- bzw. Ausstieg aus dem Markt

Folgende Anweisungen müssen je nach Richtung der entsprechenden Position unterschieden werden:

Long-Positionen

BUY: Anweisung zum Kauf (Einstieg Long)

SELL: Anweisung zum Verkauf (Ausstieg Long)

Die Anweisung BUY erlaubt das Eröffnen oder das Hinzufügen von Anteilen zu einer bereits eröffnetenPosition. Sie ist mit der Anweisung SELL verbunden, die das Schließen (oder Verkleinern) einer Positionermöglicht. Die Anweisung SELL hat keine Wirkung, wenn keinerlei Long-Position offen ist.

Short-Positionen

SELLSHORT: Anweisung zum Leerverkauf (Einstieg Short)

EXITSHORT: Anweisung zum Rückkauf einer Short-Position (Ausstieg Short)

Beide Anweisungen funktionieren auf symmetrische Weise mit BUY und SELL. Die Anweisung EXITSHORThat keine Wirkung, wenn keinerlei Short-Position geöffnet ist.

Das gleichzeitige Eröffnen von Long- und Short-Positionen bei demselben Instrument ist nicht möglich. Inder Praxis bedeutet dies, dass eine Long-Position mit einem SELLSHORT-Befehl oder eine Short-Positionmit einem BUY-Befehl geschlossen werden können.

Hinweis: Denken Sie daran, die maximale Größe der Position, die im Risiko-Management festgelegt wurde,zu überprüfen. Sollte die maximale Anzahl für dieses Instrument übertroffen werden, dann wird die Order zurGlattstellung abgewiesen und Sie bleiben mit der ursprünglichen Order im Markt.

Jeder dieser Befehle kann mit den folgenden Elementen verbunden werden, die wir Ihnen nun vorstellen werden:

<Order> <Anzahl> AT <Ordertyp>

V 5.1.2 – 20170831 www.prorealtime.com 9 / 97

Page 10: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Programmierung von Hande lssyst emen

Beispiel:BUY 1000 CASH AT MARKET oder SELL 1 SHARE AT 1,56 LIMIT

AnzahlEs gibt zwei Möglichkeiten zum Festlegen der zu investierenden Anzahl:

SHARES bezieht sich auf eine Einheit des Instruments: '1 Share' bedeutet 1 Aktie, 1 Kontrakt beiFutures bzw. 1 Lot bei Forex. Beachten Sie dabei, dass die Synonyme 'SHARES', 'CONTRACTS', 'LOT'bzw. 'LOTS' die gleiche Bedeutung haben und auf alle Instrumententypen angewendet werden können.Beim Forex wird die tatsächlich ausgeführte Anzahl mit der Größe eines Lots multipliziert. Ist die Anzahlnicht spezifisch angegeben, werden folgende Werte standardmäßig verwendet:

1 Einheit zum Eröffnen einer Position (Beispiel: BUY AT MARKET platziert die Order in einer Anzahlvon '1' zum Marktpreis),

die Gesamtanzahl zum Glattstellen einer Position (Beispiel: SELL AT MARKET stellt die ganzeLong-Position glatt).

CASH bezieht sich auf Transaktionen in Bargeld-Einheiten (wie € oder $) und kann ausschließlich beiAktien verwendet werden. Die Ordergröße wird beim Schließen des Balkens berechnet undstandardmäßig nach unten abgerundet. Broker-Gebühren werden bei der Berechnung des in Bar zukaufenden oder zu verkaufenden Anzahl nicht berücksichtigt.

Beispiel: BUY 1000 CASH AT MARKET

Die Anweisung ROUNDEDUP kann zum Aufrunden zur nächsthöheren Einheit verwendet werden.

Beispiel: BUY 1000 CASH ROUNDEDUP AT MARKET

OrderartEs stehen drei Arten der Orderausführung zur Verfügung:

AT MARKET: Die Order wird zum Marktpreis bei der Eröffnung des nächsten Balkens ausgeführt.

Beispiel: BUY 1 SHARE AT MARKET

AT <Preis> Eine Limit-Order wird zum angegebenen Preis ausgeführt.

AT <Preis> STOP: Eine Stop-Order wird zum angegebenen Preis ausgeführt.

Beispiel: BUY 1 SHARE AT 10.5 LIMIT

Limit- und Stop-Order sind für die Dauer eines Balkens ab der Eröffnung des nächsten Balkensgültig. Sie werden daher beim Schließen des Balkens annulliert, sollten sie nicht ausgeführt wordensein.

Hierbei handelt es sich um Ordertypen mit einem Ausführungslevel, die nicht mit den schützenden Stops undLimit-Profits ('SET STOP', 'SET TARGET': siehe weiter unten) verwechselt werden dürfen, die mit eineroffenen Positionen verbunden sind und bis zum Schließen dieser Position gültig sind.

Gewisse Ordertypen können als Markt-Orders unter folgenden Bedingungen behandelt werden:

Sollte der Preis der Limit-Order (ebenso beim Stop) im Fall einer Kauf-Order (BUY) höher (bzw.niedriger beim Stop) als der aktuelle Kurs sein, dann wird diese wie eine Marktorder ausgeführt.

Die umgekehrte Weise ist ebenso gültig: Sollte der Preis einer Limit-Order im Fall einer Leerverkauf-Order (SELLSHORT) unterhalb des aktuellen Kurses liegen (bzw. höher bei einem Stop), dann wird dieseauch als Marktorder ausgeführt.

V 5.1.2 – 20170831 www.prorealtime.com 10 / 97

Page 11: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Programmierung von Hande lssyst emen

Beispiel:

Das folgende Programm kauft 1 Einheit zum Marktpreis, wenn sich der RSI in einer Überverkauf-Zone befindet(RSI < 30) und der Preis unterhalb des unteren Bollinger Bandes verläuft. Wenn sich der RSI in einer Überkauf-Zone befindet (RSI > 70) und der Kurs oberhalb des oberen Bollinger Bandes notiert, dann wird verkauft.

MyRSI = RSI[14](Close)MyBollingerDown = BollingerDown[25](Close)MyBollingerUp = BollingerUp[25](Close)

IF MyRSI < 30 AND Close < MyBollingerDown THEN BUY 1 SHARE AT MARKETENDIFIF MyRSI > 70 AND Close > MyBollingerUp THEN SELL AT MARKETENDIF

Sie können die Gültigkeitsdauer Ihrer Stop- und Limit-Order festlegen.

Das folgende Beispiel veranschaulicht den Gebrauch von gewissen Variablen, um die Gültigkeitsdauer einerLimit-Order festzulegen. Die Gültigkeitsdauer wird in Anzahl von Balken festgelegt. Der Code in diesemBeispiel platziert eine Kauf-Limit-Order zum Schlusskurs des Balkens, bei dem es zu einer Kreuzung vonzwei Gleitenden Durchschnitten kommt. Die Limit-Order hat eine Gültigkeit von 10 Balken nach demKreuzen. Wird sie nicht innerhalb dieses Zeitraums ausgeführt, wird sie annulliert.

Beispiel:// Festlegung der Gültigkeitsdauer der OrderONCE NbBarLimit = 10

MM20 = Average[20](close)MM50 = Average[50](close)// Wenn der GD20 den GD50 steigend kreuzt, legen wir zwei Variablen fest: "MyLimitBuy"und "MyIndex", die entsprechend den aktuellen Schlusskurs und den Index des von derKreuzung betroffenen Balkens enthalten.IF MM20 CROSSES OVER MM50 THEN MyLimitBuy = close MyIndex = BarindexENDIF

IF BarIndex >= MyIndex + NbBarLimit THEN MyLimitBuy = 0 ENDIF// Platziert eine Order zum Preis des entsprechenden MyLimitBuys; gültig solange dieseVariable höher als 0 ist und wir uns nicht in einer Long-Position befinden.// Bemerkung: MyLimitBuy ist höher als 0 über den Zeitraum von 10 Balken nach dem KreuzenIF MyLimitBuy > 0 AND NOT LongOnMarket THEN BUY 1 SHARES AT MyLimitBuy LIMITENDIF

Wird eine Order nicht ausgeführt, dann kann die Limit-Kauf-Order durch eine Market-Kauf-Order ersetztwerden. Dieses kann durch das Hinzufügen des folgenden Absatzes erreicht werden:IF MyIndex + NbBarLimit AND MyLimitBuy > 0 AND NOT LongOnMarket THEN BUY 1 SHARES AT MARKETENDIF

V 5.1.2 – 20170831 www.prorealtime.com 11 / 97

Page 12: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Programmierung von Hande lssyst emen

Stops und Targets

ProBuilder erlaubt Ihnen auch das Festlegen von Targets und schützenden Stops. Die zu verwendendeSyntax sieht folgendermaßen aus:

SET STOP <Art> <Wert> oder SET TARGET <Art> <Wert>Beispiel:SET STOP %LOSS 2 // Platziert einen Stop Loss bei 2%

Alle verfügbaren Varianten werden weiter unten beschrieben.

Die Unterscheidung zwischen den verschiedenen STOP-Orders ist wichtig:

AT <Preis> STOP dient zum Eröffnen einer Position. Diese Order ist für einen Balken gültig.

SET STOP LOSS <Preis> dient zum Festlegen eines schützenden Stops, also zum Schließeneiner offenen Position. Diese Order ist bis zum Schließen der Position gültig.

Schützende Stops

Schützende Stops (Stop Loss) erlauben das Einschränken von Verlusten bei einer Position. Sie können inrelativer oder in absoluter Weise festgelegt werden:

SET STOP LOSS x: Die Position wird geschlossen, sobald sich der Preis in einer Entfernung von xEinheiten vom Einstiegspreis befindet.

SET STOP pLOSS x: Ein schützender Stop wird in einer Entfernung von x Punkten vom Einstiegspreisplatziert.

SET STOP %LOSS x: Die Position wird geschlossen, sobald der Preis um x% abweicht (in der Richtungeines Verlustes); Brokergebühren werden hierbei nicht berücksichtigt.

SET STOP $LOSS x: Die Position wird geschlossen, sobald der Verlust die Höhe von x €,$ erreicht (in derWährung des Instruments); Brokergebühren werden hierbei nicht berücksichtigt.

Anzahl und Richtung (Ausstieg Long oder Ausstieg Short) der schützenden Stop-Ordern werden automatischin Bezug auf die offene Position angepasst. Schützende Stops sind mit einer Position verbunden. Ein StopLoss wird beim Schließen der Position deaktiviert und erst beim Eröffnen einer neuen Position reaktiviert.

Mit dem folgenden Befehl kann ein Stop Loss deaktiviert werden:SET STOP LOSS 0, SET STOP pLOSS 0, SET STOP %LOSS 0, SET STOP $LOSS 0

Limit Profit (Targets)

Mit dieser Anweisung können Sie Ihre Position glattstellen, wenn die Gewinne einen vorher festgelegtenWert erreichen.

SET TARGET PROFIT x: Die Position wird geschlossen, sobald sich der Preis in einer Entfernung von xEinheiten vom Einstiegspreis befindet (Richtung eines Gewinns).

SET TARGET pPROFIT x: Eine Limit-Order wird in einem Abstand von x Punkten vom Einstiegspreisplatziert.

SET TARGET %PROFIT x: Die Position wird geschlossen, sobald der Preis um x% abweicht (Richtungeines Gewinns); Brokergebühren werden hierbei nicht berücksichtigt.

SET TARGET $PROFIT x: Die Position wird geschlossen, sobald die Gewinne bei der Position eine Höhevon x €,$ erreichen (Währung des Instrumentes); Brokergebühren werden hierbei nicht berücksichtigt.

Anzahl und Richtung (Ausstieg Long oder Ausstieg Short) werden bei Limit Profit Ordern automatisch in Bezugauf die offene Position angepasst. Alle Profit Targets sind mit einer Position verbunden. Eine Limit Profit Orderwird beim Schließen der Position deaktiviert und erst beim Eröffnen einer neuen Position reaktiviert.

Mit den folgenden Anweisungen kann ein Limit Profit innerhalb des Codes deaktiviert werden:SET TARGET PROFIT 0, SET TARGET pPROFIT 0, SET TARGET %PROFIT 0, SET TARGET $PROFIT 0

V 5.1.2 – 20170831 www.prorealtime.com 12 / 97

Page 13: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Programmierung von Hande lssyst emen

Trailing Stops

Ein Trailing Stop ist eine Stop-Order, bei der sich der Ausführungspreis in Bezug auf die Kursentwicklungverändert. Bei Long-Positionen steigt das Stop-Level an, solange der Preis ansteigt. Sobald der Kurs fällt,bleibt das Ausführungslevel des Stop unverändert. Bei Short-Positionen funktioniert der Trailing Stop aufumgekehrte Weise.

Wie bei den schützenden Stops können Trailing Stops in relativer oder in absoluter Weise festgelegt werden:

SET STOP TRAILING y: Der Trailing Stop wird in einer Entfernung von y Einheiten vom Einstiegspreisplatziert.

SET STOP pTRAILING y: Der Trailing Stop wird in einer Entfernung von y Punkten vom Einstiegspreisplatziert.

SET STOP %TRAILING y: Der Trailing Stop wird in einer Entfernung von y % vom aktuellen Preis platziert;Brokergebühren werden hierbei nicht berücksichtigt.

SET STOP $TRAILING y: Der Trailing Stop wird in einer Entfernung von y €,$ (Währung des Instrumentes)vom aktuellen Preis platziert; Brokergebühren werden hierbei nicht berücksichtigt.

Anzahl und Richtung (Ausstieg Long oder Ausstieg Short) werden bei Trailing Stop Ordern automatisch inBezug auf die offene Position angepasst. Alle Trailing Stops sind mit einer Position verbunden. Ein TrailingStop wird beim Schließen der Position deaktiviert und erst beim Eröffnen einer neuen Position reaktiviert.Verändert sich die assoziierte Menge der Position (z.B. durch Zukauf), wird das Niveau des Stopsreinitialisiert.

Mit den folgenden Anweisungen kann ein Trailing Stop innerhalb des Codes deaktiviert werden:SET STOP TRAILING 0, SET STOP pTRAILING 0, SET STOP %TRAILING 0, SET STOP $TRAILING 0

Beispiel:

Sie eröffnen eine Position beim DAX bei 6000 und platzieren einen Trailing Stop in einer Entfernung von 50Einheiten (50 Punkten):SET STOP pTRAILING 50

Der Stop wird zunächst bei 5950 platziert. Steigt der Kurs bis zu 6010 und fällt dann auf 5980, dann steigtder Stop zunächst um 10 Punkte bis auf 5960 und bleibt dann unverändert, bis der Kurs 6010 übersteigt.Sollte der Kurs auf 5960 fallen, wird der Stop ausgelöst.

Verwendung von "Set Target" / "Set Stop" mithilfe der bedingungsabhängigen Anweisung "IF"

Es ist auch möglich mithilfe von bedingungsabhängigen "IF"-Anweisungen auf der Basis eigenerBedingungen die Art des Stop oder Targets umzuwandeln:

Beispiel:REM Verwenden eines Stop Loss bei 10%, wenn der Gewinn des vorherigen Trades mindestens10% beträgt; ansonsten einen Stop Loss bei 5% setzen.

IF PositionPerf(1) > 0.1 THEN

SET STOP %LOSS 10

ELSE

SET STOP %LOSS 5

ENDIF

V 5.1.2 – 20170831 www.prorealtime.com 13 / 97

Page 14: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Programmierung von Hande lssyst emen

Multiple Stop und Target-Levels

Es können unter normalen Bedingungen gleichzeitig nur jeweils eine "Set Stop" und eine "Set Target"-Anweisung aktiviert sein. Sollten in einem Code mehrere "Set Stop" oder "Set Target"-Anweisungenaufeinander folgen, dann ersetzt der letzte Befehl den vorherigen Befehl.

Beispiele:SET STOP %LOSS 10 // Platziert einen Stop Loss bei 10%

SET TARGET PROFIT 50 // Platziert einen Take Profit bei 50 Einheiten

SET TARGET %PROFIT 5 // Löscht das vorherige Target bei 50 Einheiten und ersetzt es durchein Take Profit bei 5%

SET STOP %TRAILING 2 // Löscht den vorherigen Stop Loss bei 10% und ersetzt es durch einTrailing Stop bei 2%

Es ist auch möglich, einen Stop zum Festpreis mit einem Trailing Stop bzw. einen Stop Loss mit einemTrailing Stop mithilfe einer einzigen Anweisung zu verbinden:

SET STOP <Ordertyp*> <Wert> <TrailingTyp> <Wert>

Festpreis Trailing*Fakultativ

Ordertyp: Loss, pLOSS, %LOSS, $LOSS

TrailingTyp: TRAILING, pTRAILING, %TRAILING, $TRAILING

Diese Anweisung würde entsprechend folgendermaßen aussehen:SET STOP [LOSS/pLOSS/$LOSS/%LOSS] <Wert> [TRAILING/pTRAILING/$TRAILING/%TRAILING] <Wert>

Beispiele:

SET STOP LOSS x TRAILING y: Es wird ein Stop Loss in einer Entfernung von x Einheiten erstellt, der zueinem Trailing Stop in einer Entfernung von y Einheiten wird, sobald die Entfernung des Trailing Stop Levelszum aktuellen Preis kürzer ist als jene des Stop Loss (wenn sich der Preis zwischen y Einheiten - x Einheitenpositiv verändert).

SET STOP LOSS x pTRAILING y: Es wird ein Stop Loss in einer Entfernung von x Einheiten erstellt, der zueinem Trailing Stop in einer Entfernung von y Einheiten wird, sobald die Entfernung des Trailing Stop Levelszum aktuellen Preis kürzer ist als jene des Stop Loss (wenn sich der Preis zwischen y Einheiten - x Einheitenpositiv verändert)

SET STOP LOSS x $TRAILING y: Es wird ein Stop Loss in einer Entfernung von x Einheiten erstellt, der zueinem Trailing Stop von y $ oder € (in der Währung des Instrumentes), sobald die Entfernung des TrailingStop Levels zum aktuellen Preis kürzer ist als jene des Stop Loss.

SET STOP LOSS x %TRAILING y: Es wird ein Stop Loss in einer Entfernung von x Einheiten erstellt, der zueinem Trailing Stop von y Prozent wird, sobald die Entfernung des Trailing Stop Levels zum aktuellen Preiskürzer ist als jene des Stop Loss.

V 5.1.2 – 20170831 www.prorealtime.com 14 / 97

Page 15: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Programmierung von Hande lssyst emen

SET STOP pLOSS x TRAILING y: Es wird ein Stop Loss in einer Entfernung von x Punkten erstellt, der zueinem Trailing Stop in einer Entfernung von y Einheiten wird, sobald die Entfernung des Trailing Stop Levelszum aktuellen Preis kürzer ist als die Entfernung zum Stop Loss Level (dies passiert, wenn der aktuelle Preispositiv zwischen y Einheiten - x Punkten variiert).

SET STOP pLOSS x pTRAILING y: Es wird ein Stop Loss in einer Entfernung von x Punkten erstellt, der zueinem Trailing Stop in einer Entfernung von y Punkten wird, sobald die Entfernung des Trailing Stop Levelszum aktuellen Preis kürzer ist als die Entfernung zum Stop Loss Level (dies passiert, wenn der aktuelle Preispositiv zwischen y Punkten - x Punkten variiert).

SET STOP pLOSS x $TRAILING y: Es wird ein Stop Loss in einer Entfernung von x Punkten erstellt, der zueinem Trailing Stop von y $ oder € (in der Währung des Instrumentes), sobald die Entfernung des TrailingStop Levels zum aktuellen Preis kürzer ist als jene des Stop Loss.

SET STOP pLOSS x %TRAILING y: Es wird ein Stop Loss in einer Entfernung von x Punkten erstellt, der zueinem Trailing Stop von y Prozent wird, sobald die Entfernung des Trailing Stop Levels zum aktuellen Preiskürzer ist als jene des Stop Loss.

SET STOP $LOSS x TRAILING y: Es wird ein Stop Loss zum Preis von x $ oder € (in der Währung desInstrumentes) erstellt, der zu einem Trailing Stop von y Einheiten wird, sobald die Entfernung des TrailingStop Levels zum aktuellen Preis kürzer ist als die Entfernung zum Stop Loss Level.

SET STOP $LOSS x pTRAILING y: Es wird ein Stop Loss zum Preis von x $ oder € (in der Währung desInstrumentes) erstellt, der zu einem Trailing Stop von y Punkten wird, sobald die Entfernung des TrailingStop Levels zum aktuellen Preis kürzer ist als die Entfernung zum Stop Loss Level.

SET STOP $LOSS x $TRAILING y: Es wird ein Stop Loss zum Preis von x $ oder € (in der Währung desInstrumentes) erstellt, der zu einem Trailing Stop von y $ oder € (in der Währung des Instrumentes) wird,sobald die Entfernung des Trailing Stop Levels zum aktuellen Preis kürzer ist als die Entfernung zum StopLoss Level.

SET STOP $LOSS x %TRAILING y: Es wird ein Stop Loss zum Preis von x $ oder € (in der Währung desInstrumentes) erstellt, der zu einem Trailing Stop von y Prozent wird, sobald die Entfernung des TrailingStop Levels zum aktuellen Preis kürzer ist als die Entfernung zum Stop Loss Level.

SET STOP %LOSS x TRAILING y: Es wird ein Stop Loss von x% erstellt, der zu einem Trailing Stop von yEinheiten wird, sobald die Entfernung des Trailing Stop Levels zum aktuellen Preis kürzer ist als dieEntfernung zum Stop Loss Level.

SET STOP %LOSS x pTRAILING y: Es wird ein Stop Loss von x% erstellt, der zu einem Trailing Stop von yPunkten wird, sobald die Entfernung des Trailing Stop Levels zum aktuellen Preis kürzer ist als dieEntfernung zum Stop Loss Level.

SET STOP %LOSS x $TRAILING y: Es wird ein Stop Loss von x% erstellt, der zu einem Trailing Stop zumPreis von y $ oder € (in der Währung des Instrumentes) wird, sobald die Entfernung des Trailing Stop Levelszum aktuellen Preis kürzer ist als die Entfernung zum Stop Loss Level.

SET STOP %LOSS x %TRAILING y: Es wird ein Stop Loss von x% erstellt, der zu einem Trailing Stop von y%wird, sobald die Entfernung des Trailing Stop Levels zum aktuellen Preis kürzer ist als die Entfernung zum StopLoss Level.

V 5.1.2 – 20170831 www.prorealtime.com 15 / 97

Page 16: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Programmierung von Hande lssyst emen

Beispiel 1:

SET STOP LOSS x TRAILING y

Es wird ein Stop in einer Entfernung von x Einheiten vom durchschnittlichen Positionspreis platziert; dieser wirdzu einem Trailing Stop in einer Entfernung von y Einheiten, sobald das Level des Trailing Stops dem aktuellenKurs näher liegt als das Stop Loss Level.

Wenn Sie z.B. eine Long-Position beim DAX Future bei 6500 eröffnen, dann platziert der folgende Code einenTrailing Stop in einer Entfernung von 20 Punkten vom Einstiegspreis, der wiederum zu einem Trailing Stop ineiner Entfernung von 50 Punkten wird, sobald der Preis 6530 übersteigt.SET STOP LOSS 20 TRAILING 50

Die folgenden Bilder stellen das obere Beispiel graphisch dar. Der ursprüngliche Stop wird in einem festenAbstand von 20 Punkten zum Einstiegspreis, also bei 6480 platziert.

Erreicht der Kurs 6530 (=6500 + (50-20)), wird der Stop zu einem Trailing Stop mit einem Abstand von 50Punkten.

Steigt der Kurs wie hier bis 6535, steigt der Trailing Stop bis zu einem Preis von 6485.

V 5.1.2 – 20170831 www.prorealtime.com 16 / 97

Page 17: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Programmierung von Hande lssyst emen

Hinweis zum Verwenden von Punkten oder Einheiten für die Entfernung von Stops und Limits

Die Punktgröße kann je nach Instrumententyp variieren, wohingegen die Einheit-Größe (Variation von 1 Einheitim Chart) immer konstant bleibt. Abhängig von Ihrem Code und den Instrumenten, auf denen Sie diesenanwenden, können zwischen Entfernungen in Punkten oder Einheiten beliebig wählen. Beispiel:

Beim EuroDollar (EUR/USD) ist 1 Punkt = 0.0001 Einheiten im Chart

Bei Index-Futures (DAX, FCE) ist 1 Punkt = 1 Einheit im Chart

Bei Futures auf europäischen Zinsraten ist 1 Punkt = 0.01 Einheiten im Chart

Anhalten eines Handelssystems mittels QUIT

Die Anweisung 'QUIT' ermöglicht das Anhalten eines Handelssystems. Das System wird nach demSchließen des aktuellen Balkens angehalten. Alle Pending Orders werden storniert und alle offenenPositionen glattgestellt. Dies erlaubt Ihnen das Anhalten eines Handelssystems im Fall von großen Verlustenoder z.B. nach einem bestimmten Datum.

Beispiel:If date > 20140101 THEN // Stoppt die Strategie nach dem 1. Januar 2013.

QUIT

ENDIF

Verfolgen der Positionen

Variablen zum Positionszustand

Die folgenden drei Variablen erlauben es, den Status Ihrer Handelssysteme zu überwachen:

ONMARKET ist gleich 1, wenn Sie eine offene Positionen haben, ansonsten 0.

LONGONMARKET ist gleich 1, wenn Sie eine offene Long-Positionen haben, ansonsten 0.

SHORTONMARKET ist gleich 1, wenn Sie eine offene Short-Positionen haben, ansonsten 0.

Diese Variablen können mit eckigen Klammern verwendet werden; z.B. ist ONMARKET[1] gleich 1, wenn Siebeim Schließen des vorherigen Balkens eine offene Position hatten, ansonsten 0.

Diese Variablen werden gewöhnlich innerhalb von bedingungsabhängigen Bereichen mit IF-Anweisungenvor einer Positionseröffnung verwendet.

Beispiel:REM Wir definieren den MACD

Indicator1 = MACD[12,26,9](Close)

REM Wir beobachten Kreuzungen im Histogramm des MACD

c1 = (Indicator1 CROSSES OVER 0)

REM Kauf: Wenn keine Long-Positionen vorhanden sind und wenn MACD>0 ist, kaufe 3 Lots

IF NOT LONGONMARKET AND c1 THEN

BUY 3 SHARES AT MARKET

ENDIF

V 5.1.2 – 20170831 www.prorealtime.com 17 / 97

Page 18: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Programmierung von Hande lssyst emen

Größe der Position

Die nächsten drei Variablen ermöglichen das Erkennen der Größe der aktuellen Position.

COUNTOFPOSITION: Größe der Position (in Lots, Aktien, Kontrakten...). Der Wert ist positiv bei eineroffenen Long-Position, negativ bei einer offenen Short-Position.

COUNTOFLONGSHARES: Größe der Position (in Lots, Aktien, Kontrakten...) bei einer offenen Long-Position, ansonsten 0.

COUNTOFSHORTSHARES: Größe der Position (in Lots, Titeln, Kontrakten...). Der Wert ist positiv bei eineroffenen Short-Position, ansonsten 0.

Diese Variablen werden gewöhnlich innerhalb von bedingungsabhängigen Bereichen mit IF-Anweisungenvor einer Positionseröffnung verwendet.

Achten Sie auf die richtige Verwendung dieser Status-Variablen: Der Code wird am Ende jedes

Balkens überprüft und die Orderaufträge bei der Eröffnung des darauffolgenden platziert.

Beim unteren Code-Beispiel ist die Variabel 'Long' beim Schließen des ersten Candlesticks nichtgleich '1', sondern erst beim Schließen des zweiten Candlesticks, da die erste Kauforder bei derEröffnung des zweiten Candlesticks passiert.BUY 1 SHARE AT MARKET

IF LONGONMARKET THEN

long = 1

ENDIF

TradeIndex

Der Befehl TRADEINDEX(n) erlaubt den Zugriff auf den Balken der vorherigen n-sten Transaktion.

TRADEINDEX(n-ste vorherige Order)Hinweis: TradeIndex kann verwendet werden, ohne dieses an eine in Klammern festgelegte Balkennummerzu binden. In diesem Fall berücksichtigt das Programm den Balken mit der zuletzt ausgeführten Order:TradeIndex=TradeIndex(1). Es wird empfohlen, die Anweisung TradeIndex zusammen mit BarIndex zuverwenden.

Beispiel:REM: Schließen einer Long-Position, wenn wir seit mindestens 3 Balken im Markt sind

IF LONGONMARKET AND (BarIndex - TradeIndex) >= 3 THEN

SELL AT MARKET

ENDIF

TradePrice

Der Befehl TRADEPRICE(n) erlaubt den Zugriff auf den Preis, zu dem eine Transaktion ausgeführt wurde.Die entsprechende Syntax ist die folgende:

TRADEPRICE(n-ste vorherige Order)Es kann in Klammern angegeben werden, auf welche Order man sich bezieht. Wird keine bestimmte Orderhinter der Anweisung TradePrice angegeben, so wird der Preis der letzten Order als Bezugspunktverwendet: TradePrice=TradePrice(1)

Beispiel:REM: Schließen einer Long-Position, wenn der Kurs 2% oberhalb des Ausführungspreises derletzten Transaktion liegt

IF LONGONMARKET AND CLOSE > 1.02 * TRADEPRICE THEN

SELL AT MARKET

ENDIF

V 5.1.2 – 20170831 www.prorealtime.com 18 / 97

Page 19: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Programmierung von Hande lssyst emen

PositionPerf

Die Anweisung POSITIONPERF(n) zeigt folgende Informationen an:

Performance (Ratio von Gewinn/Kosten der Position) der n-letzten geschlossenen Position, wenn n>0(ohne Brokergebühren)

Performance (Ratio von Gewinn/Kosten der Position) der aktuellen Position, wenn n=0 (ohneBrokergebühren)

Die Syntax zur entsprechenden Verwendung sieht folgendermaßen aus:

POSITIONPERF(n-ste vorherige Position)Ist n nicht angegeben, dann wird n=0 vorausgesetzt: PositionPerf=PositionPerf(0)

Beispiel:REM Kauf, wenn der vorherige Trade mindestens 20% Gewinn erzielt hat

IF NOT ONMARKET AND PositionPerf(1) > 0.2 THEN

BUY 1000 CASH AT MARKET

ENDIF

PositionPrice

Die Anweisung PositionPrice erlaubt es, die durchschnittlichen Ankaufskosten der aktuellen Position zuerkennen.

POSITIONPRICEDer durchschnittliche Preis einer Position entspricht der Summe der Einstiegspreise gewichtet durch diejeder Order zugeordnete Menge; dabei haben nur Positionsverstärkungen einen Einfluss auf diedurchschnittlichen Kosten der Position.

Diese Anweisung kann mit eckigen Klammern zur Einführung eines Offsets verwendet werden:POSITIONPRICE[1] zeigt den Wert an, den PositionPrice beim Schließen des vorherigen Balkens hatte.

Beispiel:

Sie kaufen eine Aktie zum Preis von 5€; Sie verstärken dann Ihre Positionen durch das Hinzukaufen einerAktie zu 10€ und dann einer weiteren zu 15€. Die Kosten dieser Position liegen also bei (5+10+15) / 3 = 10€

Sie beschließen dann, Ihre Position zu verkleinern, indem Sie eine Aktie zu 20€ verkaufen. Diedurchschnittlichen Ankaufkosten bleiben unverändert; PositionPrice zeigt immer noch 10€ an.

StrategyProfit

Dieser Befehl zeigt Gewinn und Verlust (absolut, in der Währung des Instrumentes, ohne Brokergebühren)an, die seit Beginn des Handelssystems erzielt wurden. Er kann in Verbindung mit der Anweisung 'QUIT'verwendet werden, um die Verluste eines Handelssystems zu begrenzen.

STRATEGYPROFITDie Anweisung kann mit eckigen Klammern verwendet werden: StrategyProfit[1] zeigt den Profit beimSchließen des vorherigen Balkens an.

Beispiel:IF STRATEGYPROFIT < -500 THEN

QUIT

ENDIF

Hinweis:

Die Handelssysteme beziehen sich auf geschlossene Balken, d.h. dass der Code beim Schließen jedesBalkens überprüft wird. Im oberen Beispiel können die Verluste daher im Falle eines Gaps während einesCandlesticks bei über 500€ liegen. Es wird daher empfohlen, einen STOP LOSS zum Einschränken derVerluste zu verwenden und dann diesen Programmier-Code zum Stoppen des oberen Handelssystems.

V 5.1.2 – 20170831 www.prorealtime.com 19 / 97

Page 20: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Programmierung von Hande lssyst emen

Hinweis: Die in diesem Handbuch dargestellten Beispiele haben ausschließlich pädagogischenCharakter. Bei Ihrem persönlichen Trading sind Sie bei der Wahl Ihrer Kriterien absolut unabhängig.Alle hier dargestellten Informationen haben „allgemeinen“ Charakter und enthalten auf keinen Fallirgendwelche Informationen oder individuelle Beratung oder irgendeine AufforderungFinanzinstrumente zu kaufen oder zu verkaufen. Historische Performance ist keinesfalls einezuverlässige Kennzahl für zukünftige Performance und ist nicht konstant. Jedes Handelssystemkann Sie dem Risiko aussetzen, einen Ihre Einlage übersteigenden Verlust zu erleiden.

Definition der Parameter zur Ausführung von Handelssystemen

Es können zusätzliche Parameter mithilfe der Anweisung DEFPARAM festgelegt werden.

Order-Kumulierung

Die Variabel 'CumulateOrders' ermöglicht das Autorisieren oder Verbieten einer Order-Kumulierung bei Einstieg inden Markt oder beim Verstärken einer existierenden Position. Dieser Parameter ist standardmäßig aktiviert (also'True'), d.h. bei über Programmierung erstellten Codes kann ein Handelssystem bereits existierenden Positionenzusätzliche Positionen bei jedem Balken hinzufügen, solange die Bedingungen zum Einstieg bei diesem Balkengegeben sind. Es ist auch möglich, multiple Limit- oder Stop-Order zum gleichzeitigen Einstieg in den Markt zuplatzieren. Soll verhindert werden, dass ein Handelssystem die Größe einer bereits bestehenden Positionverstärkt, dann muss die folgende Anweisung zu Anfang des Programmiercodes gesetzt werden:DEFPARAM CumulateOrders = False

DefParam-Anweisungen bleiben über die gesamte Ausführung eines Handelssystems gültig. Die Order-Kumulierung kann nicht während der Durchführung eines Handelssystems verändert werden.

Beispiele:// Dieser Code kauft eine Aktie bei jedem Balken, bis eine Höchstzahl von 3 Positionenerreicht ist

DEFPARAM CumulateOrders = True

If CountOfPosition < 3 THEN

Buy 1 shares at market

Endif

// Dieser Code kauft eine Aktie zum Preis von 2 und eine zusätzliche Aktie zum Preis von 3

DEFPARAM CumulateOrders = True

If CountOfPosition < 2 THEN

Buy 1 shares at 2 Limit

Buy 1 shares at 3 Limit

Endif

// Dieser Code kauft einmalig 5 Aktien

DEFPARAM CumulateOrders = False

Buy 5 shares at market

Es können mehrere Orders zum Ausstieg aus dem Markt in derselben Richtung platziert werden, auch wennder Parameter CumulateOrders deaktiviert ist (= False).

Beispiel:// Dieser Code kauft 5 Aktien. Bis zu 3 Aktien werden verkauft, wenn der Preis den 40-Perioden Gleitenden Durchschnitt unterkreuzt. Alle Anteile werden im Fall eines 10%Verlustes verkauft.

DEFPARAM CumulateOrders = False

Buy 5 shares at market

If close CROSSES UNDER Average[40] THEN

SELL 3 SHARES AT MARKET

Set stop %Trailing 10

Endif

V 5.1.2 – 20170831 www.prorealtime.com 20 / 97

Page 21: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Programmierung von Hande lssyst emen

Hinweis für Stops und Target Levels bei aktiviertem 'CumulateOrders': Wenn Sie Anweisungen zumErstellen von Stop Loss, Trailing Stop oder Profit Targets mit aktivierter Orderkumulierung verwenden, dannwird das Level auf der Basis des durchschnittlichen Einstiegspreises Ihrer Position berechnet und jedes Malneu berechnet, wenn sich die Größe der Position verändert.

Beispiel:

Wenn Sie eine Aktie zum Preis von $10.00 kaufen, und dann einen Stop Loss bei 10% sowie ein ProfitTarget bei 150% platzieren, dann sehen die Initial-Levels folgendermaßen aus: Stop bei $9.00 und Target bei$25.00. Wenn Sie eine zweite Aktie zum Preis von $20 kaufen, dann liegt der durchschnittlicheEinstiegspreis bei $15 und die neuen Initial-Levels sähen so aus: Stop bei $13.50 und Target bei $37.50 (fürdie gesamte Position).

Hinweis für mithilfe des Assistenten erstellten Codes: Im Programmierassistenten ist die Anweisung'CumulateOrders' standardmäßig deaktiviert. Die Anweisung 'DefParam CumulateOrders = False' wird alsoautomatisch zu Beginn jedes Codes eingefügt.

PreLoadBars

Die Anweisung 'DefParam Preloadbars' ermöglicht das Festlegen der maximalen Anzahl an Balken, die vordem Start eines Handelssystems für die Berechnung von den in dem Handelssystem verwendetenIndikatoren (eigene oder standardmäßige Indikatoren) benötigt werden. Standardmäßig wird dieserParameter auf 1000 gesetzt. Es können nicht weniger als 0 oder mehr als 5000 angegeben werden. WennSie das Laden von Daten deaktivieren möchten, können Sie folgende Anweisung verwenden: DefparamPreloadBars=0

Der gewählte Wert ist ein Maximum, da die Menge der an zu ladenden Balken von der für das gegebeneInstrument und gewählte Zeiteinheit zur Verfügung stehenden Menge an historischen Daten abhängt.

Beispiel:DEFPARAM PreLoadBars = 300

a = (Close + Open) / 2

IF price CROSSES OVER Average[250](a) THEN

BUY 1 SHARE AT MARKET

ENDIF

Wird bei 'PreLoadBars' ein Wert von 300 festgelegt, dann bedeutet dies, dass ein Gleitender Durchschnittüber 250 Balken gleich zu Beginn eines Handelssystems beim ersten Balken angezeigt wird. Dies wäre nichtder Fall, wenn nur 200 Balken im Voraus geladen würden.

Beachten Sie dabei, dass der Wert 300 das Höchstmaß angibt. Sollten weniger als 300 Balken vor dem Startdes Handelssystems zur Verfügung stehen, dann wird nur diese Menge an verfügbaren Balken geladen.

Im Beispiel, in dem 300 Balken im Voraus geladen werden, liegt der BarIndex des ersten Balkens nach demStarten des Handelssystems bei einem Wert von 300. Sollten hingegen nur '0' Balken geladen worden sein,dann würde der BarIndex des ersten Balken nach Starten des Handelssystems ebenso bei einem Wert von'0' liegen.

V 5.1.2 – 20170831 www.prorealtime.com 21 / 97

Page 22: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Programmierung von Hande lssyst emen

FlatBefore und FlatAfter

DEFPARAM FlatBefore = HHMMSS

DEFPARAM FlatAfter = HHMMSS

Mithilfe von HHMMSS kann die Uhrzeit (HH = Stunde, MM = Minuten, SS = Sekunden) festgelegt werden.

Durch diese Anweisungen können vor (FlatBefore) bzw. nach (FlatAfter) einer bestimmten Uhrzeit allepending Orders storniert, alle Positionen geschlossen werden und es kann vermieden werden, dasszusätzliche Positionen eröffnet werden. Die Uhrzeit bezieht sich auf die Zeitzone des Handelssystems.

Der Parameter FlatBefore muss immer eine Uhrzeit zu einem Zeitpunkt nach Markteröffnung (individuellangepasst oder nicht), FlatAfter eine Uhrzeit vor Marktschließung (individuell angepasst oder nicht)anzeigen, um berücksichtigt zu werden. Ist die gewählte Uhrzeit nicht eine Multiple der hauptsächlichenZeiteinheit des Handelssystems (z.B. wenn diese in der Mitte eines Candlesticks auftritt), dann werden dieAnweisungen DEFPARAM FlatAfter nach dem Schließen des Candlesticks und DEFPARAM FlatBefore beimSchließen des vorherigen Candlesticks angewendet.

Die Orderausführung wird für die Dauer eingeschränkt, d.h. es werden keine Orders platziert und keine solchenOrders bei der Eröffnung der nächsten Periode platziert, wenn das Handelssystem autorisiert ist, Orders zuplatzieren. Infolgedessen werden Variabeln wie "OnMarket" während dieser Zeiten immer als falsch erachtet.

Beispiel:DEFPARAM FlatBefore = 093000 // Storniert alle pending Orders, schließt alle Positionenund verhindert das Platzieren zusätzlicher Orderaufträge durch das Handelssystem vor 9Uhr 30 in der Zeitzone des Handelssystems.

DEFPARAM FlatAfter = 160000 // Storniert alle pending Orders, schließt alle Positionenund verhindert das Platzieren zusätzlicher Orderaufträge durch das Handelssystem nach 16Uhr 00 in der Zeitzone des Handelssystems.

NoCashUpdate (nur beim Backtest)

DEFPARAM NoCashUpdate = True

Ist diese Option aktiviert, dann wird der zur Verfügung stehende Cash-Betrag nicht anhand von erzieltenGewinnen, Verlusten oder Brokergebühren aktualisiert. Standardmäßig wird NoCashUpdate = False festgelegt.

Beispiel:

Startkapital 10.000 € mit der Anweisung “NoCashUpdate = True“. Die maximale Investition wird auf 10.000 €begrenzt, gleichgültig welche Gewinne oder Verluste während des Ausführens dieses Backtests erzielt wurden.

Hinweis:

Die mithilfe der Anweisung DEFPARAM definierten Parameter müssen in den ersten Zeilen desProgrammcodes festgelegt werden (Ausnahme sind vorherige Kommentare).

MinOrder und MaxOrder (nur beim Backtest)

DEFPARAM MinOrder = n

DEFPARAM MaxOrder = p

Mithilfe dieser Anweisungen können alle Orders blockiert werden, deren Größe (in Lots, Kontrakten oderAktien) n unterschreitet und p überschreitet.

Beispiel:DEFPARAM MinOrder = 100

BUY 1000 CASH AT MARKET

Liegt der aktuelle Preis über 10€, dann liegt die Ordergröße bei unter 100; die Order wird daher zurückgewiesen.

V 5.1.2 – 20170831 www.prorealtime.com 22 / 97

Page 23: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Programmierung von Hande lssyst emen

Einbeziehung von Indikatoren

ProRealTime Indikatoren

Alle bei der Programmierung von Indikatoren zur Verfügung stehenden Funktionen können auch bei derProgrammierung von Handelssystemen verwendet werden (vgl. Glossar am Ende dieses Handbuchs). Wirempfehlen weiterhin die Lektüre des Programmierhandbuchs ProBuilder, um detaillierte Informationen inBezug auf diese Funktionen zu erhalten.

Die zur Berechnung eines Indikators benötigte Menge an historischen Daten hängt von der Art des Indikators ab.Bei der Berechnung eines exponentiellen Gleitenden Durchschnitts über n-Perioden (ExponentialAverage[N])werden üblicherweise 10*N Balken für ein präzises Ergebnis als ausreichend erachtet.

Befindet sich das Startdatum eines Handelssystems in unmittelbarer Nähe zum Anfang eines Charts, dannwerden vom Server zur Berechnung des Handelssystems zusätzliche historische Daten geladen, damit dieIndikatoren vom ersten Balken an Ergebnisse anzeigen.

Persönliche Indikatoren

Von Ihnen persönlich programmierte Indikatoren können mithilfe der Anweisung 'CALL' in ein Handelssystemeinbezogen werden.

Beispiel:a,b = CALL "HistoMACD[5,6]" // a & b sind dabei die Outputs der Funktion, wohingegen 5 &6 die Inputs sind.

Wir empfehlen die Lektüre des Bereiches zur Optimierung von Programmen, um weitere Informationen zuroptimalen Verwendung der CALL-Anweisung zu erhalten.

Ratschläge zum Programmieren

Hinweis: Die in diesem Handbuch dargestellten Beispiele haben ausschließlich pädagogischenCharakter. Bei Ihrem persönlichen Trading sind Sie bei der Wahl Ihrer Kriterien absolut unabhängig.Alle hier dargestellten Informationen haben „allgemeinen“ Charakter und enthalten auf keinen Fallirgendwelche Informationen oder individuelle Beratung oder irgendeine AufforderungFinanzinstrumente zu kaufen oder zu verkaufen. Historische Performance ist keinesfalls einezuverlässige Kennzahl für zukünftige Performance und ist nicht konstant. Jedes Handelssystemkann Sie dem Risiko aussetzen, einen Ihre Einlage übersteigenden Verlust zu erleiden.

Die Berechnungsdauer eines Handelssystems hängt von der Komplexität der verwendeten Indikatoren undder Art und Weise, in der diese einbezogen werden, ab. Der folgende Absatz erläutert einige einfacheRatschläge, mithilfe derer Sie Ihren Programmiercode optimieren können.

Verringerung der einbezogenen Anzahl von Indikatoren

Wenn Sie denselben Indikator mehrmals im Programm verwenden möchten, ist es sinnvoll, diesen alszwischengeschobene Variabel festzulegen anstelle ihn jedes Mal neu einzubeziehen ('avg40' im unterenBeispiel). Hierdurch wird die Berechnung merklich schneller durchgeführt.

NICHT-OPTIMALER CODE OPTIMALER CODE

IF NOT LONGONMARKET AND close > Average[40]THEN

BUY 1 SHARE AT MARKET

ENDIF

IF NOT SHORTONMARKET AND close < Average[40]THEN

SELLSHORT 1 SHARE AT MARKET

ENDIF

avg40 = Average[40]

IF NOT LONGONMARKET AND close > avg40 THEN

BUY 1 SHARE AT MARKET

ENDIF

IF NOT SHORTONMARKET AND close < avg40 THEN

SELLSHORT 1 SHARE AT MARKET

ENDIF

V 5.1.2 – 20170831 www.prorealtime.com 23 / 97

Page 24: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Programmierung von Hande lssyst emen

Das Gleiche gilt bei der mehrfachen Einbeziehung desselben Indikators, der mit unterschiedlichenVerschiebungen (Offset) verwendet wird.

NICHT-OPTIMALER CODE OPTIMALER CODE

a = ExponentialAverage[40](close)

b = ExponentialAverage[40](close[1])

c = ExponentialAverage[40](close)

IF a > b THEN

BUY 1 SHARE AT MARKET

ENDIF

IF a < c[1] THEN

SELLSHORT 1 SHARE AT MARKET

ENDIF

a = ExponentialAverage[40](close)

IF a > a[1] THEN

BUY 1 SHARE AT MARKET

ENDIF

IF a < a[1] THEN

SELLSHORT 1 SHARE AT MARKET

ENDIF

Einbeziehung persönlicher Indikatoren

Die Einbeziehung persönlicher Indikatoren mithilfe der CALL-Anweisung verbraucht mehr Berechnungszeitals die Einbeziehung von ProRealTime Indikatoren. Bei ProRealTime Indikatoren sind die benötigtenBerechnungen im Voraus bekannt und können daher kontrolliert werden. Hierdurch kann dieBerechnungsgeschwindigkeit erhöht werden, was bei persönlich programmierten Indikatoren nicht möglichist.

Um die Berechnungsgeschwindigkeit eines Handelssystems mit der CALL-Anweisung zu verbessern, ist eswichtig, die Anweisung so effizient wie möglich zu verwenden.

Begrenzen der Anzahl an identischen Calls:

Wie auch bei ProRealTime Indikatoren ist es wichtig, die Anzahl der 'Calls' desselben Indikators imProgramm zu begrenzen:

NICHT-OPTIMALER CODE OPTIMALER CODE

myindic1 = CALL "Meine Funktion"

IF NOT LONGONMARKET AND close > myindic1 THEN

BUY 1 SHARE AT MARKET

ENDIF

myindic2 = CALL "Meine Funktion"

IF NOT SHORTONMARKET AND close < myindic2 THEN

SELLSHORT 1 SHARE AT MARKET

ENDIF

myindic = CALL "Meine Funktion"

IF NOT LONGONMARKET AND close > myindic THEN

BUY 1 SHARE AT MARKET

ENDIF

IF NOT SHORTONMARKET AND close < myindic THEN

SELLSHORT 1 SHARE AT MARKET

ENDIF

V 5.1.2 – 20170831 www.prorealtime.com 24 / 97

Page 25: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Programmierung von Hande lssyst emen

Begrenzen von miteinander verschachtelten Indikatoren:

Wenn Sie einen persönlichen Indikator in Ihrem Handelssystem verwenden möchten, dann achten Sie bittedarauf, dass dieser Indikator keineswegs die CALL-Anwendung verwendet.

Die Einbeziehung von verschachtelten persönlichen Indikatoren benötigt sehr viel Berechnungszeit. Wennmöglich, kopieren Sie den ursprünglichen Programmiercode des einzubeziehenden Indikators direkt in dasProgrammierfenster anstatt die 'CALL'-Funktion zu verwenden. Auf diese Weise werden nur ProRealTimeIndikatoren mittels der 'CALL'-Funktion einbezogen.

NICHT-OPTIMALER CODE OPTIMALER CODE

Code des Handelssystems:myindic = CALL "MyDCLOSEMix LinearReg"

IF NOT longonmarket AND close > myindic THEN

BUY 1 SHARE AT MARKET

ENDIF

IF NOT shortonmarket AND close < myindic THEN

SELLSHORT 1 SHARE AT MARKET

ENDIF

Code von "MyDCLOSEMix LinearReg":dayclosemix = CALL "MyDCLOSEMix"

RETURN LinearRegression[5](dayclosemix)

Code von "MyDCLOSEMix":mix = (DClose(0) + 3.5 * DClose(1) + 4.5 * DClose(2) + 3 * DClose(3) + 0.5 * DClose(4)– 0.5 * DClose(5) – 1.5 * DClose(6)) / 10.5

RETURN mix

Code des Handelssystems:dayclosemix = (DClose(0) + 3.5 * DClose(1) + 4.5 * DClose(2) + 3 * DClose(3) + 0.5 * DClose(4) – 0.5 * DClose(5) – 1.5 * DClose(6)) / 10.5

myindic = LinearRegression[5](dayclosemix)

IF NOT longonmarket AND close > myindic THEN

BUY 1 SHARE AT MARKET

ENDIF

IF NOT shortonmarket AND close < myindic THEN

SELLSHORT 1 SHARE AT MARKET

ENDIF

V 5.1.2 – 20170831 www.prorealtime.com 25 / 97

Page 26: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Programmierung von Hande lssyst emen

Begrenzen der Anzahl an verschachtelten Bedingungsschleifen:

Bei allen bedingungsabhängigen Anweisungen (IF...THEN...ENDIF) ist es immer vorteilhaft, mit einerAnweisung zu arbeiten, die n Bedingungen überprüft, anstatt n Anweisungen zu verwenden:

NICHT-OPTIMALER CODE OPTIMALER CODE

IF CLOSE >= 0.0014 THEN

IF CLOSE <= 0.0047 THEN

IF INTRADAYBARINDEX >= 5 THEN

IF INTRADAYBARINDEX <= 20 THEN

IF NOT SHORTONMARKET THEN

BUY 1 SHARES AT MARKET

ENDIF

ENDIF

ENDIF

ENDIF

ENDIF

IF CLOSE >= 0.0014 AND CLOSE <= 0.0047 AND INTRADAYBARINDEX >= 5 AND INTRADAYBARINDEX <= 20 THEN

IF NOT SHORTONMARKET THEN

BUY 1 SHARES AT MARKET

ENDIF

ENDIF

Verwendung von Schleifen:

Die Verwendung von Schleifen mittels der Anweisung 'FOR' ist manchmal unbedingt nötig, sollte aber soweit wie möglich vermieden werden, da hierdurch die Berechnungszeit stark erhöht wird.

Hier nun einige Beispiele, bei denen die Verwendung einer 'FOR'-Schleife vermieden wurde:

// Wenn die Bedingung c1 mindestens einmal im Laufe der n-letzten Balken eingetroffen ist:

IF HIGHEST[n](c1) = 1 THEN

...

// Wenn die Bedingung c1 m Laufe der n-letzten Balken immer eingetroffen ist:

IF LOWEST[n](c1) = 1 THEN

...

// Häufigkeit, in der die Bedingung c1 im Laufe der n-letzten Balken überprüft wurde:

num = SUMMATION[n](c1)

// Anzahl an Balken, seit Bedingung c1 eingetreten ist:

IF c1 THEN

lastoccurence = barindex

ENDIF

timesince = barindex - lastoccurence

// Höchstzahl an Variablen (a,b,c,d,e,f,g):

top = MAX(a , MAX(b , MAX(c , MAX(d , MAX(e , MAX(f , g) ) ) ) ) )

V 5.1.2 – 20170831 www.prorealtime.com 26 / 97

Page 27: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

ProBacktest – S imulat ion vo n Handelss yst emen

ProBacktest – Simulation von Handelssystemen

Die Registerkarte "ProBacktest" des Fensters zum Erstellen eines Handelssystems ermöglicht dieKonfiguration der jeweiligen Parameter:

Startkapital

Brokerage-Einstellungen & Risiko-Verwaltung

Durchführungszeitraum

Optimierung der Variablen

V 5.1.2 – 20170831 www.prorealtime.com 27 / 97

Page 28: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

ProBacktest – S imulat ion vo n Handelss yst emen

Money Management

Startkapital

In diesem Bereich können das dem Handelssystem zur Verfügung stehende Kapital festgelegt werden. DerBetrag der maximalen Investition während der Ausführung dieses Handelssystems hängt von diesenEinstellungen ab.

Während der Durchführung des Backtests kann das zur Verfügung stehende Kapital durch Gewinne,Verluste oder Brokergebühren erhöht oder verringert werden (außer bei aktiviertem ParameterNoCashUpdate). Weitere Informationen hierzu finden Sie im Abschnitt Reinvestition der Gewinne. Beiautomatisierten Handelssystemen entspricht das verfügbare Kapital dem Kapital Ihres Portfolios.

Sollte Ihr Handelssystem nicht kaufen, denken Sie daran, Ihr Startkapital zu erhöhen.

Brokergebühren und Risiko-Verwaltung

Je nach Instrumententyp, auf den das Handelssystem angewendet wird, können unterschiedlicheEinstellungen in Bezug auf die Brokergebühren vorgenommen werden. Die zur Verfügung stehendenBrokergebühren umfassen:

Cash pro Order: Ein fester Cash-Betrag (in der Währung des Instrumentes), der bei jederOrderausführung berechnet wird. Sie können auch einen Mindest- bzw. Höchst-Betrag pro Orderfestlegen.

% Transaktion: Ein Prozentsatz in Bezug auf die Transaktion (in der Währung des Instrumentes), derbei jeder Orderausführung berechnet wird.

Cash pro Lot: Ein fester Cash-Betrag (in der Währung des Instrumentes), der pro Lot oder Kontraktberechnet wird.

Margin: Der in % oder Cash zur Verfügung stehende Betrag pro Lot. es wird der maximale Hebeleffekt(=100/Margin) festgelegt.

Lot-Größe (nur bei Forex): Dies ist die Mindest-Ordergröße beim Instrument. Jede in BUY/SELL-Anweisungen festgelegte Orderanzahl wird mit der Lot-Größe multipliziert.

Spread (in Pips): Wert, der zur Nachbildung des Bid/Ask-Spreads dem Mid-Preis hinzugefügt wird.

Im Bereich Risiko-Verwaltung kann die maximale Positionsgröße festgelegt werden: Jede Order, durch diediese Positionsgröße überschritten werden würde, wird zurückgewiesen. Die maximale Positionsgröße wirdüblicherweise in einer Anzahl von Kontrakten bei Futures und Forex und in Cash oder % des Kapitals beiAktien angegeben. Die in dem Bereich "Risiko-Verwaltung" festgelegten Parameter berücksichtigen keineBroker-Gebühren.

V 5.1.2 – 20170831 www.prorealtime.com 28 / 97

Page 29: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

ProBacktest – S imulat ion vo n Handelss yst emen

Futures:

Bei Futures werden die Brokergebühren üblicherweise als Gebühren pro Lot und pro Transaktion festgelegt.

Die Margin (Sicherheitsleistung) ist der für den Kauf eines Kontrakts notwendige Cash-Betrag. Der Werteines Punktes in Bezug auf den entsprechenden Future wird automatisch von der Workstation für dasangezeigte Instrument berechnet.

Hier die Punktwerte der wichtigsten Futures:

NAME DES FUTURES PUNKTWERT

FCE CAC 40 10€

DAX 25€

DJ Eurostoxx 50 10€

BUND 10€

Euro FX 12,5$

Mini S&P 500 50$

Mini Nasdaq 100 20$

Mini Dow 5$

Forex:

Die Broker-Gebühren werden üblicherweise in Gebühren pro Order in € oder in % der Transaktion festgelegt.Es ist außerdem möglich, einen Mindest- bzw. Höchstbetrag pro Transaktion zu bestimmen.

Beispiel EURUSD:

Größe eines Lots: 100.000

Spread: 2 Pips

Margin: 5%

Die Anweisung BUY 1 LOT AT MARKET führt beim EURUSD zum Kauf eines Lots zu 100.000 $ mit einemSpread von 2 Pips (also 0,0002). Da der Hebeleffekt bei 20:1 (Margin von 5%) liegt, werden also 5.000 $benötigt.

Aktien:

Die Brokergebühren werden üblicherweise in Gebühren pro Order in € oder in % der Transaktion festgelegt.Es ist außerdem möglich, einen Mindest- bzw. Höchstbetrag pro Transaktion zu bestimmen.

Beispiel:

Gebühr pro Order: $10

Margin: 20 %

Diese Einstellungen bewirken bei jedem platzierten Orderauftrag einen Hebeleffekt von 5:1.

V 5.1.2 – 20170831 www.prorealtime.com 29 / 97

Page 30: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

ProBacktest – S imulat ion vo n Handelss yst emen

Optimierung von Variablen

Mithilfe der Variablen-Optimierung können Sie unterschiedliche Kombinationen von Variablen in einemBacktest testen, um herauszufinden, welche Kombination die beste Erfolgsquote bei einem Instrument in dergewählten Zeiteinheit über den getesteten Zeitraum erzielt.

Um mehr darüber zu erfahren und ein konkretes Beispiel zu sehen, können Sie sich auch das Video"Money-Management, Stops und dynamische Variablen-Optimierung" ansehen.

Das Ergebnis der Optimierung wird in einem 'Optimierungsreport' dargestellt. Die Statistiken für jedegetestete Variable werden aufgelistet und Sie können auf diese Weise ermitteln, welche Variablen-Kombination Sie benutzen sollten, um Ihr Handelssystem optimal anzuwenden.

Hier das Beispiel eines Handelssystems mit einer Perioden-Optimierung in Bezug auf die GleitendenDurchschnitte n und m:AVGm = ExponentialAverage[m](Close)

AVGn = ExponentialAverage[n](Close)

IF AVGm CROSSES OVER AVGn THEN

BUY 100 SHARES AT MARKET

ENDIF

IF AVGm CROSSES UNDER AVGn THEN

SELL 100 SHARES AT MARKET

ENDIF

Die Variablen n und m können durch Klicken auf die Schaltfläche 'Hinzufügen' im Bereich der Variablen-Optimierung festgelegt werden.

Das sich daraufhin öffnende Fenster ermöglicht das Festlegen der Optimierungsparameter:

"Im Programm benutztes Zeichen": Geben Sie hier den Namen an, der die Variable im Codebezeichnet (in unserem Beispiel 'n'). Beachten Sie dabei die Groß- und Kleinschreibung.

"Zeichen im Eigenschaften-Fenster": Dies ist der Name, der der Variable zugeordnet werden soll, umdiese leichter wiederfinden zu können (z.B. „Anzahl an Perioden“ für n).

"Minimaler Wert" und "Maximaler Wert": Hier werden obere und untere Grenzen festgelegt,zwischen denen sich die Variable während der Optimierung hin und her bewegen kann.

"Schritt (Intervall)": Dies ist das Schrittintervall, das bei den Variablen beachten werden soll.

V 5.1.2 – 20170831 www.prorealtime.com 30 / 97

Page 31: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

ProBacktest – S imulat ion vo n Handelss yst emen

Hier das Beispiel eines Optimierungsreports:

Der Optimierungsbericht weist 5 Statistiken für jede Kombination der getesteten Variablen auf (hier m und n).Diese Spalten sind die folgenden:

"Gewinn", bezeichnet den erzielten Gewinn oder Verlust des Handelssystems nach der folgendenmathematischen Formel:

Gewinn = Endsumme – Startkapital

Dieser Wert erlaubt es, das absolute Gewinnpotential einer festgelegten Strategie zu ermitteln (für jedenWert der entsprechenden Variablen).

Hinweis: Die festgelegten Brokergebühren werden bei der Berechnung berücksichtigt.

"%Gewinn", stellt Gewinn oder Verlust in Prozent dar. Die Formel sieht folgendermaßen aus:

%Gewinn = (100 x Nettogewinn) / Startkapital

Dieser Wert zeigt die relative Erfolgsquote am Ende des auf den entsprechenden Variablen aufbauendenHandelssystems.

"Anzahl Positionen", zeigt die Anzahl der bei diesem Handelssystem geöffneten Positionen.

"Gewinn-Positionen in %" bezeichnet den Prozentsatz der gewinnbringenden Positionen. Der Wertwird folgendermaßen berechnet:

Gewinn-Positionen in % = (100 x Anzahl an gewinnenden Positionen) / Anzahl an Positionen

"Gewinn iD / Position" entspricht dem durchschnittlichen Gewinn pro Position. Dieser Wert kannnützlich sein, um die durchschnittliche Effizienz der ausgeführten Orderaufträge zu erkennen. Er wirdfolgendermaßen berechnet:

Gewinn iD / Position = Nettogewinn / Anzahl an Positionen

Hinweis: Die Ergebnisse eines Optimierungsreportes eines Handelssystems können je nach gewähltemInstrument, Zeiteinheit oder Menge an historischen Daten unterschiedlich ausfallen.

V 5.1.2 – 20170831 www.prorealtime.com 31 / 97

Page 32: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

ProBacktest – S imulat ion vo n Handelss yst emen

Festlegung des Zeitraums bei der Backtest-Durchführung

Dieser Bereich ermöglicht die Festlegung des Zeitraums, auf den Sie Ihren Backtest anwenden möchten.Beachten Sie dabei, dass die historischen Daten, die bei einem Backtest verwendet werden können, in derRegel auf die im Chart angezeigten Daten begrenzt sind. Sie können die angezeigte Menge an historischenDaten in Ihrem Chart erhöhen, indem Sie das in jedem Chart vorhandene linke Auswahlmenü öffnen. LegenSie erst die Menge an historischen Daten fest und fügen Sie dann dem Chart das Handelssystem alsBacktest hinzu.

Bei einem Backtest in 'Echtzeit' wird die Durchführung des Backtests weitergeführt und die Orderpositionenerscheinen im Chart, sobald das Signal ausgelöst wird. Sie können diese Orderaufträge auch mit Popupsoder Signaltönen verbinden, indem Sie innerhalb des Auswahlmenüs 'Optionen' das Untermenü 'Alarmton'wählen.

Bei einem spezifisch festgelegten Schlussdatum werden alle zu diesem Zeitpunkt noch offenen Positionengeschlossen.

Hinweis:

Sollte Ihr Backtest bei der Durchführung eine gewisse Zeit benötigen, dann können Sie den angegebenenZeitraum verringern: die Berechnungszeit eines Handelssystems ist proportional zur Menge an zuüberprüfenden historischen Daten.

Nach der Durchführung eines Handelssystems werden folgende Informationen angezeigt:

Entwicklung der Gewinn-/Verlustkurve bei jedem Candlestick

Histogramm der Positionen

Detaillierter Bericht

Für weitere Informationen in Bezug auf die Ergebnisse eines Backtests gehen Sie bitte zum Anhang A amEnde dieses Handbuchs.

Anpassen von Handelszeiten beim Backtesting

Die Handelszeiten eines Marktes können über das Auswahlmenü "Optionen / Workstation Optionen /Handelszeiten & Zeitzone" individuell angepasst werden.

Individuell angepasste Handelszeiten: Wenn Sie eingeschränkte Handelszeiten festlegen, dann bedeutetdies, dass nur diese diesen Zeiten entsprechenden Daten im Chart angezeigt (und im Backtestberücksichtigt) werden. Beachten Sie dabei bitte, dass eingeschränkte Handelszeiten nur für einen Tageingerichtet werden können. Wenn bei einem Markt das Instrument z.B. 24 Stunden pro Tag notiert, dannkönnen Sie nur die Daten für den Zeitraum zwischen 10 Uhr und 14 Uhr anzeigen lassen; es ist allerdingsnicht möglich, die Daten zwischen 21 Uhr und 9 Uhr des nächsten Tages zu berücksichtigen. Wird eineOrder zum individuell angepassten Schluss des letzten Balkens eines Handelstages platziert , dann wirddiese Order bei der individuell angepassten Eröffnung des Marktes am nächsten Tag ausgeführt.

V 5.1.2 – 20170831 www.prorealtime.com 32 / 97

Page 33: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

ProBacktest – S imulat ion vo n Handelss yst emen

Hinweis in Bezug auf individuell angepasste Handelszeiten und Wochenenddaten

Manche 24 Stunden-Märkte verfügen über die Option "Obere Einstellungen auf alle nicht-IntradayZeiteinheiten (täglich, wöchentlich, monatlich, jährlich) anwenden". Diese Option wird beim Durchführeneines ProBacktests nicht berücksichtigt, da dieser immer die offiziellen Tageskerzen in der standardmäßigenZeitzone des lokalen Marktes verwendet.

Einige Märkte (wie z.B. Forex) enthalten Wochenenddaten. Bei diesen Märkten wird im Auswahlmenü"Optionen / Workstation Optionen / Handelszeiten & Zeitzone" eine Checkbox angezeigt, die es den Nutzernerlaubt, diese Wochenenddaten nicht anzeigen zu lassen. Wochenenddaten werden immer beim Backtestberücksichtigt. Beim Forex werden die Daten vom Sonntag in die Tageskerze des Montag integriert (es gibtkeine Tageskerze für den Sonntag).

Hinweis in Bezug auf individuell angepasste Zeitzonen

Der Code wird immer in der Zeitzone des Nutzers ausgeführt. Dies bedeutet, dass zeit-basierteAnweisungen (time, flatafter, flatbefore) diese Zeitzone bei der Berechnung berücksichtigen. Unter derZeitzone des Nutzers wird diejenige Zeitzone des Marktes verstanden, die für das diesem Markt zugehörigeInstrument gewählt wurde.

Standardmäßig entspricht die Zeitzone des Marktes derjenigen Ihres Computers.

Diese kann über das Menü "Optionen / Workstation Optionen / Handelszeiten & Zeitzone" vom Nutzerindividuell angepasst werden. Im Falle einer Veränderung wird diese veränderte Zeitzone beim nächstenStarten eines Backtests berücksichtigt.

Beispiel: Beim Chart von Vodafone (notiert am LSE, daher Zeitzone GMT +1 bei Sommerzeit oder BST)setze ich als Zeitzone Berlin (GMT + 2 bei Sommerzeit oder CET). Die für den Schluss der um 11:45 BSTbeginnenden 15 Minuten-Kerze angegebene Uhrzeit (also 12 Uhr) wird bei Verwendung derProgrammieranweisung 'time' also 13:00 Uhr CET anzeigen.

Dies gilt für alle Anweisungen auf Intraday-Basis:

Time und seine abhängigen Anweisungen (Stunde, Minute, ...)

Opentime und seine abhängigen Anweisungen (openhour, openminute, ...)

Flatafter und Flatbefore

IntradayBarIndex (Zurücksetzen auf Null bei Markteröffnung in der Zeitzone des Nutzers)

Zeitbasierte Anweisungen auf Tages-Basis sind nicht von der gewählten Zeitzone betroffen:

Dopen, Dhigh, Dlow, Dclose

Date und seine abhängigen Anweisungen (Jahr, Monat, Tag)

DayOfWeek und Days

Diese Anweisungen werden in der Zeitzone des lokalen Marktes berücksichtigt.

V 5.1.2 – 20170831 www.prorealtime.com 33 / 97

Page 34: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

ProBacktest – S imulat ion vo n Handelss yst emen

Gründe für das Anhalten eines ProBacktests

Ein ProBacktest kann in einem der folgenden Fälle anhalten:

Der Backtest erreicht das im Programmierfenster festgelegte Schlussdatum. In diesem Fall wird dasEnde des Backtests als schwarze vertikale Linie im Chart angezeigt.

Eine im Code vorliegende "Quit"-Anweisung wurde ausgeführt. In diesem Fall wird das Ende des

Backtests durch folgendes Icon dargestellt:

Das zur Verfügung stehende Kapital deckt nicht mehr ausreichend den Verlust (das "geschätzte" Kapitalist negativ). In diesem Fall wird das Ende des Backtests durch folgendes Icon dargestellt:

Eine Order wurde aufgrund unzureichendem Cash-Betrages zurückgewiesen. Diese Order wird in derOrder-Liste des detaillierten Berichtes erscheinen. In diesem Fall wird das Ende des Backtests durchfolgendes Icon dargestellt:

Hier das Beispiel eines Backtests, der aufgrund unzureichenden Kapitals angehalten wurde.

V 5.1.2 – 20170831 www.prorealtime.com 34 / 97

Page 35: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

ProBacktest – S imulat ion vo n Handelss yst emen

Anzeige von Variablenwerten im Backtest (ab ProRealTime v10.2)

Die Anweisung GRAPH ermöglicht die Anzeige von Variablenwerten, die Sie in Ihrem ProBacktest verwenden.

Diese Anweisung funktioniert auf folgende Weise:GRAPH myvariable AS "my variable name"

myvariable ist der Name der Variable im Code

"my variable name" ist das Etikett der Variable, das im Chart angezeigt wird.

Es kann außerdem eine Farbe für die Variable mithilfe der optionalen COLOURED Anweisung definiert werden:

GRAPH myvariable COLOURED (r,g,b) AS "my variable name"

"r", "g" und "b" sind integre Zahlen von 0 bis 255 (RGB-Format); z.B.: (255,0,1) für eine rote Kurve.

Sie können auch die Transparenz der Linie wie folgt festlegen:GRAPH myvariable COLOURED (r,g,b,a) AS "my variable name"

a ist eine integre Zahl zwischen 0 und 255, die das Level an Transparenz (0 für eine komplett

durchsichtige Linie, 255 für eine vollständig deckende Linie) bestimmt.

Wenn die GRAPH-Anweisung in Ihrem Code benutzt wird, dann erscheint ein neues Chart-Fenster unterhalbder Equity-Kurve Ihres Backtests. Dieses Unterfenster enthält die Werte von myvariable in Bezug auf jedenBalken, wie im unteren Beispiel angezeigt.

Hinweis:

Die Anweisung GRAPH kann nicht bei automatisierten Handelssystemen verwendet werden.

Es können höchstens 5 Variablen gleichzeitig in demselben Chart angezeigt werden. Jede zusätzlicheVariable wird ignoriert.

V 5.1.2 – 20170831 www.prorealtime.com 35 / 97

Page 36: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Die Walk Forw ard-Methode

Die Walk Forward-Methode

Die Walk Forward-Analyse ist ein grundlegender Bestandteil bei der Entwicklung eines Handelssystems.Sie erlaubt die Optimierung eines Handelssystems, um dessen Stabilität über festgelegte Zeiträume zuüberprüfen.

Die "Walk Forward"-Methode optimiert zunächst eine Anzahl von Variablen auf der Grundlage einesAnfangszeitraums, "in-sample data" oder "Optimierungszeitraum" genannt. In einem weiteren Schritt werdendie besten Parameter in dem darauf folgenden Zeitraum getestet ("out-of-sample data" oder "Test-Zeitraum"genannt). Dieses Verfahren wird für alle folgenden Zeiträume wiederholt. Dieses automatisierte Verfahrenkann so häufig wie nötig durchgeführt werden. Die Optimierungszeiträume (in-sample) können eineneinzigen Ausgangspunkt (Anker-Modus) oder unterschiedliche Ausgangspunkte (nicht-verankerter Modus)haben.

NICHT-VERANKERTER MODUS VERANKERTER MODUS

Der Vergleich dieser beiden Zeiträume erlaubt Ihnen Folgendes:

Überprüfung, dass die Performance der Strategie während der Optimierungszeiträume (in-sample datahier blau angezeigt) mit jener der Testzeiträume (out-of sample data in grau angezeigt) übereinstimmt.Dies verhindert das Risiko einer "Über-Optimierung", da die Strategie in einen Zeitraum projiziert wird, dernicht selbst Teil des Optimierungszeitraums ist.

Überprüfung des Verhaltens der Strategie bei sich verändernden Marktbedingungen.

Test der Aussagekraft der Strategie auf historischen Daten.

Um festzustellen, ob eine Strategie robust ist oder nicht, verwenden wir das WFE-Verhältnis (Walk-Forward-Effizienz-Verhältnis). Das Walk-Forward-Effizienz-Verhältnis ist ein qualitativer Indikator für denOptimierungsprozess. Es vergleicht den annualisierten Gewinn der Testperiode mit dem annualisiertenGewinn des Optimierungszeitraums. Dieser Maßstab der Robustheit ist ein grundlegender Faktor der Walk-Forward-Analyse.

WFE-Verhältnis =annualisierter Gewinn der Testperiode

annualisierter Gewinn des Optimierungszeitraums

Der annualisierte Gewinn entspricht dem über einen gewissen Zeitraum erzielten Gewinn, der auf das jahrhochgerechnet wird. Dieser lässt uns die Gewinne der verschiedenen Perioden auf einer gemeinsamenBasis miteinander vergleichen. Typischerweise repräsentiert der Optimierungszeitraum (in-sample / blau imBild oben) 70% des gesamten analysierten Zeitraums und die Testperiode (out ouf sample / grau) 30%. Umdie Zuverlässigkeit der Analyse zu messen, müssen die Ergebnisse der beiden Zeiträume mit einergemeinsamen Basis bewertet werden. Untersuchungen dieser Methode belegen, dass, wenn mindestens3/5 Testperioden ein WFE-Verhältnis von mehr als 50% -60% aufweisen, die Strategie als robust angesehenwerden kann.

Nach der Walk-Forward-Methode ist es interessant, die Ergebnisse mehrerer Punkten zu analysieren. Es istnotwendig, die Regelmäßigkeit der Gewinne aus der Nach-Optimierungsperiode zu untersuchen. Wenn dieErgebnisse zeigen, dass die Strategie das Risiko einer Überoptimierung zeigt (= die Gewinne ausTestperioden sind deutlich niedriger als die der Optimierungsperioden), können Sie mit der Plattformverschiedene Parameter anpassen (Variablen, Stop- und Zielpegel, Handelsperioden) und eine neue Walk-Forward Analyse starten, so oft wie nötig, um eine robuste Strategie zu erhalten.

V 5.1.2 – 20170831 www.prorealtime.com 36 / 97

Page 37: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Die Walk Forw ard-Methode

Praktisches Beispiel

Dieser Bereich zeigt die Optimierung eines vorhandenen Handelssystems mithilfe der Walk Forward-Methode.

Klicken Sie zuerst auf das Schraubenschlüssel-Symbol oben links im Editor-Fenster wie unten angezeigt.

V 5.1.2 – 20170831 www.prorealtime.com 37 / 97

Page 38: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Die Walk Forw ard-Methode

Es öffnet sich dann das untere Fenster. Sobald Sie Ihre Variablen festgelegt haben, können Sie die WalkForward-Methode über ein Klicken auf die Schaltfläche "Aktiv" aktivieren und die entsprechenden Parameterfestlegen. Wählen Sie "Nicht verankert" für unterschiedliche Startpunkte und "Verankert" für ein einzigesStartdatum bei allen Test-Wiederholungen.

Sie können auch die Anzahl an Walk Forward-Wiederholungen festlegen (eine Wiederholung besteht in derOptimierung von Parametern des zu optimierenden Zeitraums und Testen der besten Ergebnisse innerhalb desüberprüften Zeitraums), und der sich daraus ergebenden Ratio zwischen optimiertem und getestetem Zeitraum.

Die Forschung schlägt allgemein vor, einen Optimierungszeitraum zu wählen, bei dem 70% demSimulationszeitraum und 30% der Testperiode entsprechen. Es wird auch empfohlen, mehrere Testsdurchzuführen, um die Zuverlässigkeit der Analyse zu erhöhen.

Nach dem Festlegen der Parameter schließen Sie dieses Fenster und starten die Walk Forward Analyseüber ein Klicken auf "Programm bestätigen".

V 5.1.2 – 20170831 www.prorealtime.com 38 / 97

Page 39: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Die Walk Forw ard-Methode

Während der Walk Forward-Analyse beginnt die Plattform die Optimierung der Strategie auf der Basis einesersten Zeitraums, um diejenigen Parameter zu finden, die die besten Ergebnisse erzielen. Dann wird diePerformance dieses Zeitraums für einen weiteren Zeitraum überprüft, der wiederum nicht Teil der erstenTestperiode war. Dieser Prozess wird fünf Mal wiederholt mit dem Ziel, die optimale Variablenkombination zufinden, die unter unterschiedlichen Marktbedingungen eine konstante oder bessere Performance erzielenkonnte.

Abhängig von der Anzahl an Variablen und Wiederholungen wird die Berechnung mehr oder wenigeraufwendig. Die Berechnungsgeschwindigkeit hängt von dieser Komplexität ab.

Nach erfolgter Berechnung öffnet sich ein Chart mit einer Gewinn- und Verlustkurve zusammen mit demdetaillierten Bericht in Bezug auf die Performance. Zusätzlich zu den standardmäßig vorhandenen Bereichenvergleicht der eigene Walk Forward-Bereich die Ergebnisse aller Test-Wiederholungen.

V 5.1.2 – 20170831 www.prorealtime.com 39 / 97

Page 40: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Die Walk Forw ard-Methode

Die Equity-Kurve zeigt in aggregierter Form den ersten in-sample (optimierten) Zeitraum und die 5 out-of-sample (Test-) Zeiträume im Chart an.Wenn Sie Ihre Maus über die unteren Bänder bewegen, dann wird der dazugehörende Zeitraum mit den verwendetenParametern zusammen mit der Performance für diesen Zeitraum hervorgehoben. Im oberen Bild befindet sich dieMaus im dritten Testzeitraum. Die oberen Werte für die Variablen PROTECTION, ORDERS, und NUMBER erzielendie besten Ergebnisse während des zweiten Optimierungszeitraums (in-sample #3) und wurden dann auf dieTestphase angewendet (out-of-sample #3), mit einem erzielten Gewinn von 2.000 € während der Testphase #3.Die in diesem Beispiel untersuchte Strategie scheint robust zu sein. Nur 2 der 5 Out-of-Sample-Periodenhaben eine Performance, die niedriger ist als die der entsprechenden in-sample-Perioden. Obwohl das in denTestphasen gemessene Risiko (dargestellt durch den maximalen Drawdown) im Einklang mit dem während derOptimierungsphasen gemessenen Risiko steht, zeigen die WFE-Verhältnisse das Vorhandensein einerVerzerrung an. Ein zu starkes WFE-Verhältnis kann auf eine Überoptimierung der Strategie oder einabnormales Verhalten eines Marktereignisses hindeuten. Zum Beispiel, wenn es ein wirtschaftliches Ereignisgegeben hätte, das starken Einfluss auf die Ergebnisse der Strategie hätte, dann könnten die Ergebnisse sehrunterschiedlich sein, wenn diese außergewöhnliche Marktereignis den Preis in die entgegengesetzte Richtungbewegen würde. Im Falle eines sehr hohen WFE-Verhältnisses wäre es interessant, die Anzahl der Walk-Forward-Analysen zu erhöhen und zu überprüfen, ob diese Verzerrung weiterhin besteht. Wenn dies der Fallwäre, würde dies darauf hindeuten, dass die Walk-Forward-Methode das Risiko einer Überoptimierung derStrategie zeigt und vorschlägt, die ursprünglichen Parameter zu verändern.

V 5.1.2 – 20170831 www.prorealtime.com 40 / 97

Page 41: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

ProOrder Auto mat is ier t es Trad ing

ProOrder Automatisiertes Trading

Hinweis: Wenn Sie ein Handelssystem mithilfe der Dienstleistung ProOrder ausführen, dann sendetdieser Service auf automatische Weise auf der Basis der von Ihnen festgelegten Parameter Signalezur Ausführung von entsprechenden Orderaufträgen, ohne dass Ihrerseits eine individuelleBestätigung jeder Order notwendig ist. Ihr Handelssystem wird selbst bei ausgeschaltetemComputer ausgeführt. Es liegt in Ihrer Verantwortung sicherzustellen, dass Sie Ihr Handelssystemso konfiguriert haben, dass es nicht zu einem Verlust von Beträgen führt, die den von Ihnenakzeptierten Höchstverlustes übersteigen.

In keinerlei Fall ist ProRealTime für eventuelle Verluste verantwortlich, die Sie aufgrund derAusführung Ihres automatischen Handelssystems erleiden.

Dieser Abschnitt des Handbuchs erläutert, wie zuvor als Backtest überprüfte Handelssysteme in automatischausgeführte Handelssysteme übernommen werden können.

Der erste Teil erklärt das Übermitteln eines Handelssystems nach ProOrder, um es dort für dieDurchführung als automatisiertes Handelssystem vorzubereiten.

Im zweiten Teil wird dargestellt, wie ein Handelssystem gestartet wird und wie dessen Ergebnisseüberprüft werden können.

Der dritte Teil zeigt, wie die einzelnen Parameter und die Bedingungen zur Ausführung festgelegtwerden.

Im vierten Teil wird erklärt, inwiefern manuelles und automatisiertes Traden in der Workstationgleichzeitig durchgeführt werden können.

Der fünfte Teil erläutert die Folgen, wenn bei einem Instrument mehrere automatische Handelssystemegleichzeitig ausgeführt werden.

Wir empfehlen, dass Sie vor dem ersten Starten eines Handelssystems zunächst das ganze Handbuchsorgfältig lesen, um mehr über die Ausführung von Handelssystemen zu erfahren.

V 5.1.2 – 20170831 www.prorealtime.com 41 / 97

Page 42: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

ProOrder Auto mat is ier t es Trad ing

Vorbereitung eines Handelssystems zur automatischen Ausführung

Öffnen Sie zunächst das ProOrder Fenster, indem Sie im Auswahlmenü 'Trading' auf 'ProOrder AutoTrading'klicken:

Das folgende Fenster erscheint, in dem die Anweisungen zur Vorbereitung eines Handelssystems für dasautomatische Traden angezeigt werden.

V 5.1.2 – 20170831 www.prorealtime.com 42 / 97

Page 43: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

ProOrder Auto mat is ier t es Trad ing

Wählen Sie zuerst den Chart und die Zeiteinheit, auf die Sie Ihr Handelssystem anwenden möchten und

klicken Sie dann auf die folgende Schaltfläche: . Das Fenster 'Indikatoren & Handelssysteme'

erscheint. Klicken Sie dann auf 'Handelssysteme & Automatisches Trading', um die Liste IhrerHandelssysteme einzusehen:

Wählen Sie das Handelssystem, das Sie automatisiert ausführen möchten, und klicken Sie dann auf dieSchaltfläche 'Handelssystem als Automatisches Trading'. Das Handelssystem wird dann im BereichProOrder angezeigt.

V 5.1.2 – 20170831 www.prorealtime.com 43 / 97

Page 44: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

ProOrder Auto mat is ier t es Trad ing

Starten eines Handelssystems in ProOrder und Überprüfen der Ergebnisse

Sobald Sie ein Handelssystem an ProOrder übermittelt haben, können Sie die maximale Größe der Positionfür dieses Handelssystem festlegen und die automatische Ausführung über das Klicken auf die 'Start'-Schaltfläche beginnen:

Nach dem Klicken auf 'Start' erscheint ein Popup-Fenster, das Sie sorgfältig lesen sollten und in dem Sie dieAusführung des Handelssystems bestätigen müssen.

Beachten Sie, dass die Einstellung "Max Positionsgröße" in einem ProOrder-Fenster festgelegt werdenkann, bevor Sie ein Handelssystem starten. Dieser Wert wird vor der in einem Code definiertenPositionsgröße vorrangig behandelt. Die maximale Positionsgröße für Futures und Forex wird in der Anzahlvon Lots oder Kontrakten angegeben. Wenn Ihr Code zum Beispiel den Befehl beinhaltet, 3 Lots zu kaufen,die maximale Positionsgröße jedoch auf 1 beschränkt ist, wird die Order für 3 Lots ignoriert. Ebenso, wennIhr Code die Befehle 1 Lot zu kaufen und danach 3 Lots Short zu verkaufen beinhaltet, wird die Sell ShortOrder ignoriert und Sie verbleiben mit 1 Position Long. Daher sollten Sie stets die maximale Positionsgrößeüberprüfen, bevor Sie einen Code ausführen lassen.

Für Aktien wird die maximale Positionsgröße in Cash (ohne Broker-Gebühren) angegeben.

V 5.1.2 – 20170831 www.prorealtime.com 44 / 97

Page 45: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

ProOrder Auto mat is ier t es Trad ing

Nach dem Klicken des "Start"-Buttons wird Ihr System wie in der folgenden Grafik als "zurzeit ausgeführt"angezeigt.

Sobald ein Handelssystem gestartet wurde, werden dessen Positionen, Potentieller Gewinn und absoluterGewinn im ProOrder-Fenster angezeigt. Ein Klicken auf den Link hinter 'Version' ermöglicht das Einsehendes Programmcodes dieses Handelssystems.

Sie können auch auf die in gelb hervorgehobene Schaltfläche klicken, um Gewinn- und Verlust-Kurve sowiePerformance des Handelssystems anzeigen zu lassen.

V 5.1.2 – 20170831 www.prorealtime.com 45 / 97

Page 46: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

ProOrder Auto mat is ier t es Trad ing

Hier nun ein Beispiel für eine Gewinn- und Verlust-Kurve mit entsprechendem detaillierten Bericht:

V 5.1.2 – 20170831 www.prorealtime.com 46 / 97

Page 47: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

ProOrder Auto mat is ier t es Trad ing

Hinweis: Der im Bereich 'Statistik – Geschlossene Positionen' angezeigte Gewinn kann von dem in derGewinn- und Verlust-Kurve angezeigten Wert abweichen, da das Handelssystem weiterhin ausgeführt wirdund die Gewinn- und Verlust-Kurve alle noch offenen Positionen berücksichtigt.

V 5.1.2 – 20170831 www.prorealtime.com 47 / 97

Page 48: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

ProOrder Auto mat is ier t es Trad ing

Parameter zum automatisierten Trading und Bedingungen zur Ausführung

Einstellungen beim Handelssystem

Vor dem Starten eines Handelssystems sollten Sie auf die gelb hervorgehobene Schaltfläche klicken, um dieEinstellungen in Bezug auf Ihr Trading festzulegen:

Im unteren Teil des Fensters ('Klicken Sie hier') befindet sich ein Link, über den Sie zu den Bedingungen zurAusführung Ihres Handelssystems gelangen. Wir empfehlen Ihnen, diese Bedingungen sorgfältig zu lesen.

V 5.1.2 – 20170831 www.prorealtime.com 48 / 97

Page 49: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

ProOrder Auto mat is ier t es Trad ing

Automatisches Anhalten von Handelssystemen

Gültigkeitsdatum: Alle ausgeführten Handelssysteme haben dasselbe Gültigkeitsdatum. Wenn Sie diesesnicht rechtzeitig durch Klicken auf die entsprechende Schaltfläche verlängern, wird ProOrder alleHandelssysteme automatisch anhalten. Das Gültigkeitsdatum (Zeitzone Ihres Computers) wird im unterenTeil des Fensters angezeigt; die Gültigkeit eines aktuell ausgeführten Handelssystems kann über dieentsprechende Schaltfläche verlängert werden.

Innerhalb des Fensters 'Einstellungen Trading' kann der für die Verlängerung gebilligte Zeitraum festgelegtwerden. Diese Parameter können auch bei aktuell ausgeführten Handelssystemen verändert werden. DieVeränderungen werden ab der nächsten Verlängerung berücksichtigt.

Maximale Anzahl an Orderaufträgen pro Tag: ProOrder kann jedes Handelssystem stoppen, wenneinerseits die Summe der durch das Handelssystem platzierten pending Orders ist bzw. andererseits dieAnzahl der durch das Handelssystem ausgeführten Orders seit Handelsbeginn (0:00 GMT für den Forex)größer oder mit der Anzahl des im „Automatisches Trading“-Fensters der "Einstellungen Trading" identischist. Eine pending Order ist eine an den Broker übermittelte Order, die aber weder ausgeführt,zurückgewiesen noch storniert wurde. Hierzu zählen z.B. Anweisungen wie "Set stop", "Set Trailing stop"oder "Set target", solange die entsprechende Order weder ausgeführt, zurückgewiesen noch storniert wurde.

Darüber hinaus werden 3 verschiedene Limit Orders oder Stop Orders, die noch nicht ausgeführt,zurückgewiesen oder storniert wurden, als 3 pending Orders gezählt. Dies trifft ungeachtet der Preislevels,auf denen sich die 3 Orders befinden, zu.

V 5.1.2 – 20170831 www.prorealtime.com 49 / 97

Page 50: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

ProOrder Auto mat is ier t es Trad ing

Sie haben zum Beispiel das Stop-Level auf 8 Orders gesetzt und seit Handelsbeginn wurden 5 Orders durchein vorhandenes Handelssystem ausgeführt. Dieses System hat 2 pending Orders (eine "set target" und eine"set stop") platziert und es soll nun eine zusätzliche Order platzieren: Diese 8. Order wird nicht mehrübermittelt (mit 5+2+1 Orders wird das Stop-Level erreicht). Das Handelssystem wird gestoppt, indem zuerstdie pending Orders storniert und danach die Positionen geschlossen werden.

Dieser Parameter kann auch erhöht werden, während das Handelssystem ausgeführt wird.

Zurückweisung von Orderaufträgen: Handelssysteme können auch in ProOrder angehalten werden, wennzu viele Orderaufträge zurückgewiesen werden. Sie können wählen, ob ein Handelssystem im Fall einerZurückweisung sofort angehalten wird oder eine Anzahl an Neuversuchen festlegen. Dieser Parameter kannnicht geändert werden, wenn ein Handelssystem aktuell ausgeführt wird.

Gleichzeitiges Ausführen von manuellem und automatischem Trading

Wird bei einem Instrument ein automatisches Handelssystem ausgeführt, können bei diesem Instrumentkeinerlei Orderaufträge manuell platziert werden. Sie können allerdings weiterhin andere Instrumentemanuell traden. In den Charts von Instrumenten, bei denen automatische Handelssysteme ausgeführtwerden, wird die Schaltfläche zur manuellen Orderplatzierung durch die unten gelb hervorgehobeneSchaltfläche ersetzt:

Durch Klicken auf diese Schaltfläche wird das ProOrder-Fenster geöffnet, in dem Sie die aktuellausgeführten Handelssysteme überprüfen können.

V 5.1.2 – 20170831 www.prorealtime.com 50 / 97

Page 51: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

ProOrder Auto mat is ier t es Trad ing

Ausführen mehrerer Handelssysteme bei demselben Instrument

Wenn Sie bei einem Instrument mehrere Handelssysteme gleichzeitig ausführen, dann berücksichtigt der inder Gewinn- und Verlust-Kurve angezeigte Wert alle ausgeführten Handelssysteme. Wenn z.B. zweiHandelssysteme ausgeführt werden, und dabei das erste ein Lot kauft und das zweite ein Lot verkauft, dannwird die Anzahl '0' bei den Positionen angegeben. Nur Ihre Netto-Position bei allen Ihren Handelssystemenbei einem gegebenen Instrument zum gegebenen Zeitpunkt wird im Markt geöffnet sein.

Die Gewinn und Verlust-Kurve eines Handelssystems zeigt ein Histogramm mit den vom Systemeingenommenen Positionen an. Dieses zeigt die Position eines einzelnen Handelssystems bei einemgegebenen Instrument. Die Positionsgröße kann daher von Ihrer Netto-Position bei diesem Instrumentabweichen, die wiederum von allen bei diesem Instrument ausgeführten Handelssystemen festgelegt wird.Die Netto-Position wird mittels der Positionslinie angezeigt.

Beispiel:

Zwei Handelssysteme werden bei demselben Instrument ausgeführt: ein System kauft 6 Lots zu einerPositionsgröße von 6 und das andere System kauft 2 Lots mit je einer Positionsgröße von 100.000. DieNetto-Position ist also gleich 800.000.

In diesem Beispiel wird die Position des Handelssystem mit +600.000 angezeigt. Die Netto-Position wirddurch die Positionslinie mit +800.000 dargestellt.

V 5.1.2 – 20170831 www.prorealtime.com 51 / 97

Page 52: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

ProOrder Auto mat is ier t es Trad ing

Die Netto-Position in Höhe von +800.000 wird außerdem im Portfolio-Fenster des Auswahlmenüs Tradingangezeigt:

Wenn Sie auf einem Instrument mehrere Handelssysteme gleichzeitig laufen lassen, dann werden für jedesHandelssystem die entsprechenden Positionen, Orders, Trades und Gewinne unabhängig voneinanderberücksichtigt. Infolgedessen informieren Anweisungen wie "LongOnMarket", "ShortOnMarket" darüber, obdas aktuell ausgeführte Handelssystem Long oder Short ist.

Ihre Netto-Position bei einem Instrument muss nicht mit der Position bei einem bestimmten Handelssystemübereinstimmen. Auf die gleiche Weise werden andere Status-Variablen wie "CountOfLongShares","CountOfShortShares", "CountOfPosition", "PositionPrice", "StrategyProfit", "TradeIndex”, "TradePrice" und"PositionPerf" nur auf das aktuelle Handelssystem angewendet.

Einschränkungen bei Indikatoren

Die folgenden Indikatoren können nicht im automatisierten Trading verwendet werden, da derenBerechnungsart keine Echtzeit-Benutzung erlaubt:

ZigZag: Die auf diesem Indikator basierenden Signale werden nachträglich neu-berechnet; die inEchtzeit berechneten Signale können daher stark von den in Backtests erzeugten Signalen abweichen.

Hinweis in Bezug auf individuell angepasste Zeitzonen und Handelszeiten

Wenn ein Handelssystem an ProOrder geschickt wird, dann werden die für das Instrument festgelegtenZeitzonen und Handelszeiten des entsprechenden Marktes diesem Handelssystem zugeordnet. DieseParameter werden bei jedem Starten des Handelssystems angewendet.

Zum Verändern von Zeitzone oder Handelszeiten eines Handelssystems müssen Sie zuerst dasHandelssystem aus ProOrder löschen, diese Parameter über das Auswahlmenü "Optionen / WorkstationOptionen / Zeitzonen & Handelszeiten" ändern, bevor Sie es dann erneut an ProOrder schicken.

Für weitere Informationen in Bezug auf die Zeitzone eines Charts und Erklärungen hinsichtlich individuellangepasster Handelszeiten gehen Sie bitte zum Bereich "Anpassen von Handelszeiten beimBacktesting".

V 5.1.2 – 20170831 www.prorealtime.com 52 / 97

Page 53: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

An hang A: Anzeig e der Erg ebnisse

Anhang A: Anzeige der Ergebnisse

Ein Handelssystem stellt die Ergebnisse in drei miteinander zusammenhängenden Blöcken dar:

Gewinn- und Verlust-Kurve (Equity Curve)

Die Gewinn- und Verlust-Kurve zeigt die Entwicklung des Kapitals während des Handelssystems an:

Die blaue horizontale Linie stellt das Startkapital des Handelssystems dar. Im Fall des automatischenHandels liegt diese Linie immer bei 0. Im Fall eines Backtests mit einem Startkapital von 10.000 undeinem Verlust von 2705 würde die Equity-Kurve wie im unteren Beispiel 7295 anzeigen. Im Fall einesautomatisierten Handelssystems mit demselben Verlust würde die Kurve bei Null beginnen und jetzt bei-2705 liegen.

Die Füllfarbe der Equity-Kurve wird grün dargestellt, wenn die globale Erfolgsquote positiv beurteiltwird (das Kapital ist im Vergleich zur Ausgangssumme angewachsen); in rot, wenn die allgemeineErfolgsquote negativ ist.

Die Kurvenlinie der Equity-Kurve ist grün, um eine positive Veränderung in Bezug auf das vorherigeNiveau anzuzeigen; rot, wenn es sich um eine Veränderung nach unten handelt.

V 5.1.2 – 20170831 www.prorealtime.com 53 / 97

Page 54: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

An hang A: Anzeig e der Erg ebnisse

Kurve der einzelnen Positionen

Die Kurve der einzelnen Positionen erlaubt es Ihnen, die Entwicklung der ausgeführten Position je nachHandelssystem in Form eines Histogramms darzustellen.

Ein grüner Balken zeigt das Platzieren einer Long-Position (Kauf).

Ein roter Balken zeigt das Eröffnen einer Short-Position (Verkauf).

Wird kein Balken angezeigt, heißt dies, dass sich keine Position im Markt befindet.

Das Erscheinen mehrerer Balken derselben Farbe hintereinander bedeutet, dass die Position(en) gehaltenwurden.

Die rechts neben der Grafik befindliche vertikale Achse zeigt die Anzahl der ausgeführten undangesammelten Positionen an. Im unteren Beispiel können wir sehen, dass wir uns in einer Long-Positionmit einem Lot von 100.000 beim EUR/USD befinden.

V 5.1.2 – 20170831 www.prorealtime.com 54 / 97

Page 55: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

An hang A: Anzeig e der Erg ebnisse

Detaillierter Bericht

Der detaillierte Bericht zeigt Ihnen die Statistiken Ihres Handelssystems sowie detaillierte Informationen zujeder Position und jedem Orderauftrag an:

V 5.1.2 – 20170831 www.prorealtime.com 55 / 97

Page 56: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

An hang A: Anzeig e der Erg ebnisse

Der detaillierte Bericht wird in einem unabhängigen Fenster angezeigt, der aus drei Bereichen besteht.

Der Bereich 'Statistik geschlossene Positionen' erlaubt einen ausführlichen Einblick in die Performancedes Handelssystems (Gewinne/Verluste, Anzahl an gewinnbringenden Positionen,...) und Hinweise zumRisiko. Beachten Sie dabei, dass diese Statistiken nicht die beim Erstellen des Berichtes noch offenenPositionen berücksichtigt (nur geschlossene Positionen werden erfasst).

"Gewinn" bezeichnet den erzielten Gewinn oder Verlust eines Handelssystems. DieBerechnungsformel ist die folgende:

Gewinn = Endkapital – Startkapital

Dieser Wert ermöglicht Ihnen das Erkennen des absolut möglichen Gewinns eines Handelssystems inBezug auf die überprüfte Zeitperiode und für jede Variablen-Kombination.

Hinweis: Die festgelegten Brokergebühren werden bei dieser Berechnung berücksichtigt.

"%Gewinn" bezeichnet Gewinn oder Verlust in %. Die Berechnungsmethode ist die folgende:

%Gewinn = 100 x Profit / Startkapital

"Anzahl Positionen" verweist auf die während des Backtests geöffneten Positionen.

"% gewinnbringend" zeigt % der gewinnbringenden Positionen an und wird folgendermaßenberechnet:

% gewinnbringend = (100 x Anzahl an gewinnenden Positionen) / Anzahl an Positionen

"Gewinn i.D." ist der durchschnittliche Gewinn pro Position. Es kann sinnvoll sein, die Effizienz derplatzierten Orderaufträge zu überprüfen. Dies ist insbesondere bei Handelssystemen wichtig, bei denennur eine geringe Anzahl an Orderaufträgen platziert wird. Der Wert berechnet sich so:

Durchschnittlicher Gewinn pro Position = Gewinn / Anzahl an Positionen

"Gain moyen des positions gagnantes" donne le gain des positions gagnantes et "Perte moyennedes positions perdantes" la perte moyenne des positions perdantes.

"Höchster Gewinn" bezeichnet den höchsten Gewinn bei einer gegebenen Position und "HöchsterVerlust" den höchsten bei einer gegebenen Position erzielten Verlust seit Beginn des Handelssystems."SD bei Gewinn & Verlust" entspricht der Standardabweichung bei den Ergebnissen jeder Position.

"Max Drawdown" gibt den höchstmöglichen Verlust des Handelssystems an. Der Drawdown wird alsEntfernung zwischen einem gegebenen Punkt und dem höchsten davor liegenden Punkt in der Gewinn- &Verlust-Kurve definiert:

DD(n)= Max t€[0;n] P(t) - P(n)"Max Drawdown" bezeichnet den längsten Drawdown über den gesamten Zeitraum desHandelssystems.

MaxDD(N) = Max n€[0:N] ( Maxt€[0;n] P(t) - P(n) )

"Max Run-up" ist der höchstmögliche Gewinn des Handelssystems. Der 'Runup' wird als Entfernungzwischen einem gegebenen Punkt und dem höchsten davor liegenden Punkt in der Gewinn- & Verlust-Kurvedefiniert:

RU(n)= P(n) – Min t€[0;n] P(t)

"Max Run-up" bezeichnet den höchsten Wert über den gesamten Zeitraum des Handelssystems:

MaxRU(N) = Maxn€[0:N] ( P(n) - Mint€[0 ;n]P(t) )

V 5.1.2 – 20170831 www.prorealtime.com 56 / 97

Page 57: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

An hang A: Anzeig e der Erg ebnisse

Beispiel:

BARINDEX PNL DRAWDOWN RUNUP

1 0,00 0,00 0,00

2 15,00 0,00 -15,00

3 10,00 5,00 -10,00

4 0,00 15,00 0,00

5 15,00 0,00 -15,00

6 -10,00 25,00 0,00

7 -20,00 35,00 0,00

8 -5,00 20,00 -15,00

9 -6,00 21,00 -14,00

10 20,00 0,00 -40,00

11 5,00 15,00 -25,00

Max: -35,00 40,00

V 5.1.2 – 20170831 www.prorealtime.com 57 / 97

Page 58: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

An hang A: Anzeig e der Erg ebnisse

"Max. Gefahrenpotential in %": Hiermit wird das Verhältnis zwischen höchstmöglichem Verlust bei derPosition und dem aktuellen Kapitalbetrag bezeichnet. Die Berechnungen für Aktien, Futures und Forexsehen folgendermaßen aus:

Aktien:

Max. Gefahrenpotential in % = Max Position (Anzahl * durchschnittlicher Preis / Kapital) * 100

Futures:

Max. Gefahrenpotential in % = Max Position (Sicherheitseinlage / Kapital) * 100

Forex:

Max. Gefahrenpotential in % = Max Position (Anzahl * durchschnittlicher Preis * Hebeleffekt) * 100

"Max. Gefahrenpotential i.D. in %" bezeichnet entsprechend das durchschnittliche Gefahrenpotential inProzent.

"Brokergebühren" verweisen auf die Gesamtsumme der Brokergebühren für alle seit Beginn desHandelssystems platzierten Orderaufträge. Diese Brokergebühren werden bei einem Backtest in denEinstellungen festgelegt.

"Zeit im Markt" bezeichnet die Anzahl an Balken mit offener Position geteilt durch die Anzahl an Balkenwährend des Handelssystems.

Die beiden anderen Registerkarten geben Informationen in Bezug auf die während des automatisiertenHandelssystems oder Backtests platzierten Orderaufträge sowie offenen und geschlossenen Positionen.

Unter "Order-Liste" finden Sie eine Liste aller platzierten Orderaufträge zusammen mit dementsprechenden Datum & Uhrzeit, Richtung, Anzahl und Preis. Die Uhrzeit wird in der Zeitzone desInstrumentes angezeigt.

Unter "Liste – Geschlossene Positionen" finden Sie Informationen in Bezug auf die von IhremHandelssystem eingenommenen Positionen (Long oder Short, Dauer in Anzahl Balken, Performance jederPosition, Eröffnungs- und Schließungsdatum). Sollte zum Zeitpunkt des Erstellens des Berichtes nocheine Position im Markt sein, dann wird diese nicht in der Liste angezeigt. Sollten Sie Im Fall einesBacktests alle Positionen am Ende schließen wollen, dann wählen Sie ein festes Schlussdatum anstelledes Echtzeit-Datums.

V 5.1.2 – 20170831 www.prorealtime.com 58 / 97

Page 59: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Anh ang B: Beisp ie le vo n Programmiercod es

Anhang B: Beispiele von Programmiercodes

Hinweis: Die in diesem Handbuch dargestellten Beispiele haben ausschließlich pädagogischenCharakter. Bei Ihrem persönlichen Trading sind Sie bei der Wahl Ihrer Kriterien absolut unabhängig.Alle hier dargestellten Informationen haben „allgemeinen“ Charakter und enthalten auf keinen Fallirgendwelche Informationen oder individuelle Beratung oder irgendeine AufforderungFinanzinstrumente zu kaufen oder zu verkaufen. Historische Performance ist keinesfalls einezuverlässige Kennzahl für zukünftige Performance und ist nicht konstant. Jedes Handelssystemkann Sie dem Risiko aussetzen, einen Ihre Einlage übersteigenden Verlust zu erleiden.

Auf Heikin Ashi basierendes Handelssystem

Dieses Handelssystem löst ein Kaufsignal aus, wenn in der Heikin Ashi-Darstellung eine grüne Kerze nacheiner roten Kerze erscheint. Ein Leerverkauf-Signal erscheint, wenn einer roten Kerze eine grüne Kerzefolgt.

Das Interesse dieses Backtests liegt insbesondere in der Rekonstruktion der Heikin Ashi-Darstellung, auf diekeine Handelssysteme angewendet werden können. Sie müssen daher diesen ProBacktest auf jeden Fallbei einen Chart mit Candlestick-Darstellung benutzen.

ONCE PreviousStatus = 0

IF BarIndex = 0 THEN

XClose = TotalPrice

XOpen = (Open + Close) / 2

ELSE

XClose = TotalPrice

XOpen = (XOpen[1] + Xclose[1]) / 2

ENDIF

IF XClose >= XOpen THEN

IF PreviousStatus <> 1 THEN

BUY 1 SHARES AT MARKET

PreviousStatus = 1

ENDIF

ELSE

IF PreviousStatus <> -1 THEN

SELLSHORT 1 SHARES AT MARKET

PreviousStatus = -1

ENDIF

ENDIF

V 5.1.2 – 20170831 www.prorealtime.com 59 / 97

Page 60: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Anh ang B: Beisp ie le vo n Programmiercod es

Hinweis: Die in diesem Handbuch dargestellten Beispiele haben ausschließlich pädagogischenCharakter. Bei Ihrem persönlichen Trading sind Sie bei der Wahl Ihrer Kriterien absolut unabhängig.Alle hier dargestellten Informationen haben „allgemeinen“ Charakter und enthalten auf keinen Fallirgendwelche Informationen oder individuelle Beratung oder irgendeine AufforderungFinanzinstrumente zu kaufen oder zu verkaufen. Historische Performance ist keinesfalls einezuverlässige Kennzahl für zukünftige Performance und ist nicht konstant. Jedes Handelssystemkann Sie dem Risiko aussetzen, einen Ihre Einlage übersteigenden Verlust zu erleiden.

Auf dem ZigZag basierendes Handelssystem

Dieser Backtest basiert auf dem ZigZag-Indikator, um die besten Gelegenheiten zum Kauf und Verkauf zuermitteln. Die herausragenden Ergebnisse (bei Aktien- und Futures-Märkten) gehen mit demvorhersagenden Charakter des ZigZag einher, der rückwirkend berechnet wird und daher keine systematischgültigen Echtzeit-Signale liefert. Das Interesse eines solchen Systems liegt im Erreichen einerFeineinstellung im Vergleich zu anderen Handelssystemen.

// Die Perioden des ZigZag können mithilfe einer Variablen-Optimierung optimiert werden

myZigZag = ZigZag[10]

c11 = (myZigZag > myZigZag[1])

c12 = (myZigZag < myZigZag[1])

IF c11 AND NOT LONGONMARKET THEN

BUY 1 SHARES AT MARKET

ENDIF

IF c12 AND NOT SHORTONMARKET THEN

SELLSHORT 1 SHARES AT MARKET

ENDIF

V 5.1.2 – 20170831 www.prorealtime.com 60 / 97

Page 61: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Anh ang B: Beisp ie le vo n Programmiercod es

Hinweis: Die in diesem Handbuch dargestellten Beispiele haben ausschließlich pädagogischenCharakter. Bei Ihrem persönlichen Trading sind Sie bei der Wahl Ihrer Kriterien absolut unabhängig.Alle hier dargestellten Informationen haben „allgemeinen“ Charakter und enthalten auf keinen Fallirgendwelche Informationen oder individuelle Beratung oder irgendeine AufforderungFinanzinstrumente zu kaufen oder zu verkaufen. Historische Performance ist keinesfalls einezuverlässige Kennzahl für zukünftige Performance und ist nicht konstant. Jedes Handelssystemkann Sie dem Risiko aussetzen, einen Ihre Einlage übersteigenden Verlust zu erleiden.

Handelssystem Breakout Range System mit Trailing Stop

Dieses auf einem Intraday Breakout basierende Handelssystem nimmt nur Long-Positionen ein. AlsBezugspunkt wird die Entfernung zwischen höchstem und tiefstem Punkt bei den ersten beiden Candlesticksdes Tages berechnet.

Kreuzt der Kurs den Widerstand und befindet sich der Gleitende Durchschnitt über 10 Perioden gleichzeitigin einem Aufwärtstrend, dann wird eine Long-Position eingenommen.

Es werden ein Target bei 1% sowie ein schützender Stop auf dem Niveau der Unterstützung erstellt. Sobaldder Preis dieses Niveau erreicht, wird die Position mit einer Stop-Order geschlossen.

Die Position wird außerdem um 17 Uhr (Zeitzone des Börsenmarktes) geschlossen, um zu verhindern, dassPositionen über Nacht gehalten werden. Zum Testen dieses Handelssystems wird ein Zugang mit Intraday-Daten benötigt.

DEFPARAM CumulateOrders = False

MM = Average[10](close)

MyTarget = 1

EndTime = 170000

IF INTRADAYBARINDEX = 2 THEN

MyResistance = highest[2](high)

MySupport = lowest[2](low)

ENDIF

REM Einstieg Long:

IF MM > MM[1] AND close CROSSES OVER MyResistance THEN

BUY 1 SHARES AT MARKET

ENDIF

REM Ausstieg Long:

IF time > EndTime THEN

SELL AT MARKET

ENDIF

SELL AT MySupport STOP

SET TARGET %Profit MyTarget

V 5.1.2 – 20170831 www.prorealtime.com 61 / 97

Page 62: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Anh ang B: Beisp ie le vo n Programmiercod es

Hinweis: Die in diesem Handbuch dargestellten Beispiele haben ausschließlich pädagogischenCharakter. Bei Ihrem persönlichen Trading sind Sie bei der Wahl Ihrer Kriterien absolut unabhängig.Alle hier dargestellten Informationen haben „allgemeinen“ Charakter und enthalten auf keinen Fallirgendwelche Informationen oder individuelle Beratung oder irgendeine AufforderungFinanzinstrumente zu kaufen oder zu verkaufen. Historische Performance ist keinesfalls einezuverlässige Kennzahl für zukünftige Performance und ist nicht konstant. Jedes Handelssystemkann Sie dem Risiko aussetzen, einen Ihre Einlage übersteigenden Verlust zu erleiden.

Auf dem geglätteten Stochastik basierendes Handelssystem

Diese Strategie basiert auf dem Geglätteten Stochastik-Indikator, der auf den durchschnittlichen Preis(Median, Indikator 1) sowie einen Exponentiellen Gleitenden Durchschnitt angewandt wird (Indikator 2). DasHandelssystem kauft, wenn sich Indikator 1 oberhalb des Indikators 2 befindet oder nimmt eine Short-Position ein, sobald Indikator 1 Indikator 2 unterkreuzt.

Es wird weiterhin ein Target (Limit) festgelegt, das bei 1% oberhalb des Kaufpreises liegt.

DEFPARAM CumulateOrders = False

REM Kaufen

Indicator1 = SmoothedStochastic[9,9](MedianPrice)

Indicator2 = ExponentialAverage[9](Indicator1)

// InitVariable

StopLimit = 1

c1 = (Indicator1 >= Indicator2)

REM Einstieg Long Bedingungen

IF c1 THEN

BUY 1 SHARES AT MARKET

ENDIF

REM Einstieg Short Bedingungen

IF NOT c1 THEN

SELLSHORT 1 SHARES AT MARKET

ENDIF

SET TARGET %PROFIT StopLimit

V 5.1.2 – 20170831 www.prorealtime.com 62 / 97

Page 63: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Anh ang B: Beisp ie le vo n Programmiercod es

Hinweis: Die in diesem Handbuch dargestellten Beispiele haben ausschließlich pädagogischenCharakter. Bei Ihrem persönlichen Trading sind Sie bei der Wahl Ihrer Kriterien absolut unabhängig.Alle hier dargestellten Informationen haben „allgemeinen“ Charakter und enthalten auf keinen Fallirgendwelche Informationen oder individuelle Beratung oder irgendeine AufforderungFinanzinstrumente zu kaufen oder zu verkaufen. Historische Performance ist keinesfalls einezuverlässige Kennzahl für zukünftige Performance und ist nicht konstant. Jedes Handelssystemkann Sie dem Risiko aussetzen, einen Ihre Einlage übersteigenden Verlust zu erleiden.

Swing Trading, ADX und Gleitender Durchschnitt

Dieses Handelssystem basiert auf dem ADX-Indikator sowie dessen Positionierung in Bezug auf den Wert30 seit mindestens fünf Tagen. Das Ziel ist dabei, falsche Signale herauszufiltern und so Risiken zu mindern.

Es handelt sich um ein Handelssystem, das zahlreiche Bedingungen zur Einschränkung der Anzahl anGelegenheiten aufweist.

DEFPARAM CumulateOrders = False

MyADX12 = ADX[12]

ADXperiods = 5

MyMM20 = Average[20](Close)

// Kauf

// ADX 12 muss seit mindestens 5 Balken über dem Wert 30 liegen

Condition1 = LOWEST[ADXperiods + 1](MyADX12) > 30

// Der Gleitende Durchschnitt über 20 Perioden verläuft zwischen dem Hoch und Tief deraktuellen Periode und der Gleitende Durchschnitt der vorherigen Periode verläuft zwischendem Hoch und Tief der vorherigen Periode

Condition2 = High > MyMM20 AND Low < MyMM20 AND High[1] < MyMM20[1] AND Low[1] <MyMM20[1]

// Das Hoch des aktuellen Tages ist höher als das Hoch des vorherigen Tages

Condition3 = Dhigh(0) > Dhigh(1)

IF Condition1 AND Condition2 AND Condition3 THEN

BUY 1 SHARES AT MARKET

ENDIF

// Verkauf

// ADX 12 muss seit mindestens 5 Balken über dem Wert 30 liegen

Condition4 = Condition1

// Der Gleitende Durchschnitt über 20 Perioden verläuft zwischen dem Hoch und Tief deraktuellen Periode und der Gleitende Durchschnitt der vorherigen Periode verläuft zwischendem Hoch und Tief der vorherigen Periode

Condition5 = High > MyMM20 AND Low < MyMM20 AND High[1] > MyMM20[1] AND Low[1] >MyMM20[1]

// Das Tief des aktuellen Tages ist niedriger als das Tief des vorherigen Tages

Condition6 = Dlow(0) < Dlow(1)

IF Condition4 AND Condition5 AND Condition6 THEN

SELLSHORT 1 SHARES AT MARKETENDIF

V 5.1.2 – 20170831 www.prorealtime.com 63 / 97

Page 64: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Anh ang B: Beisp ie le vo n Programmiercod es

Hinweis: Die in diesem Handbuch dargestellten Beispiele haben ausschließlich pädagogischenCharakter. Bei Ihrem persönlichen Trading sind Sie bei der Wahl Ihrer Kriterien absolut unabhängig.Alle hier dargestellten Informationen haben „allgemeinen“ Charakter und enthalten auf keinen Fallirgendwelche Informationen oder individuelle Beratung oder irgendeine AufforderungFinanzinstrumente zu kaufen oder zu verkaufen. Historische Performance ist keinesfalls einezuverlässige Kennzahl für zukünftige Performance und ist nicht konstant. Jedes Handelssystemkann Sie dem Risiko aussetzen, einen Ihre Einlage übersteigenden Verlust zu erleiden.

Handelssystem mit einem Positionszähler

Inverse Fisher Transform angewandt auf den RSI

Dieses Handelssystem verwendet den Indikator "Inverse Fisher Transform RSI" zum Platzieren von Kauf-und Verkaufsordern.

Das System platziert eine Kauforder, wenn der Indikator 'Inverse Fisher Transform RSI' den Wert 50überkreuzt und schließt die Long-Position, sobald der Indikator den Wert 80 unterkreuzt.

Eine Verkaufsorder wird platziert, sobald der Indikator 'Inverse Fisher Transform RSI' den Wert 50unterkreuzt und die Short-Position wird geschlossen, sobald der Indikator den Wert 20 überkreuzt.

Dieses Handelssystem kann bei Futures in 1-Stunden Charts und bei Aktien in Tagescharts als Backtestverwendet werden.

REM Inverse Fisher Transform angewandt auf den RSI.

REM Parameter: n = Anzahl an Balken zur Berechnung des RSI.

n = 10

Ind = RSI[n](Close)

x = 0.1 * (Ind - 50)

y = (EXP (2 * x) - 1) / (EXP (2 * x) + 1)

z = 50 * (y + 1)

myInverseFisherTransformsRSI = z

IF (myInverseFisherTransformsRSI CROSSES OVER 50) THEN

BUY 1 SHARES AT MARKET

ENDIF

IF (myInverseFisherTransformsRSI CROSSES UNDER 80) THEN

SELL AT MARKET

ENDIF

IF (myInverseFisherTransformsRSI CROSSES UNDER 50) THEN

SELLSHORT 1 SHARES AT MARKET

ENDIF

IF (myInverseFisherTransformsRSI CROSSES OVER 20) THEN

EXITSHORT AT MARKET

ENDIF

V 5.1.2 – 20170831 www.prorealtime.com 64 / 97

Page 65: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Anh ang B: Beisp ie le vo n Programmiercod es

Hinweis: Die in diesem Handbuch dargestellten Beispiele haben ausschließlich pädagogischenCharakter. Bei Ihrem persönlichen Trading sind Sie bei der Wahl Ihrer Kriterien absolut unabhängig.Alle hier dargestellten Informationen haben „allgemeinen“ Charakter und enthalten auf keinen Fallirgendwelche Informationen oder individuelle Beratung oder irgendeine AufforderungFinanzinstrumente zu kaufen oder zu verkaufen. Historische Performance ist keinesfalls einezuverlässige Kennzahl für zukünftige Performance und ist nicht konstant. Jedes Handelssystemkann Sie dem Risiko aussetzen, einen Ihre Einlage übersteigenden Verlust zu erleiden.

Handelssystem mit TRADEINDEX – Find inside bar

Das folgende Beispiel stellt ein Handelssystem dar, das auf einem häufig genutzten Preismuster namens"Inside Bar" basiert. Es existieren zwei Formen:

Die erste Form erscheint, wenn der Range zwischen der vorvorletzten Kerze (also derjenigeCandlestick, der sich 2 Positionen vor dem aktuellen Candlestick befindet) und der aktuellen Kerze größerist als derjenige zwischen dem letzten Candlestick und dem aktuellen Candlestick. Die vor dem aktuellenCandlestick befindliche Kerze muss weiß sein (Schlusskurs > Eröffnungskurs). In diesem Fall wird eineLong-Position eingenommen.

Die zweite Form tritt auf, wenn der Range zwischen der vorvorletzten Kerze (also derjenige Candlestick,der sich 2 Positionen vor dem aktuellen Candlestick befindet) und der aktuellen Kerze geringer ist alsderjenige zwischen dem letzten Candlestick und dem aktuellen Candlestick. Die vor dem aktuellenCandlestick befindliche Kerze muss schwarz sein (Schlusskurs < Eröffnungskurs). In diesem Fall wird eineShort-Position eingenommen.

Alle Positionen werden automatisch 3 Kerzen nach der jeweiligen Positionseröffnung geschlossen.

DEFPARAM CumulateOrders = False

Condition1 = (High[2] >= High[1] AND Low[2] <= Low[1])

Condition2 = (High[2] <= High[1] AND Low[2] <= Low[1])

Condition3 = (Close[1] > Open[1])

Condition4 = (Close[1] < Open[1])

IF (Condition1 AND Condition3) THEN

BUY 1 Share AT MARKET

ENDIF

IF LONGONMARKET AND (BarIndex - TRADEINDEX) = 3 THEN

SELL 1 share AT MARKET

ENDIF

IF (Condition2 AND Condition4) THEN

SELLSHORT 1 share AT MARKET

ENDIF

IF SHORTONMARKET AND (BarIndex - TRADEINDEX) = 3 THEN

EXITSHORT AT MARKET

ENDIF

V 5.1.2 – 20170831 www.prorealtime.com 65 / 97

Page 66: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Anh ang B: Beisp ie le vo n Programmiercod es

Hinweis: Die in diesem Handbuch dargestellten Beispiele haben ausschließlich pädagogischenCharakter. Bei Ihrem persönlichen Trading sind Sie bei der Wahl Ihrer Kriterien absolut unabhängig.Alle hier dargestellten Informationen haben „allgemeinen“ Charakter und enthalten auf keinen Fallirgendwelche Informationen oder individuelle Beratung oder irgendeine AufforderungFinanzinstrumente zu kaufen oder zu verkaufen. Historische Performance ist keinesfalls einezuverlässige Kennzahl für zukünftige Performance und ist nicht konstant. Jedes Handelssystemkann Sie dem Risiko aussetzen, einen Ihre Einlage übersteigenden Verlust zu erleiden.

Money Management Handelssysteme

Die Ergebnisse eines Backtests können durch Verwenden von Systemen in Bezug auf die Kapitalverwaltungverbessert werden.

Diese Systeme können als „Martingale“ festgelegt werden, die darauf zielen, die mathematische Erwartungeines Handelssystems zu optimieren. Es wird ein durchschnittlicher Gewinn oder Verlust bei jederTransaktion erwartet, wenn viele Transaktionen erfolgen. Dies setzt die Fähigkeit voraus, dieWahrscheinlichkeit einer gewinnbringenden Transaktion und den gewonnenen Betrag zu schätzen.

Zum Erstellen einer Martingale kann es sinnvoll sein, Stop Loss, Take Profit und Inaktivitätsstop für eineeventuelle Anpassung direkt im Handelssystem zu programmieren und Unter-Systeme festzulegen, die dasdynamische Verwalten einer Positionsgröße erlauben.

Schützende Stops und Profit Targets

Weitere Informationen in Bezug auf schützende Stops, Trailing Stops und Profit Targets finden Sie in denentsprechenden Bereichen dieses Handbuchs.

Inaktivitätsstops

Der folgende Programmiercode erlaubt das Verwenden eines Inaktivitätsstops in Ihrem Handelssystem.Vergessen Sie dabei nicht die Bedingungen Ihrer Stops, hier 'InactivityStopLong' und 'InactivityStopShort'genannt, festzulegen. Bei dem folgenden Beispiel wird der Stop nach 10 Balken ausgelöst.

ONCE Count = 10

REM Festlegen der Anzahl an Balken, nach der die Position automatisch geschlossen wird

IF ONMARKET AND (BARINDEX - TRADEINDEX + 1) > Count THEN

IF LONGONMARKET THEN

SELL AT MARKET

ENDIF

IF SHORTONMARKET THEN

EXITSHORT AT MARKET

ENDIF

ENDIF

V 5.1.2 – 20170831 www.prorealtime.com 66 / 97

Page 67: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Anh ang B: Beisp ie le vo n Programmiercod es

Hinweis: Die in diesem Handbuch dargestellten Beispiele haben ausschließlich pädagogischenCharakter. Bei Ihrem persönlichen Trading sind Sie bei der Wahl Ihrer Kriterien absolut unabhängig.Alle hier dargestellten Informationen haben „allgemeinen“ Charakter und enthalten auf keinen Fallirgendwelche Informationen oder individuelle Beratung oder irgendeine AufforderungFinanzinstrumente zu kaufen oder zu verkaufen. Historische Performance ist keinesfalls einezuverlässige Kennzahl für zukünftige Performance und ist nicht konstant. Jedes Handelssystemkann Sie dem Risiko aussetzen, einen Ihre Einlage übersteigenden Verlust zu erleiden.

Orderkumulierung – Hinzufügen von Kontrakten zu einer bestehenden Position

Der folgende Bereich stellt ein Beispiel vor, mit dem die Größe einer Position mittels einer Orderkumulierungerhöht werden kann.

Zum Aktivieren der Orderkumulierung geben Sie zunächst zu Beginn des Programmiercodes die Anweisung'DEFPARAM CumulateOrders=True' ein.

Dieses Handelssystem verwendet eine erste auf dem RSI basierende Bedingung, um die erste Position zueröffnen. Zusätzliche Kontrakte werden bei jedem Balken hinzugefügt, bei dem der Öffnungskurs denvorherigen Schlusskurs übersteigt; eine maximale Größe von 3 wird festgelegt.

Dabei wird der Befehl "Countofposition" verwendet, um die maximale Positionsgröße auf 3 zu beschränken.

DEFPARAM CumulateOrders = True

REM Kauf 1 Lot, wenn RSI < 30 und solange noch keine andere Position eröffnet wurde

IF NOT ONMARKET AND RSI[14](Close) < 30 THEN

BUY 1 SHARES AT MARKET

ENDIF

REM Existiert eine offene Long-Position und übersteigt der Eröffnungskurs den vorherigenSchlusskurs (open > previous close), dann wird jedes Mal ein zusätzliches Lot bis zumHöchstmaß von 3 gekauft.

IF LONGONMARKET AND Open > Close[1] AND COUNTOFPOSITION < 3 THEN

BUY 1 SHARES AT MARKET

ENDIF

REM Unterkreuzt der Preis einen einfachen Gleitenden Durchschnitt, dann wird die Positiongeschlossen.

IF Close Crosses Under Average[14](Close) THEN

SELL AT MARKET

ENDIF

Mittels dieser Hilfsmittel können wir uns nun den Martingalen zuwenden. Wir werden im Folgenden diebeliebtesten Varianten vorstellen. Diese Techniken können jedem Handelssystem hinzugefügt werden.

V 5.1.2 – 20170831 www.prorealtime.com 67 / 97

Page 68: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Anh ang B: Beisp ie le vo n Programmiercod es

Hinweis: Die in diesem Handbuch dargestellten Beispiele haben ausschließlich pädagogischenCharakter. Bei Ihrem persönlichen Trading sind Sie bei der Wahl Ihrer Kriterien absolut unabhängig.Alle hier dargestellten Informationen haben „allgemeinen“ Charakter und enthalten auf keinen Fallirgendwelche Informationen oder individuelle Beratung oder irgendeine AufforderungFinanzinstrumente zu kaufen oder zu verkaufen. Historische Performance ist keinesfalls einezuverlässige Kennzahl für zukünftige Performance und ist nicht konstant. Jedes Handelssystemkann Sie dem Risiko aussetzen, einen Ihre Einlage übersteigenden Verlust zu erleiden.

Klassische Martingale

Die klassische Martingale besteht darin, bei einem Verlust seine Position zu verdoppeln, um auf diese Weisebeim nächsten Gewinn den Verlust auszugleichen. Der größte Nachteil eines solchen Handelssystems ist,dass das Aufeinanderfolgen mehrerer Verluste das Verdoppeln der Position immer schwieriger, wenn nichtgar unmöglich macht. Wenn wir z.B. mit 1.000 € beginnen und dann fünf Mal hintereinander verlieren, dannbenötigen wir 1.000 x 32, also 32.000 €, um dieses Handelssystem fortzuführen.

Die von der Martingale abgeleiteten Handelssysteme können daher besser auf das Trading von Aktien alsauf Futures oder Währungspaare angewendet werden, da die anfangs investierten Summen bei diesenbeiden Märkten deutlich höher sein können.

Der folgenden Code muss zu Ihren eigenen Eintritts- und Austrittsbedingungen hinzugefügt werden.

//***********Zu Beginn des Handelssystems einzufügender Code**********//

ONCE OrderSize = 1

ONCE ExitIndex = -2

REM Größe der Startposition = 1

//*********************//

//*****Gleich nach dem Schließen einer Position einzufügender Code*****//

ExitIndex = BarIndex

//***********Am Ende des Handelssystems einzufügender Code**********//

IF Barindex = ExitIndex + 1 THEN

ExitIndex = 0

IF PositionPerf(1) < 0 THEN

OrderSize = OrderSize * 2

REM Double OrderSize if the last position was a losing position

ELSIF PositionPerf(1) > 0 THEN

OrderSize = 1

REM Reset position size to 1 if the last trade was a winning trade

ENDIF

ENDIF

//*********************//

REM Die Positionsgröße wird abhängig von der im ganzen Code verwendeten Variabel'OrderSize' festgelegt

V 5.1.2 – 20170831 www.prorealtime.com 68 / 97

Page 69: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Anh ang B: Beisp ie le vo n Programmiercod es

Hinweis: Die in diesem Handbuch dargestellten Beispiele haben ausschließlich pädagogischenCharakter. Bei Ihrem persönlichen Trading sind Sie bei der Wahl Ihrer Kriterien absolut unabhängig.Alle hier dargestellten Informationen haben „allgemeinen“ Charakter und enthalten auf keinen Fallirgendwelche Informationen oder individuelle Beratung oder irgendeine AufforderungFinanzinstrumente zu kaufen oder zu verkaufen. Historische Performance ist keinesfalls einezuverlässige Kennzahl für zukünftige Performance und ist nicht konstant. Jedes Handelssystemkann Sie dem Risiko aussetzen, einen Ihre Einlage übersteigenden Verlust zu erleiden.

Große Martingale

Die große Martingale ist der klassischen ähnlich, außer dass sie nicht nur die Position bei jedem Verlustverdoppelt, sondern eine zusätzliche Einheit hinzufügt.

Dieses System ist im Fall aufeinander folgender Verluste risikoreicher als die klassische Martingale, erlaubtallerdings die signifikante Erhöhung der Gewinne im umgekehrten Fall.

Der folgenden Code muss zu Ihren eigenen Eintritts- und Austrittsbedingungen hinzugefügt werden.

//***********Zu Beginn des Handelssystems einzufügender Code**********//

ONCE OrderSize = 1

ONCE ExitIndex = -2

REM Größe der Startposition = 1

//*********************//

//*****Gleich nach dem Schließen einer Position einzufügender Code*****//

ExitIndex = BarIndex

//***********Am Ende des Handelssystems einzufügender Code**********//

IF Barindex = ExitIndex + 1 THEN

ExitIndex = 0

IF PositionPerf(1) < 0 THEN

OrderSize = OrderSize * 2 + 1

REM Verdoppeln der Positionsgröße plus Hinzufügen von einem Lot, wenn die letzte

Position verlustbringend war

ELSIF PositionPerf(1) >= 0 THEN

OrderSize = 1

REM Positionsgröße auf 1 zurücksetzen, wenn die letzte Position gewinnbringend war

ENDIF

ENDIF

//*********************//

REM Die Positionsgröße wird abhängig von der im ganzen Code verwendeten Variabel'OrderSize' festgelegt

V 5.1.2 – 20170831 www.prorealtime.com 69 / 97

Page 70: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Anh ang B: Beisp ie le vo n Programmiercod es

Hinweis: Die in diesem Handbuch dargestellten Beispiele haben ausschließlich pädagogischenCharakter. Bei Ihrem persönlichen Trading sind Sie bei der Wahl Ihrer Kriterien absolut unabhängig.Alle hier dargestellten Informationen haben „allgemeinen“ Charakter und enthalten auf keinen Fallirgendwelche Informationen oder individuelle Beratung oder irgendeine AufforderungFinanzinstrumente zu kaufen oder zu verkaufen. Historische Performance ist keinesfalls einezuverlässige Kennzahl für zukünftige Performance und ist nicht konstant. Jedes Handelssystemkann Sie dem Risiko aussetzen, einen Ihre Einlage übersteigenden Verlust zu erleiden.

Piquemouche

Die Piquemouche ist eine weitere Variante der klassischen Martingale. Im Fall von Verlust wird diePositionsgröße um 1 Einheit erhöht, solange weniger als 3 aufeinander folgende Verluste aufgetreten sind.Kommt es zu mehr als 3 aufeinander folgenden Verlusten, wird die Positionsgröße verdoppelt. Ein Gewinnsetzt die Positionsgröße auf eine Einheit zurück.

Dieses Handelssystem ist weniger risikoreich als die zwei zuvor beschriebenen, da die Größe der Positionnicht auf exponentielle Weise vor 3 aufeinander folgenden Verlusten erhöht wird.

Der folgenden Code muss zu Ihren eigenen Eintritts- und Austrittsbedingungen hinzugefügt werden.

//***********Zu Beginn des Handelssystems einzufügender Code**********//

ONCE OrderSize = 1

ONCE BadTrades = 0

ONCE ExitIndex = -2

REM Größe der Startposition = 1

//*********************//

//*****Gleich nach dem Schließen einer Position einzufügender Code*****//

ExitIndex = BarIndex

//***********Am Ende des Handelssystems einzufügender Code**********//

IF Barindex = ExitIndex + 1 THEN

ExitIndex = 0

IF PositionPerf(1) < 0 THEN

BadTrades = BadTrades + 1

IF BadTrades < 3 THEN

REM Hinzufügen von einem Lot, wenn die letzte Position verlustbringend war und

weniger als 3 aufeinander folgende Verlust-Trades vorkamen

OrderSize = OrderSize + 1

ELSIF BadTrades MOD 3 = 0 THEN

REM Verdoppeln der Positionsgröße, wenn die letzte Position verlustbringend war

und mehr als 3 aufeinander folgende Verlust-Trades vorkamen

OrderSize = OrderSize * 2

ENDIF

ELSIF PositionPerf(1) >= 0 THEN

REM Positionsgröße auf 1 zurücksetzen, wenn die letzte Position gewinnbringend war

OrderSize = 1

BadTrades = 0

ENDIF

ENDIF

//*********************//

REM Die Positionsgröße wird abhängig von der im ganzen Code verwendeten Variabel'OrderSize' festgelegt

V 5.1.2 – 20170831 www.prorealtime.com 70 / 97

Page 71: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Anh ang B: Beisp ie le vo n Programmiercod es

Hinweis: Die in diesem Handbuch dargestellten Beispiele haben ausschließlich pädagogischenCharakter. Bei Ihrem persönlichen Trading sind Sie bei der Wahl Ihrer Kriterien absolut unabhängig.Alle hier dargestellten Informationen haben „allgemeinen“ Charakter und enthalten auf keinen Fallirgendwelche Informationen oder individuelle Beratung oder irgendeine AufforderungFinanzinstrumente zu kaufen oder zu verkaufen. Historische Performance ist keinesfalls einezuverlässige Kennzahl für zukünftige Performance und ist nicht konstant. Jedes Handelssystemkann Sie dem Risiko aussetzen, einen Ihre Einlage übersteigenden Verlust zu erleiden.

Die Progression d'Alembert

Diese berühmte Martingale geht auf d'Alembert zurück, den französischen Mathematiker des 18.Jahrhunderts. Im Falle eines Verlustes wird die Position um eine Einheit vergrößert und bei Gewinn um eineEinheit verkleinert.

Diese Technik zur Verwaltung der Positionsgröße ist nur sinnvoll, wenn man davon ausgeht, dass dieaufeinander folgenden Gewinne die Wahrscheinlichkeit verringern, weiter zu gewinnen und dass ein Verlustdagegen die Chance auf einen zukünftigen Gewinn erhöht.

Der folgenden Code muss zu Ihren eigenen Eintritts- und Austrittsbedingungen hinzugefügt werden.

//***********Zu Beginn des Handelssystems einzufügender Code**********//

ONCE OrderSize = 1

ONCE ExitIndex = -2

REM Größe der Startposition = 1

//*********************//

//*****Gleich nach dem Schließen einer Position einzufügender Code*****//

ExitIndex = BarIndex

//***********Am Ende des Handelssystems einzufügender Code**********//

IF Barindex = ExitIndex + 1 THEN

ExitIndex = 0

IF PositionPerf(1) < 0 THEN

OrderSize = OrderSize + 1

ELSIF PositionPerf(1) >= 0 THEN

OrderSize = MAX(OrderSize -1, 1)

ENDIF

ENDIF

//*********************//

REM Die Positionsgröße wird abhängig von der im ganzen Code verwendeten Variabel'OrderSize' festgelegt

V 5.1.2 – 20170831 www.prorealtime.com 71 / 97

Page 72: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Anh ang B: Beisp ie le vo n Programmiercod es

Hinweis: Die in diesem Handbuch dargestellten Beispiele haben ausschließlich pädagogischenCharakter. Bei Ihrem persönlichen Trading sind Sie bei der Wahl Ihrer Kriterien absolut unabhängig.Alle hier dargestellten Informationen haben „allgemeinen“ Charakter und enthalten auf keinen Fallirgendwelche Informationen oder individuelle Beratung oder irgendeine AufforderungFinanzinstrumente zu kaufen oder zu verkaufen. Historische Performance ist keinesfalls einezuverlässige Kennzahl für zukünftige Performance und ist nicht konstant. Jedes Handelssystemkann Sie dem Risiko aussetzen, einen Ihre Einlage übersteigenden Verlust zu erleiden.

Die Annulation d'Alembert

Es handelt sich um die umgekehrte Strategie der gleichnamigen Pyramiden-Progression, da hier diePositionsgröße im Fall von Verlust um eine Einheit verkleinert bzw. bei Gewinn um eine Einheit erhöht wird.

Diese Technik ist sinnvoll, wenn man davon ausgeht, dass das frühere Glück für das zukünftige Glückrepräsentativ ist.

Der folgenden Code muss zu Ihren eigenen Eintritts- und Austrittsbedingungen hinzugefügt werden.

//***********Zu Beginn des Handelssystems einzufügender Code**********//

ONCE OrderSize = 1

ONCE ExitIndex = -2

REM Größe der Startposition = 1

//*********************//

//*****Gleich nach dem Schließen einer Position einzufügender Code*****//

ExitIndex = BarIndex

//***********Am Ende des Handelssystems einzufügender Code**********//

IF Barindex = ExitIndex + 1 THEN

ExitIndex = 0

IF PositionPerf(1) < 0 THEN

OrderSize = MAX(OrderSize -1, 1)

ELSIF PositionPerf(1) >= 0 THEN

OrderSize = OrderSize + 1

ENDIF

ENDIF

//*********************//

REM Die Positionsgröße wird abhängig von der im ganzen Code verwendeten Variabel'OrderSize' festgelegt

V 5.1.2 – 20170831 www.prorealtime.com 72 / 97

Page 73: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Anh ang C: Deta i l l i er tes Beisp ie l e ines Handelss yst ems

Anhang C: Detailliertes Beispiel eines Handelssystems

Das nachfolgend beschriebene Handelssystem wird Ihnen ausschließlich zu Informationszweckenzur Verfügung gestellt. Anhand dieses Beispieles werden die Funktionalitäten der DienstleistungProOrder dargestellt. Das Ziel dieser Darstellung ist daher rein pädagogischer Natur. In keinem Fallenthält diese ausschließlich informative Beschreibung eine Empfehlung oder Anweisung in Bezugauf eine Investitionsstrategie seitens ProRealTime. Der Leser wird darauf hingewiesen, dass die indiesem Beispiel des Handelssystems angezeigten Zahlen sich auf die vergangenen Jahre beziehenund dass die (in diesem Anhang gezeigte) historische Performance keinesfalls eine zuverlässigeKennzahl für zukünftige Performance darstellt.

Dieser Anhang veranschaulicht das detaillierte Beispiel eines Handelssystems des Typs „Breakout“ (Ausbruch),das auf den 15 Minuten-Chart des Mini-Kontrakts CFD Frankreich 40 (1€ pro Punkt) angewandt wird. DessenPerformance über die letzten Jahre wird mithilfe des Simulationsmoduls ProBackTest analysiert.

Brutto-Performance1 des automatisierten Handelssystems "Breakout ProOrder", simuliert mithilfeProBacktest über den Zeitraum von siebeneinhalb Jahren.

Jährliche Brutto-Performance1

29,15%Startkapital: 2.000,00 € (1. Juli 2008)

Endkapital: 13.622,60 € (31. Dezember 2015)

Brutto-Gewinn1 über 7,5 Jahre:+11.622 €

(+ 581,1%)

2008 2009 2010 2011 2012 2013 2014 2015

Breakout ProOrderAutomatisiertes Handelssystem

+124%2 19,70% 41,90% 23,00% 0,70% 7,60% 18,10% 12,90%

CAC 40 Index1,3 -27,4%2 +22.3% -3.3% -17% +15.2% +18% -0,50% 8,50%

1 Vergangene Performance gibt keinerlei Anhaltspunkte für zukünftigeErgebnisse; die Performance und Brutto-Gewinne wurden ohneBrokergebühren (Kommissionen, Gebühren oder andere Abgaben)berechnet; diese Kosten mindern diese Performance.

2 2008: Jahr nicht vollständig3 Kursinformationen des CAC 40,geliefert von Euronext Paris.

V 5.1.2 – 20170831 www.prorealtime.com 73 / 97

Page 74: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Anh ang C: Deta i l l i er tes Beisp ie l e ines Handelss yst ems

Präsentation des automatisierten Handelssystems "Breakout ProOrder"

Ein klassisches "Breakout" System findet zuerst die Hochs und Tiefs eines Kurses innerhalb einesgegebenen Zeitraums (in unserem Beispiel die ersten 30 Minuten der Börsenkurse nach 9 Uhr) und platziertdann eine Kauforder auf dem oberen Kurslevel und eine Verkaufsorder auf dem unteren Kurslevel.

Das unten dargestellte Handelssystem "Breakout ProOrder" ist eine veränderte Version des klassischem"Breakouts".

Dieses Beispiel des Handelssystems "Breakout ProOrder" eröffnet pro Tag höchstens 2 Positionen(manchmal eine einzige oder gar keine Position) zwischen 9 Uhr 30 und 21 Uhr 45. In keinem Fall ist nach21 Uhr 45 eine offene Position am Markt. Auf diese Weise kann von diesem Moment an bereits derpotentielle Gewinn bzw. Verlust des Tages ermittelt werden.

Weitere Informationen:

Ergebnisse des Handelssystems (von 2008 bis 2015)

Beschreibung der diesem Handelssystem zugrunde liegenden Ideen

Programmcode des Handelssystems

Testen eines Handelssystems / eines Codes

V 5.1.2 – 20170831 www.prorealtime.com 74 / 97

Page 75: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Anh ang C: Deta i l l i er tes Beisp ie l e ines Handelss yst ems

Ergebnisse des Handelssystems (von 2008 bis 2015)

Hinweis in Bezug auf die Ergebnisse: Die hier dargestellten Zahlen entsprechen denen vergangener Jahre.In der Vergangenheit erreichte Performance bietet keinen zuverlässigen Anhaltspunkt für zukünftigePerformance und ist nicht über die Zeit konstant.Das untere Bild zeigt die Ergebnisse des Handelssystems beim Mini-Kontrakt CFD Frankreich 40 auf derBasis von historischen Daten, vom 1. Juli 2008 bis zum 31. Dezember 2015, also ungefähr 1650 anhandunseres Moduls ProBackTest simulierte Börsentage.

Wie oben angezeigt, liegt der durchschnittliche Gewinn im Falle einer gewinnbringenden Position auf der Basisvon 1574 eröffneten Positionen über diesen Zeitraum bei 80,33€ (höchster Gewinn: 577€); derdurchschnittliche Verlust bei verlustbringenden Positionen liegt dahingegen bei 36,82€ (höchster Verlust:99,6€). In unserem Beispiel ist die Anzahl der gewinnbringenden Positionen (593) niedriger als die Anzahl derverlustbringenden Positionen (978), wobei der Gesamtbetrag der Gewinne den Gesamtverlust übersteigt.Unter Berücksichtigung der durch den beim Mini-Kontrakt CFD Frankreich 40 in Höhe von durchschnittlich1,25€ pro Order verursachten Gebühren liegen die Kosten über diesen Zeitraum bei 3 935 €.Dies entspricht:

einer jährlichen Nettoperformance von 23,4% bei einem Kapital von 2 000€,bzw. einer jährlichen Nettoperformance von 35,3% bei einem Startkapital von 1 000€.

V 5.1.2 – 20170831 www.prorealtime.com 75 / 97

Page 76: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Anh ang C: Deta i l l i er tes Beisp ie l e ines Handelss yst ems

Hinweis:

1) Im vorgestellten Beispiel wurde für diese Simulation ein Startkapital von 2 000€ gewählt, also dasDoppelte des festgestellten höchsten Verlustes über den gesamten Zeitraum seit 2008 hätten wir dasHandelssystem zum ungünstigsten Zeitpunkt (höchster historischer Verlust von 1 184€). Eine Simulationmit einem geringeren Startkapital (z.B. 300€) wäre auch unter Berücksichtigung der aktuellen Margin von21€ beim Mini-Kontrakt CFD Frankreich 40 möglich gewesen und unter der Hypothese, dass dasHandelssystem seit dem 8. Juli 2008, Zeitpunkt des ersten Markteintritts, ungefähr 100€ in dieserSimulation verliert und dann regelmäßig Gewinn macht.

2) Im dargestellten Beispiel verändert sich nicht die Größe der Position, obwohl es theoretisch möglichgewesen wäre, dass bei jedem Kapitalzugewinn von 2 000€ jeder neuen Position zwei Mini-Kontraktehinzugefügt werden, wodurch die Performance aber auch das Risiko exponentiell wachsen würde. DieTatsache mit 2 000€ Kapital und Positionen von zwei Mini-Kontrakten zu beginnen (selbst wenn die vomBroker geforderte Margin nur bei 42€ liegt) stellt dasselbe Risiko dar, wie z.B. mit einem Kapital in Höhe von4 000€ mit 4 Mini-Kontrakten zu starten.

3) Ein CFD ist ein Kontrakt, dem der Unterschied des Preises eines Instrumentes zum Zeitpunkt desKaufes im Vergleich zum Preis desselben Instrumentes beim Verkauf zugrunde liegt. CFDs sind Produktemit Hebeleffekt. Dies bedeutet, dass der Investor nur einen Teil des Gesamtwertes seiner Marktexpositionblockiert. CFDs erlauben eine signifikante Erhöhung der Rendite einer Investition, aber die möglichenVerluste können genauso auch die Einlage des Portfolios übersteigen. CFDs richten sich an erfahreneKunden, die die damit einhergehenden Risiken verstehen und über die finanziellen Mittel verfügen, einsolches Risiko zu tragen.

Die dem Handelssystem zugrundeliegenden Ideen

Idee Nr. 1: Breakout bei 30 Minuten

Der klassische Breakout bei einem 30 Minuten-Chart erkennt die erreichten Hochs und Tiefs beimInstrument Mini-Kontrakt CFD Frankreich 40 während der wichtigen ersten dreißig Minuten des Börsentages,also zwischen 9 Uhr 00 und 9 Uhr 30 (dieser Zeitraum wird durch zwei Candlesticks von jeweils 15 Minutenin den unteren Bildern dargestellt) und legt diese Preislevels als oberes und unteres Level fest.

Es werden dann, wie im linken Bild gezeigt, auf dem oberen Level eine Stop-Kauforder und auf dem unterenLevel eine Stop-Verkaufsorder platziert:

Wird bei diesem Instrument das obere Kurslevel zuerst berührt, wird wie im rechten Bild eineKaufposition eingenommen.

Wird das untere Kurslevel bei diesem Instrument zuerst berührt, dann wird eine Verkaufspositioneingenommen.

Anzeige der Stop-Kauforder in grün und derStop-Verkauforder in rot, nachdem obere und

untere Kurs-Levels festgelegt wurden.

Anzeige der Kaufposition im Fall, dass der Kurszuerst das obere Kurs-Level erreicht und

dadurch eine Kaufposition eingenommen wird.

Hinweis:Das Handelssystem verwendet kein Take-Profit zum Schließen einer Position. Allerdings wird jede um 21Uhr 45 eventuell noch offene Position glattgestellt, um das Risiko einer Overnight-Position zu vermeiden.

V 5.1.2 – 20170831 www.prorealtime.com 76 / 97

Page 77: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Anh ang C: Deta i l l i er tes Beisp ie l e ines Handelss yst ems

Idee Nr. 2: Höchstens 2 Positionen pro Tag eröffnen

In unserem Beispiel eröffnen wir maximal 2 Positionen pro Tag (eine Kauf- und eine Verkaufsposition). Wirdeines der beiden Level zuerst berührt, wird eine Position eröffnet und das entgegengesetzte Kurs-Level wirdauf diese Weise zu einem schützenden Stop, der die Position glattstellt, sollte dieser berührt werden.

Analyse der drei Szenarien für den Fall, dass zuerst eine Kaufposition eingenommen wird:

Szenario 1:

1. Eine Kaufposition +2 wird eingenommen.

2. Der Kursverlauf des Instruments liegt während des Tages oberhalb des oberen Levels.

3. Die Position wird um 21 Uhr 45 mit einem Gewinn geschlossen.

Szenario 2:

1. Eine Kaufposition +2 wird eröffnet.

2. Der Kurs fällt bis zum niedrigeren Level.

3. Ein schützender Stop schließt die Position miteinem Verlust und eine neue Position, jetzt eineVerkaufsposition -2, wird eröffnet. DieAusgangsposition wird also umgekehrt.

4. Der Kursverlauf ist weiterhin fallend und diesezweite Verkaufsposition wird mit einem Gewinnum 21 Uhr 45 geschlossen.

Szenario 3:

1. Eine Kaufposition +2 wird eröffnet.

2. Der Kurs fällt bis zum niedrigeren Level.

3. Ein schützender Stop schließt die Position miteinem Verlust und eine neue Position, jetzt eineVerkaufsposition -2, wird eröffnet (umgekehrtePosition).

4. Der Kursverlauf steigt wieder bis zum oberenLevel. Die zweite Verkaufsposition wird durch einenschützenden Stop mit einem Verlust geschlossen(dieses Mal ohne Positionsumkehrung).

Alle oben beschriebenen Szenarien sind ebenso im umgekehrten Fall möglich, sollte zuerst eineVerkaufsposition eröffnet werden.

V 5.1.2 – 20170831 www.prorealtime.com 77 / 97

OberesLevel

UnteresLevel

Szenario 1

Szenario 2

Szenario 3 21:45

Page 78: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Anh ang C: Deta i l l i er tes Beisp ie l e ines Handelss yst ems

Idee Nr. 3: Risikobeschränkung mittels eines Maximalabstands zwischen beiden Niveaus

In unserem Beispielcode nimmt das Handelssystem den ganzen Tag keine Position ein, wenn der Abstandzwischen oberen und unterem Level mehr als 58 Punkte beträgt.

Diese Bedingung wurde zur direkten Risikobegrenzung eingeführt, da - wie in den vorhergehendenSzenarien sichtbar – das Handelssystem theoretisch höchstens den zweifachen Abstand zwischen oberemund unterem Level verlieren kann.

Der Maximalabstand ist ein Parameter innerhalb des Programmcodes und kann je nach gewünschtemRisikolevel von jedem Investor geändert werden.

Hinweis:

1) Der oben angegebene, theoretisch höchste Verlust wurde auf Basis der Orderausführungen durch zumKurs der vom Handelssystem berechneten Stop-Kurse ermittelt. In einigen Fällen kann der realeAusführungspreis vom erwünschten Stop-Kurs abweichen.

2) Sollten die Hoch- und Tief-Levels zwischen 9 Uhr 00 und 9 Uhr 30 mehrmals pro Tag zwischen 9 Uhr 30und 21 Uhr 45 erreicht werden (Beispiel des verlustbringenden Szenarios 3) und dies ab heute jeden Tag,dann werden die Ergebnisse dieses Handelssystems folgendermaßen negativ und das Startkapital wirdverloren.

3) Das Handelssystem kann eventuell eine dritte Position an demselben Tag eröffnen, wenn Kauf- undVerkaufsorder beide in demselben Zeitraum von 15 Minuten nach Festlegen der beiden Levels erreichtwerden.

4) Unser Trading-Modul ProOrder ermöglicht die einfache Simulation des Handelssystems mitunterschiedlichen Höchstabständen. Diese Variablen-Optimierung zeigt uns, dass die Performance desSystems bei einem höheren Abstand über den Zeitraum besser gewesen wäre, aber dass wir in diesemFall eine höheres Verlustrisiko pro Transaktion eingegangen wären, da die schützenden Stops weiter vonden Einstiegspositionen entfernt gelegen hätten.

V 5.1.2 – 20170831 www.prorealtime.com 78 / 97

Unteres Level

Oberes Level

Maximaler Abstand:

In unserem Beispielcode eröffnet das Handelssystem denganzen Tag keine Position, wenn der Abstand zwischenoberen und unterem Level mehr als 58 Punkte beträgt(Parameter kann im Code verändert werden).

Page 79: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Anh ang C: Deta i l l i er tes Beisp ie l e ines Handelss yst ems

Idee Nr. 4: Erhöhung der Chancen einer günstigen Orderausführung

In unserem Beispiel gehen wir davon aus, dass die Hoch- und Tief-Levels wichtigen Unterstützungs- undWiderstandszonen entsprechen, bei denen zahlreiche Investoren Orderaufträge platziert haben. DieserSachverhalt wird durch die Tatsache bestätigt, dass es im Fall des Durchbruchs eines Hochs oder Tiefseinige Sekunden lang zu einer beschleunigten Kursbewegung in Richtung der Durchbruchstendenz kommt.

Um direkt von diesem eventuellen Phänomen einer Trendverstärkung nach dem Durchbruch zu profitierenund damit zugleich die Chancen einer günstigen Orderausführung zu erhöhen, haben wir dasHandelssystem dementsprechend konfiguriert, dass es ausschließlich Stop-Orders in einem Abstand von 4Punkten unterhalb des oberen Levels sowie oberhalb des unteren Levels platziert (siehe unteres Bild).Dieser im Programmcode "DistanceOrder" genannte Parameter von 2,5 kann je nach Wunsch des Tradersgeändert werden.

Hinweis:

1) Diese Bedingung verringert den Abstand zwischen Kauf- und Verkaufsorder auf 2 x 4 Punkte und damitdas maximale Risiko des Handelssystems, da in unserem Beispiel letztendlich 50 Punkte zwischen diesenbeiden Orderaufträgen liegen. Der neue theoretische Höchstverlust im Rahmen des Systems liegt daherbei 200€ pro Tag (die zweifache Amplitude x 50€ x 2 Positionen).

2) Für den Fall, dass sich zahlreiche Investoren in derselben Richtung wie das Handelssystem bei denKauf- und Verkauf-Levels positionieren sollten, dann kann der Parameter „DistanceOrdre“ angepasstwerden (z.B. auf 4,5 oder 5 oder 5,5 oder mehr), um die Beschleunigung zu profitabel zu nutzen, die nachAusführung der eigenen Order auftreten mag.

V 5.1.2 – 20170831 www.prorealtime.com 79 / 97

Page 80: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Anh ang C: Deta i l l i er tes Beisp ie l e ines Handelss yst ems

Idee Nr. 5: Zum Vermeiden falscher Signale nur bei eindeutigen Breakouts handeln

Fall 1: Der Kurs liegt um 9 Uhr 30 zu nah am oberen bzw. unteren Level

Wir haben unser Beispiel so ausgerichtet, dass das Handelssystem keine Order platziert, wenn der Kurs desentsprechenden Instrumentes am Ende der zweiten Periode von 15 Minuten zu nahe am oberen bzw.unteren Level verläuft.

In einem solchen Fall wartet das Handelssystem weitere 15 Minuten.

Falls der Kurs am Ende der folgenden 15-Minuten-Periode (also um 9 Uhr 45) immer noch zu nah an denLevels verläuft, dann wartet das Handelssystem weitere 15 Minuten ab. Dieses wird so oft wiederholt, bis dieLevels festgelegt werden können. Sollte allerdings an einem gegebenen Tag der maximale Abstand von 58Punkten überschritten werden, dann öffnet das Handelssystem an diesem Tag keine Position.

Der zur Abstandmessung zwischen oberen und unterem Level verwendete Parameter ("PourcentageMin" imProgrammcode genannt) wurde hier auf 30% voreingestellt. Er kann allerdings je nach Wunsch des Tradersangepasst werden.

In dem linken Bild verläuft der Schlusskurs jederPeriode bis zum Candlestick um 10 Uhr 45 zu nah amunteren Level.

Das untere Level wurde daher bis zum Schlusskursdes Candlesticks von 10 Uhr 45 – 11 Uhr 00herabgesetzt.

Allerdings beträgt der Abstand zwischen oberem undunterem Level zu diesem Zeitpunkt mehr als 58Punkte; unser Handelssystembeispiel wird an diesemTag keine Position eröffnen.

V 5.1.2 – 20170831 www.prorealtime.com 80 / 97

Page 81: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Anh ang C: Deta i l l i er tes Beisp ie l e ines Handelss yst ems

Fall 2: Der Abstand zwischen oberem und unterem Level ist zu gering

In unserem Beispiel vermeidet das Handelssystem außerdem Situationen, in denen der Abstand zwischenoberem und unterem Level zu gering ist (der Durchbruch könnte entsprechend als nicht signifikant betrachtetwerden). Das System misst also den Abstand zwischen Kauf- und Verkauf-Order: Beträgt dieser Abstandweniger als 11 Punkte (der entsprechende Parameter "AmplitudeMin" kann im Code verändert werden), dannwird an diesem Tag keine Position eröffnet.

Idee Nr. 6: Keine Positionseinnahme, sollte nicht ausreichend Zeit übrig sein

Wir haben in unserem Beispielcode festgelegt, dass wir nie nach 21 Uhr 45 eine offene Position habenmöchten; dementsprechend haben wir das Handelssystem so konfiguriert, dass niemals eine neue Positionnach 17 Uhr eröffnet wird.

Im Fall eines verkürzten Börsentages aufgrund eines Feiertags (z.B. Weihnachten oder Sylvester) eröffnetdas Handelssystem keine Position.

Dieser Parameter in Bezug auf die Uhrzeit, ab der die Signale vom Handelssystem nicht mehr berücksichtigtwerden sollen, kann ebenfalls im Programmcode individuell angepasst werden.

V 5.1.2 – 20170831 www.prorealtime.com 81 / 97

Page 82: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Anh ang C: Deta i l l i er tes Beisp ie l e ines Handelss yst ems

Das nachfolgend beschriebene Handelssystem wird Ihnen ausschließlich zu Informationszweckenzur Verfügung gestellt. Anhand dieses Beispieles werden die Funktionalitäten der DienstleistungProOrder dargestellt. Das Ziel dieser Darstellung ist daher rein pädagogischer Natur. In keinem Fallenthält diese ausschließlich informative Beschreibung eine Empfehlung oder Anweisung in Bezugauf eine Investitionsstrategie seitens ProRealTime. Der Leser wird darauf hingewiesen, dass die indiesem Beispiel des Handelssystems angezeigten Zahlen sich auf die vergangenen Jahre beziehenund dass die (in diesem Anhang gezeigte) historische Performance keinesfalls eine zuverlässigeKennzahl für zukünftige Performance darstellt.

Nutzen Sie eine Programmierassistenz über das vorgesehene Formular.

Programmcode des Handelssystems "Breakout ProOrder"

// Es werden keine Daten vor Start des Handelssystems geladen.

// Im Fall eines ersten Starts dieses Handelssystems an einem Nachmittag, wird auf diese

// Weise der nächste Tag abgewartet, um mögliche Kauf- und Verkauf-Order festzulegen.

DEFPARAM PreLoadBars = 0

// Die Position wird um 21 Uhr 45 (lokale Zeitzone) glattgestellt.

DEFPARAM FlatAfter = 214500

// Keine neue Position nach dem Candlestick, der um 17 Uhr 15 schließt.

LimitEntryTime = 171500

// Marktanalyse beginnt mit dem 15 Minuten-Candlestick, der um 9 Uhr 15 schließt.

StartTime = 091500

// Feiertage wie 24. und 31. Dezember werden ausgeschlossen.

IF (Month = 5 AND Day = 1) OR (Month = 12 AND (Day = 24 OR Day = 25 OR Day = 26 OR Day = 30 OR Day =31)) THEN

TradingDay = 0

ELSE

TradingDay = 1

ENDIF

// Die Variablen können je nach Wunsch individuell angepasst werden

PositionSize = 2

AmplitudeMax = 58

AmplitudeMin = 11

OrderDistance = 4

MinPercent = 30

// Diese Variable wird ein einziges Mal vor dem Start des Handelssystems initialisiert.

ONCE StartTradingDay = -1

// Die während des Tages sich verändernden Variablen werden

// beim ersten Balken jeden neuen Börsentages initialisiert.

IF (Time <= StartTime AND StartTradingDay <> 0) OR IntradayBarIndex = 0 THEN

BuyLevel = 0

SellLevel = 0

BuyPosition = 0

SellPosition = 0

StartTradingDay = 0

ELSIF Time >= StartTime AND StartTradingDay = 0 AND TradingDay = 1 THEN

// Der Index des ersten Balkens des Börsentages wird gespeichert.

IndexStartDay = IntradayBarIndex

StartTradingDay = 1

V 5.1.2 – 20170831 www.prorealtime.com 82 / 97

Page 83: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Anh ang C: Deta i l l i er tes Beisp ie l e ines Handelss yst ems

ELSIF StartTradingDay = 1 AND Time <= LimitEntryTime THEN

// Für jeden Börsentag legen wir alle 15 Minuten fest:

// höchster und niedrigster Kurs des Instrumentes seit StartTime

// solange die Kauf- und Verkauf-Levels nicht festgelegt sind.

IF BuyLevel = 0 OR SellLevel = 0 THEN

UpperLevel = Highest[IntradayBarIndex - IndexStartDay + 1](High)

LowerLevel = Lowest [IntradayBarIndex - IndexStartDay + 1](Low)

// Berechnung des Abstands zwischen höchsten Wert

// und niedrigstem Wert des Instrumentes seit StartTime

DayDistance = UpperLevel - LowerLevel

// Berechnung des gewünschten geringsten Abstands zur Berücksichtigung eines Durchbruchs

// der höchsten oder der niedrigsten Werte durch Kurse für einen signifikanten Durchbruch.

EcartMin = DayDistance * MinPercent / 100

// Berechnung der Kauf- und Verkauf-Levels des Tages, sollten die Bedingungen vorliegen.

IF DayDistance <= AmplitudeMax THEN

IF SellLevel = 0 AND (Close - LowerLevel) >= EcartMin THEN

SellLevel = LowerLevel + OrderDistance

ENDIF

IF BuyLevel = 0 AND (UpperLevel - Close) >= EcartMin THEN

BuyLevel = UpperLevel - OrderDistance

ENDIF

ENDIF

ENDIF

// Erstellen der Kauf- und Leerverkauf-Order für den Tag, wenn die Bedingungen vorliegen

IF SellLevel > 0 AND BuyLevel > 0 AND (BuyLevel - SellLevel) >= AmplitudeMin THEN

IF BuyPosition = 0 THEN

IF LongOnMarket THEN

BuyPosition = 1

ELSE

BUY PositionSize CONTRACT AT BuyLevel STOP

ENDIF

ENDIF

IF SellPosition = 0 THEN

IF ShortOnMarket THEN

SellPosition = 1

ELSE

SELLSHORT PositionSize CONTRACT AT SellLevel STOP

ENDIF

ENDIF

ENDIF

ENDIF

// Festlegung der Ausstiegsbedingungen, wenn Kauf-Position oder Leerverkauf-Position eingenommen wurde.

IF LongOnMarket AND ((Time <= LimitEntryTime AND SellPosition = 1) OR Time > LimitEntryTime) THEN

SELL AT SellLevel STOP

ELSIF ShortOnMarket AND ((Time <= LimitEntryTime AND BuyPosition = 1) OR Time > LimitEntryTime) THEN

EXITSHORT AT BuyLevel STOP

ENDIF

// Festlegen des höchsten Verlustrisikos pro Position

// im Falle eines ungünstigen Kursverlaufs des Instruments

SET STOP PLOSS AmplitudeMax

V 5.1.2 – 20170831 www.prorealtime.com 83 / 97

Page 84: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Anh ang C: Deta i l l i er tes Beisp ie l e ines Handelss yst ems

Testen eines Handelssystems / Programmcodes

Virtuelles Portfolio (PaperTrading)

Wenn Sie über ein Nutzerkonto auf www.ProRealTime.com verfügen, dann können Sie Ihre Handelssystememittels eines virtuellen Portfolios im Modus „PaperTrading“ ausführen.

Der PaperTrading-Modus erlaubt Ihnen das tägliche Überprüfen Ihres Handelssystems unter echtenMarktbedingungen.

Sie können hierdurch in Echtzeit die von Ihrem Handelssystem eingenommenen Positionen sehen undzugleich Ihre eigenen Reaktionen in Bezug auf automatisiertes Trading testen. Beachten Sie, dass Sie denWert Ihres virtuellen PaperTrading-Portfolios so oft Sie es wünschen zurücksetzen können, um eine neueSimulation zu beginnen.

Echter Trading-Modus

ProOrder AutoTrading steht mit einem Echtgeld-Modus beim Brokerangebot „IG-Konto sponsored byProRealTime“ zur Verfügung.

Mehr über das Brokerangebot "IG-Konto sponsored by ProRealTime" erfahren

Hinweis: Wenn Sie ein Handelssystem mittels der Dienstleistung ProOrder im Echtgeld-Trading-Modus ausführen, dann schickt diese Dienstleistung automatisch die auf der Basis der von Ihnenfestgelegten Parameter erstellten Signale zum Zweck einer entsprechenden Orderausführung, ohnedass eine individuelle Bestätigung jeder Order Ihrerseits benötigt wird. Ihr Handelssystem wirdautomatisch ausgeführt, selbst wenn Ihr Computer ausgeschaltet ist. Es liegt in Ihrer Verantwortungsicherzustellen, dass Sie Ihr Handelssystem dermaßen konfiguriert haben , dass es nicht zu einemVerlust führt, dessen Betrag den von Ihnen akzeptierten Verlustbetrag übersteigt.

In keinem Fall ist ProRealTime für etwaige Verluste in Folge der Ausführung Ihrer automatisiertenHandelssysteme verantwortlich.

Wir weisen Sie darauf hin, dass CFDs aufgrund ihres Hebeleffekts Sie einem Verlustrisiko aussetzen,bei dem Ihre Verluste Ihre Einlage übertreffen können. Diese Produkte richten sich an sich dessenbewusste Kunden, die dieses Risikolevel schätzen und die über die entsprechenden Finanzmittelverfügen, um solch ein Risiko einzugehen.

V 5.1.2 – 20170831 www.prorealtime.com 84 / 97

Page 85: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Glossar

Glossar

A

CODE SYNTAX FUNKTION

ABS ABS(a) Mathematische Funktion 'Absoluter Wert'

AccumDistr AccumDistr(price) Klassische Kumulierung/Verlaufs Indikator

ADX ADX[N] Indikator 'Average Directional Index'

ADXR ADXR[N] Indikator 'Average Directional Index Rate'

AND a AND b Operator zur logischen Verknüpfung UND

AroonDown AroonDown[P] Aroon-Indikator fallend

AroonUp AroonUp[P] Aroon-Indikator steigend

ATAN ATAN(a) Mathematische Funktion 'Arkustangens'

AS RETURN x AS "ResultName" Instruktion zur Benennung einer Kurve (nur Indikatoren)

AT AT (price) Zuordnung zu einem Preis

Average Average[N](price) Arithmetischer Gleitender Durchschnitt

AverageTrueRange AverageTrueRange[N](price) Gleitender Durchschnitt mit Glättung des True Range nach Wilder

B

CODE SYNTAX FUNKTION

BACKGROUNDCOLOR BACKGROUNDCOLOR(R,V,B,a)

Erlaubt das Einfärben des Chart-Hintergrunds oder bestimmter Balken (wie bei geraden bzw. ungeraden Tagen)

BarIndex BarIndex Zählt die im Chart angezeigten Candlesticks

BollingerBandWidth BollingerBandWidth[N](price) Bollinger Bandbreite

BollingerDown BollingerDown[N](price) Unteres Bollinger-Band (Unterstützung)

BollingerUp BollingerUp[N](price) Oberes Bollinger-Band (Widerstand)

BREAK (FOR...DO...BREAK...NEXT) oder (WHILE...DO...BREAK...WEND)

Instruktion zum Abbrechen einer FOR oder WHILE Schleife

BUY BUY (n) SHARES Befehl zur Eröffnung einer Long-Position

V 5.1.2 – 20170831 www.prorealtime.com 85 / 97

Page 86: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Glossar

C

CODE SYNTAX FUNKTION

CALCULATEONLASTBARS DEFPARAM CalculateOnLastBars = 200

Erlaubt das Erhöhen der Berechnungsgeschwindigkeit eines Indikators durch Festlegen der für das Ergebnis verwendeten Balkenanzahl

CALL myResult=CALL myFunction Einbeziehung eines persönlichen Indikators

CASH BUY x CASH Zu verwendender Betrag

CCI CCI[N](price) oder CCI[N] 'Commodity Channel Index'

ChaikinOsc ChaikinOsc[Ch1, Ch2](price) 'Chaikin-Oszillator'

Chandle Chandle[N](price) 'Chande Momentum Oszillator'

ChandeKrollStopUp ChandeKrollStopUp[Pp, Qq, X]

Schützender Stop nach Chande und Kroll bei Kauf-Positionen

ChandeKrollStopDown ChandeKrollStopDown[Pp, Qq, X]

Schützender Stop nach Chande und Kroll bei Verkauf-Positionen

Close Close[N] Schlusskurs der aktuellen oder der n-letzten Kerze

COLOURED RETURN x COLOURED(R,G,B)

Festlegen einer Chartlinie in einer Farbe nach RGB (nur Indikatoren)

COS COS(a) Kosinus Funktion

COUNTOFLONGSHARES COUNTOFLONGSHARES Berechnet die Anzahl der Titel in Long-Position

COUNTOFPOSITION COUNTOFPOSITION Berechnet die Anzahl an Positionen (Kauf oder Verkauf)

COUNTOFSHORTSHARES COUNTOFSHORTSHARES Berechnet die Anzahl der Titel in Short-Position

CONTRACT BUY 1 CONTRACT Anzahl an zu kaufenden Titeln (Synonym von 'Shares')

CROSSES OVER a CROSSES OVER b Boolean-Operator zur Überprüfung, ob eine Kurve eine andere überkreuzt

CROSSES UNDER a CROSSES UNDER b Boolean-Operator zur Überprüfung, ob eine Kurve eine andere unterkreuzt

cumsum cumsum(price) Errechnet einen bestimmten Kurs anhand aller geladenen Daten

CumulateOrders DEFPARAM CumulateOrders=true/false

Autorisiert Orderkumulierung in derselben Richtung

CustomClose CustomClose[N] Im Einstellungsfenster des Charts anpassbare Bedingung (Standard: Schlusskurs)

Cycle Cycle(price) Indikator 'Cycle'

V 5.1.2 – 20170831 www.prorealtime.com 86 / 97

Page 87: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Glossar

D

CODE SYNTAX FUNKTION

Date Date[N] Gibt das Datum des Schlusskurses des aktuellen Balkens an

Day Day[N] Gibt den Tag des aktuellen Balkens an

Days Days[N] Zählt Tage seit 1970

DayOfWeek DayOfWeek[N] Gibt den Wochentag an, an dem der aktuelle Balken geschlossen wurde

DClose DClose(N) Schlusskurs vom n-ten Tag vor dem aktuellen Balken

DEFPARAM DEFPARAM Erlaubt das Festlegen von Parametern

DEMA DEMA[N](price) Doppelt exponentieller Gleitender Durchschnitt

DHigh DHigh(N) Tageshoch des n-ten Balkens vor dem aktuellenBalken

DI DI[N](price) Indikator 'Demand Index'

DIminus DIminus[N](price) Indikator DI-

DIplus DIplus[N](price) Indikator DI+

DLow DLow(N) Tagestief des n-ten Tages vor dem aktuellen Balken

DO Vgl. FOR und WHILE Optionaler Befehl für 'FOR' und 'WHILE' zur Definition der Schleife

DOpen DOpen(N) Tageseröffnungskurs des n-ten Tages vor dem aktuellen Balken

DOWNTO Vgl. FOR Befehl in der 'FOR' Schleife zur Ausführung in absteigender Reihenfolge

DPO DPO[N](price) Indikator 'Detrended Price Oszillator'

DRAWARROW DRAWARROW(x1,y1) Zeichnet einen nach rechts zeigenden Pfeil

DRAWARROWDOWN DRAWARROWDOWN(x1,y1) Zeichnet einen nach unten zeigenden Pfeil

DRAWARROWUP DRAWARROWUP(x1,y1) Zeichnet einen nach oben zeigenden Pfeil

DRAWBARCHART DRAWBARCHART(open,high,low,close)

Zeichnet einen persönlichen Barchart in den Chart. Open, high, low und close können Konstanten oder Variablen sein

DRAWCANDLE DRAWCANDLE(open,high,low,close)

Zeichnet einen persönlichen Candlestick in den Chart. Open, high, low und close können Konstanten oder Variablen sein

DRAWELLIPSE DRAWELLIPSE(x1,y1,x2,y2) Zeichnet eine Ellipse in den Chart

DRAWHLINE DRAWHLINE(y1) Zeichnet eine horizontale Linie in den Chart

DRAWLINE DRAWLINE(x1,y1,x2,y2) Zeichnet eine Linie in den Chart

DRAWONLASTBARONLY DEFPARAM DrawOnLastBarOnly = true

Dieser Parameter erlaubt es, Objekte nur auf dem letzten Balken zu zeichnen.

DRAWRECTANGLE DRAWRECTANGLE(x1,y1,x2,y2)

Zeichnet ein Rechteck in den Chart

V 5.1.2 – 20170831 www.prorealtime.com 87 / 97

Page 88: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Glossar

DRAWSEGMENT DRAWSEGMENT(x1,y1,x2,y2) Zeichnet ein Segment in den Chart

DRAWTEXT DRAWTEXT("your text", x1, y1)

Hiermit kann dem Chart an einem bestimmten Ort ein Textfeld mit dem Inhalt Ihrer Wahl hinzugefügt werden

DRAWVLINE DRAWVLINE(x1) Zeichnet eine vertikale Linie in den Chart

E

CODE SYNTAX FUNKTION

EaseOfMovement EaseOfMovement[I] Indikator 'Ease of Movement'

ELSE Vgl. IF/THEN/ELSE/ENDIF Befehl zum Aufrufen der zweiten Bedingung innerhalb von IF-bedingten Bedingungen

ELSEIF Vgl. IF/THEN/ELSIF/ELSE/ENDIF

Steht für ELSE IF (wird innerhalb der bedingten Schleife verwendet)

EMV EMV[N] Indikator 'Ease of Movement Value'

ENDIF Vgl. IF/THEN/ELSE/ENDIF Schlussbefehl für IF-bedingte Angaben

EndPointAverage EndPointAverage[N](price) Endpunkt eines Gleitenden Durchschnitts

EXITSHORT EXITSHORT x SHARES Befehl zum Schließen einer Short-Position

EXP EXP(a) Mathematische Funktion "Exponentiell"

ExponentialAverage ExponentialAverage[N](price) Exponentieller Gleitender Durchschnitt

F - G

CODE SYNTAX FUNKTION

FOR/TO/NEXT FOR i=n TO p DO NEXT

FOR i=p DOWNTO n DO NEXT

FOR Schleife (berechnet alle Werte in ansteigender (TO) oder absteigender (DOWNTO) Reihenfolge)

FLATAFTER DefParam FlatAfter = HHMMSS

Annulliert jede schwebende Order, schließt alle offenen Positionen und verhindert das mögliche Hinzufügen neuer Orderaufträge nach der festgelegten Uhrzeit (ein Stunden, Minuten und Sekunden) in der Zeitzone des Nutzers

FLATBEFORE Defparam FlatBefore = HHMMSS

Annulliert jede schwebende Order, schließt alle offenen Positionen und verhindert das mögliche Hinzufügen neuer Orderaufträge vor der festgelegten Uhrzeit (ein Stunden, Minuten und Sekunden) in der Zeitzone des Nutzers

ForceIndex ForceIndex(price) Indikator 'Force Index' zum Ermitteln, wer zurzeit den Markt dominiert (Käufer oder Verkäufer)

GRAPH GRAPH myvariable AS "myvariable"

Backtest-Anweisung, die die Anzeige von Variablen-Werten bei historischen Daten erlaubt

V 5.1.2 – 20170831 www.prorealtime.com 88 / 97

Page 89: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Glossar

H

CODE SYNTAX FUNKTION

High High[N] Hoch des aktuellen Balkens oder des n-letzten Balkens

Highest highest[N](price) Höchster Kurs über eine vorher definierte Anzahl von Balken

HistoricVolatility HistoricVolatility[N](price) Historische oder statistische Volatilität

Hour Hour[N] Gibt die Stunde des Schlusskurses von jedem im Chart geladenen Balken an

I - J - K

CODE SYNTAX FUNKTION

IF/THEN/ENDIF IF a THEN b ENDIF Gruppe von bedingten Anweisungen ohne eine zweite Anweisung

IF/THEN/ELSE/ENDIF IF a THEN b ELSE c ENDIF Gruppe von bedingten Anweisungen

IntradayBarIndex IntradayBarIndex[N] Zählt die Menge an Balken in einem Intraday-Chart

L

CODE SYNTAX FUNKTION

LIMIT BUY AT x LIMIT Befehl zum Eröffnen einer Limit-Order

LinearRegression LinearRegression[N](price) Indikator 'Lineare Regression'

LinearRegressionSlope LinearRegressionSlope[N](price)

Steigung des Indikators 'Lineare Regression'

LOG LOG(a) Mathematische Funktion "Neperian Logarithmus"

LONGONMARKET LONGONMARKET Gibt an, ob Sie offene Kauf-Positionen (=Long) im Markt haben

Low Low[N] Tief des aktuellen Balkens oder von dem n-letzten Balken

lowest lowest[N](price) Tiefstkurs über eine vorher definierte Anzahl vonBalken

LOSS SET STOP LOSS x Erstellt einen Stop Loss in einer Entfernung von x Einheiten zum Kurs

%LOSS SET STOP %LOSS x Platziert einen Stop Loss in einer Entfernung von x % zum Einstiegspreis

$LOSS SET STOP $LOSS x Platziert einen Stop Loss, so dass der Verlust gleich x €,$ (Devise des Instruments) ist

LOT BUY 1 LOT Festlegen der zu kaufenden Lot-Anzahl (Synonym von "SHARE")

V 5.1.2 – 20170831 www.prorealtime.com 89 / 97

Page 90: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Glossar

M

CODE SYNTAX FUNKTION

MACD MACD[S,L,Si](price) Indikator 'Moving Average Convergence Divergence (MACD)'

MACDline MACDLine[S,L](price) Bezeichnet die Linie des MACD

MARKET BUY AT MARKET Order zum Marktpreis

MassIndex MassIndex[N] Indikator 'Mass Index' angewandt über n Balken

MAX MAX(a,b) Mathematische Funktion 'Maximum'

MedianPrice MedianPrice Durchschnitt von Hoch und Tief

MIN MIN(a,b) Mathematische Funktion 'Minimum'

Minute Minute Gibt die Minute von jedem im Chart geladenen Balken an

MOD a MOD b Mathematische Funktion 'Division mit Rest'

Momentum Momentum[I] Momentum Indikator (Schluss – Schluss des n-letzten Balkens)

MoneyFlow MoneyFlow[N](price) Indikator 'MoneyFlow' (Ergebnis zwischen -1 und 1)

MoneyFlowIndex MoneyFlowIndex[N] Indikator 'MoneyFlow Index'

Month Month[N] Gibt den Monat von jedem im Chart geladenen Balken an

N

CODE SYNTAX FUNKTION

NegativeVolumeIndex NegativeVolumeIndex[N] Ermittelt Index bzgl. des negativen Volumens

NEXT Vgl. FOR/TO/NEXT Schlussbefehl für die 'FOR'-Schleife

NextBarOpen AT MARKET NextBarOpen Order, die bei Eröffnung des nächsten Balkens ausgeführt wird

NOCASHUPDATE DEFPARAM NOCASHUPDATE=true/false

Erlaubt bei Backtests, dass das Startkapital nicht durch Gewinne/Verluste aktualisiert wird

NOT Not A Logischer Operator NOT

V 5.1.2 – 20170831 www.prorealtime.com 90 / 97

Page 91: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Glossar

O

CODE SYNTAX FUNKTION

OBV OBV(price) Indikator 'On-Balance-Volume'

ONCE ONCE VariableName = VariableValue

Einführung einer Definitionsanweisung, die nur einmal ausgeführt wird

ONMARKET ONMARKET Zeigt an, ob Sie offene Positionen haben

Open Open[N] Bezeichnet den Eröffnungspreis des aktuellen Balkens oder des n-letzten Balkens

OpenDate OpenDate Datum der Eröffnung des aktuellen Balkens im Format YYYYMMDD

OpenDay OpenDay Tag der Eröffnung des aktuellen Balkens

OpenDayOfWeek OpenDayOfWeek Wochentag der Eröffnung des aktuellen Balkens

OpenHour OpenHour Stunde der Eröffnung des aktuellen Balkens in der Zeitzone des Nutzers

OpenMinute OpenMinute Minute der Eröffnung des aktuellen Balkens in der Zeitzone des Nutzers

OpenMonth OpenMonth Monat der Eröffnung des aktuellen Balkens

OpenTime OpenTime Uhrzeit der Eröffnung des aktuellen Balkens im Format HHMMSS in der Zeitzone des Nutzers

OpenYear OpenYear Jahr der Eröffnung des aktuellen Balkens

OR a OR b Logischer Operator OR

V 5.1.2 – 20170831 www.prorealtime.com 91 / 97

Page 92: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Glossar

P - Q

CODE SYNTAX FUNKTION

PIPVALUE PipValue Wert eines Pips (oder Punktes) in €/$ (Währungdes Instrumentes), PipValue=Pointvalue

PIPSIZE PipSize Größe eines Pips (oder Punktes), PipSize=PointSize

POINTVALUE PointValue Wert eines Pips (oder Punktes) in €/$, PipValue=Pointvalue

POINTSIZE PointSize Größe eines Pips (oder Punktes), PipSize=PointSize

POSITIONPERF PositionPerf(n) Gewinn oder Verlust in % der n-letzten geschlossenen Position

POSITIONPRICE PositionPrice Durchschnittlicher Preis der aktuellen Position

PRELOADBARS DEFPARAM PRELOADBARS = 200

Legt das Höchstmaß an im Voraus geladenen Balken fest, die zur Berechnung von innerhalb von Handelssystemen benutzten Indikatoren benötigt werden.

PriceOscillator PriceOscillator[S,L](price) Indikator 'Percentage Price oscillator'

PositiveVolumeIndex PriceVolumeIndex(price) Indikator 'Positive Volume Index'

PVT PVT(price) Indikator 'Price Volume Trend'

QUIT QUIT Anweisung zum Anhalten eines Handelssystems

R

CODE SYNTAX FUNKTION

R2 R2[N](price) Koeffizient R Quadrat (Fehlerquote der linearen Regression zum Kurs)

Range Range[N] Preisspanne zwischen Hoch und Tief des aktuellen Balkens

REM REM comment Einführung einer Bemerkung in den Code

Repulse Repulse[N](price) 'Repulse'-Indikator (misst die Stärke von Aufwärts- und Abwärtstrend bei jeder Kerze)

RETURN RETURN Result Anweisung zur Anzeige des Ergebnisses (nur Indikatoren)

ROC ROC[N](price) Indikator 'Price Rate of Change'

RSI RSI[N](price) Oszillator 'Relative Strength Index'

ROUND ROUND(a) Mathematische Funktion "Runden zur nächsten Einheit"

ROUNDEDUP ROUNDEDUP Aufrunden zur nächsthöheren Einheit

ROUNDEDDOWN ROUNDEDDOWN Abrunden zur nächstniedrigeren Einheit

V 5.1.2 – 20170831 www.prorealtime.com 92 / 97

Page 93: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Glossar

S

CODE SYNTAX FUNKTION

SAR SAR[At,St,Lim] Indikator 'Parabolic SAR'

SARatdmf SARatdmf[At,St,Lim](price) Indikator 'Parabolic SAR ATDMF'

SELL SELL (n) SHARES Befehl zum Schließen einer Long-Position

SELLSHORT SELLSHORT (n) SHARES Befehl zum Schließen einer Short-Position

SET SET Legt den Order-Typ fest, entweder LIMIT oder STOP

SHARES BUY (n) SHARES Bezeichnet die Anzahl der zu kaufenden Aktien

SHORTONMARKET SHORTONMARKET Zeigt an, ob Sie offene Verkauf-Positionen (=Short) im Markt haben

SIN Sin(a) Mathematische Funktion 'Sinus'

SGN Sgn(a) Mathematische Funktion 'Zeichen von' (positiv oder negativ)

SMI SMI[N,SS,DS](price) Indikator 'Stochastik Momentum Index'

SmoothedStochastic SmoothedStochastic[N,K](price)

Indikator 'Geglätteter Stochastik'

SQUARE Square(a) Mathematische Funktion 'zum Quadrat'

SQRT Sqrt(a) Mathematische Funktion 'Quadratwurzel'

STD STD[N](price) Statistische Funktion 'Standardabweichung'

STE STE[N](price) Statistische Funktion 'Standard Fehler'

Stochastic Stochastic[N,K](price) %K-Linie des Stochastik-Indikators

STOP SET STOP LOSS Order mit festem Ausführungslevel

summation summation[N](price) Summe eines bestimmten Preises über die n-letzten Kerzen

Supertrend SuperTrend[STF,N] Indikator 'SuperTrend'

V 5.1.2 – 20170831 www.prorealtime.com 93 / 97

Page 94: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Glossar

T

CODE SYNTAX FUNKTION

TAN TAN(a) Mathematische Funktion 'Tangens'

TARGET SET TARGET PROFIT x Erlaubt das Erstellen eines Targets in einer Entfernung von x Einheiten vom Kurs

TEMA TEMA[N](price) Dreifacher exponentieller Gleitender Durchschnitt

THEN Vgl. IF/THEN/ELSE/ENDIF Anweisung folgt der ersten Bedingung von 'IF'

TICKSIZE TICKSIZE Gibt die Tickgröße des Instrumentes an (die kleinstmögliche Variation des Preises)

Time Time[N] Zeigt die Uhrzeit im Format HHMMSS

TimeSeriesAverage TimeSeriesAverage[N](price) Gleitender Durchschnitt Zeitliche Serie

TO Vgl. FOR/TO/NEXT Richtungsanweisung in der "FOR" Schleife

Today Today Aktueller Tag im Datumsformat YYYYMMDD

TomorrowOpen AT (prix) TomorrowOpen Bezeichnet eine Order, die bei Eröffnung des nächsten Börsentages ausgeführt wird

TotalPrice TotalPrice[N] (Schluss + Eröffnung + Hoch + Tief)/4

TR TR(price) Indikator 'True Range'

TRADEINDEX TRADEINDEX(n) Gibt den Index desjenigen Balkens, bei dem dien-letzte Order ausgeführt wurde

TRADEPRICE TRADEPRICE(n) Preislevel, zu dem die n-letzte Order ausgeführtwurde

TRAILING SET STOP TRAILING x Erlaubt das Erstellen eines Trailing Stops in einer Entfernung von x Einheiten vom Kurs

%TRAILING SET STOP %TRAILING x Platziert einen Trailing Stop in einer Entfernung von x % zum Kurs

$TRAILING SET STOP $TRAILING x Platziert einen Trailing Loss, so dass der Verlustgleich x €,$ (Devise des Instruments) ist

TriangularAverage TriangularAverage[N](price) Dreieckiger Gleitender Durchschnitt

TRIX TRIX[N](price) Dreifacher exponentieller Gleitender Durchschnitt

TypicalPrice TypicalPrice[N] Typischer Preis (Durchschnitt von Hoch, Tief und Schluss)

V 5.1.2 – 20170831 www.prorealtime.com 94 / 97

Page 95: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Glossar

U

CODE SYNTAX FUNKTION

Undefined a = Undefined Einsetzen einer nicht festgelegten Variable

V

CODE SYNTAX FUNKTION

Variation Variation(price) Differenz zwischen dem Schluss des letzten Balkens und dem Schluss des aktuellen Balkens in %

Volatility Volatility[S, L] Chaikin Volatilität

Volume Volume[N] Indikator 'Volumen'

VolumeOscillator VolumeOscillator[S,L] Volumen Oszillator

VolumeROC VolumeROC[N] Volumen des 'Rate Of Change'

W

CODE SYNTAX FUNKTION

WeightedAverage WeightedAverage[N](price) Indikator 'Gewichteter Gleitender Durchschnitt'

WeightedClose WeightedClose[N] Durchschnittswert von (2*Schluss), (1*Hoch) und (1*Tief)

WEND Vgl. WHILE/DO/WEND End-Anweisung für die WHILE Schleife

WHILE/DO/WEND WHILE (condition) DO (action)WEND

WHILE Schleife

WilderAverage WilderAverage[N](price) Indikator 'Gleitender Durchschnitt nach Wilder'

Williams Williams[N](close) %R vom Williams-Indikator

WilliamsAccumDistr WilliamsAccumDistr(price) Indikator 'Akkumulation/Verteilung nach Williams'

X

CODE SYNTAX FUNKTION

XOR a XOR b Logischer Operator 'ODER exklusiv'

V 5.1.2 – 20170831 www.prorealtime.com 95 / 97

Page 96: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

Glossar

Y

CODE SYNTAX FUNKTION

Year Year[N] Gibt das Jahr im Format YYYY

Yesterday Yesterday[N] Zeigt den vorherigen Tag im Format YYYMMDDan

Z

CODE SYNTAX FUNKTION

ZigZag ZigZag[Zr](price) Indikator 'ZigZag' zur Theorie der Eliott Wellen

ZigZagPoint ZigZagPoint[Zp](price) Indikator 'ZigZag' zur Theorie der Eliott Wellen in Zp-Punkten berechnet

Andere

CODE FUNKTION CODE FUNKTION

+ Addition <> Differenz

- Subtraktion < 'kleiner als'

* Multiplikation > 'größer als'

/ Division <= 'kleiner oder gleich'

= Gleichheit >= 'größer oder gleich'

V 5.1.2 – 20170831 www.prorealtime.com 96 / 97

Page 97: ProRealTime erlaubt Ihnen das Erstellen von ... · Die Trading-Systeme können auf zweierlei Weisen ausgeführt werden: Als Backtest zur Überprüfung der entsprechenden Performance

www.prorealtime.com