FAQ - Handelssysteme / Optimierung der Performance
Wo findet man Beispiele für Handelssysteme?
- Projekte mit zahlreichen Handelssystemen finden Sie in den Ordnern Tutorien und Projekte (jeweils Unterordner des Investox-Ordners). Diese sind vor allem als Anregung gedacht.
- Wenn Sie selbst Handelssysteme entwickeln möchten, profitieren Sie von der Vielzahl an mitgelieferten Einflussfaktoren, die als Regel für Handelssysteme übernommen werden können.
- Anwendungsbeispiele und Strategien veröffentlichen wir selbst von Zeit zu Zeit.
- Interessante Anregungen, Diskussionen und die Auseinandersetzung mit Handelssystemen finden Sie im Investox-Forum.
- Von Investox-Anwendern betriebene Homepages beschäftigen sich zum Teil auch mit dem Thema Handelssysteme. Beachten Sie bitte die entsprechenden Links.
Wie kann ein Handelssystem in einem anderen Projekt verwendet werden?
Wenn Sie ein Handelssystem in anderen Projekten wieder verwenden möchten, gehen Sie so vor:
Ab Version 7 von Investox verwenden Sie am einfachsten den Befehl „Handelssystem / In anderes Projekt kopieren“.
In früheren Versionen können Sie so vorgehen:
- Speichern Sie das Handelssystem als Vorlage (Menü "Handelssystem / Als Vorlage speichern").
- Legen Sie dann im gewünschten Projekt ein neues Handelssystem an und wählen Sie als Vorlage das zuvor gespeicherte System.
Wenn im Chart für ein Handelssystem keine Signale erscheinen oder wenn als aktuelles Signal in der Titelliste "Ungültig" erscheint (dargestellt durch ein Ausrufezeichen), kann dies folgendes bedeuten:
- In den Handelsregeln oder aber in den Testbedingungen wurde eine Berechnung angegeben, die einen Fehler produziert. Nähere Informationen zu den entstandenen Fehlern finden Sie im Logbuch von Investox (klicken Sie dort auf eine Fehlermeldung, um im Feld "Details" Näheres zu erfahren, siehe Bild unten).
Falls ein Fehler in einer Berechnung vorliegt, überprüfen Sie bitte alle Handelsregeln sowie gegebenenfalls auch die Testbasis (ein Fehler kann zum Beispiel auch entstehen, wenn als Testbasis Open angegeben wird, der Titel aber keine Open-Kurse enthält). - Das Signal „Ungültig“ erscheint auch, wenn im gewählten Zeitraum nicht mindestens ein Trade gebildet werden kann. In diesem Fall sind die Handelsregeln zu eng gefasst oder die Daten für die Testbasis stehen nicht ausreichend zur Verfügung.
- Überprüfen Sie auch, ob im gewählten Zeitraum für diesen Titel überhaupt Daten zur Verfügung stehen.
Um dies zu beantworten, soll zunächst kurz dargestellt werden, wie die automatische Zeitraum-Anpassung (Handelssystem einstellen / Registerkarte Zeitraum) funktioniert:
- Das Handelssystem wird probeweise mit allen Daten durchgerechnet.
- Dann wird ermittelt, ab welchem Datum und bis zu welchem Datum das System getestet, d.h., die Handelsregeln und die Testbasis mit den gewählten Titeln berechnet werden können.
- Dieser Zeitabschnitt wird dann wie gewünscht zwischen Optimierung und Kontrolle aufgeteilt.
Nun hängt es natürlich von den Einstellungen der verwendeten Indikatoren ab, ab welchem Datum die nötigen Daten berechnet werden können: ein RSI über 60 Perioden benötigt vorab 60 Perioden, bis der erste RSI berechnet werden kann, ein RSI über 15 Perioden dagegen eben nur 15.
Da nach der Optimierung des Handelssystems die Parameter der Indikatoren im Allgemeinen gegenüber dem Ursprungszustand verändert wurden, ergibt sich daraus, dass auch die automatische Zeitraumanpassung andere Zeitbereiche ermittelt.
Wenn der Systemtest erst später beginnt, als unter "Zeiträume" eingestellt, so kann dies verschiedene Gründe haben:
- Es fehlen Daten aus dem Zeitraum. Manche Berechnungen benötigen außer den Close-Kursen auch andere Werte wie Open, High, Low oder Volumen. Je nach Datenquelle sind diese in den Historien nicht immer komplett vorhanden.
- Die verwendeten Berechnungen und Indikatoren benötigen einen entsprechenden Vorlauf zur Berechnung:
- Angenommen Sie verwenden einen GD über 200 Perioden, dann benötigt das System mindestens 200 Perioden Vorlauf.
- Bei anderen Indikatoren, wie zum Beispiel beim Abfragen von Ereignissen mit ValueWhen oder Barssince, kann die Berechnung erst ab dem ersten Ereignis erfolgen.
Ab wann genügend Daten vorhanden sind erkennen Sie am besten, wenn Sie die verwendeten Berechnungen aus den Handelsregeln einmal im Chart anzeigen lassen (per Formel einfügen). Dann können Sie prüfen, ab welchem Zeitpunkt ein Ergebnis geliefert wird.
Tip: Mit der Funktion „Zeiträume automatisch anpassen“ (Handelssystem einstellen / Zeiträume) wird automatisch ermittelt, ab wann ein Systemtest möglich ist.
Investox ermöglicht es, Systeme auch mit mehreren Titeln zu optimieren, deren Daten aus ganz verschiedenen Zeitbereichen stammen.
Ein Beispiel dafür wären mehrere Kontrakte eines Futures. Sie können zum Beispiel ein Handelssystem mit vier nacheinander folgenden Future-Kontrakten optimieren lassen. Jedoch findet die Funktion „Zeiträume anpassen“ (Handelssystem einstellen / Registerkarte Zeitraum) keinen gemeinsamen Datumsbereich für alle vier Kontrakte. Ab Investox XL Version 4 bietet es sich an, hierfür einen Kombinationstitel zu verwenden (Menü "Werkzeuge / Verfügbare Titel bearbeiten / Neu / Kombinationstitel").
Bei älteren Versionen geben Sie die Zeiträume für Optimierung und Kontrolle selbst ein.
Beispiel: Sie verwenden vier Kontrakte aus 2014. Wählen Sie dann zum Beispiel die folgenden Einstellungen:
Start: | Ende: | |
---|---|---|
Optimierungszeitraum: | 1.1.2014 | 1.11.2014 |
Kontrollzeitraum: | 2.11.2014 | 31.12.2014 |
Auf diese Weise erfolgt die Optimierung von Beginn des ersten Kontraktes bis ungefähr zur Mitte des vierten Kontraktes, während die 2. Hälfte des vierten Kontraktes zur Kontrolle bleibt.
Wenn ein Handelssystem nur eine Enter-Regel, jedoch keine Exit-Regel verwendet, so wird die logische Umkehrung der Enter-Regel als Ausstieg verwendet (siehe dazu auch im Handbuch "Der Systemtest / Das Zusammenspiel von Enter- und Exitregeln"). Geben Sie daher in der Exit-Regel eine Null ein, damit die Position nicht geschlossen wird, wenn die Enter-Regel nicht mehr zutrifft. Ein Ausstieg sollte dann aber über Stops oder eine Gegenposition erfolgen.
Um die Wirkungsweise zu verdeutlichen, folgen hier nochmals zwei Beispiele:
1. Beispiel (Größer als):
Enter Long: Mom(Close, 20)>100
Bei dieser Formulierung ist eine Exit-Regel nicht unbedingt erforderlich, da das System genau so lange long bleibt, wie das Momentum über der 100er-Linie liegt. Erfolgt ein Ausstieg über einen Stop, so geht das System danach aber sofort wieder long, wenn das Momentum immer noch über der 100er-Linie liegt.
2. Beispiel (Cross):
Enter Long: Cross(Mom(Close, 20), 100, 1) = 1
Wird bei dieser Formulierung keine Exit-Regel angegeben, so erfolgt der Exit sofort (1 Periode) nach dem Durchkreuzen, da der Ausdruck Cross()... nur genau eine Periode lang wahr ist.
Hier sollte also eine Exit-Regel angegeben werden, wie zum Beispiel:
Exit Long: Cross(Mom(Close, 20), 100, 1) = -1
Hierdurch erfolgt der Ausstieg erst dann, wenn das Momentum die 100er-Linie wieder nach unten durchkreuzt.
Alternativ dazu könnten Sie auch einfach eine Null eingeben, so dass niemals ein Exit erfolgt, und statt dessen mit Stops arbeiten. Erfolgt ein Ausstieg über einen Stop, geht das System danach erst dann wieder long, wenn das Momentum erneut die 100er-Linie nach oben durchkreuzt.
Auf was beziehen sich die absoluten bzw. prozentualen Angaben bei der Einstellung von Kapital-Stops?
Die absoluten und prozentualen Angaben der Stop-Beträge beziehen sich beim Kapital-Verlust-, -Trailing- und -Break-Even-Stop immer auf das in der Position befindliche Kapital, nicht auf den Kurs selbst (im Unterschied zu den Kurs- und Intraday-Stops)!
Beim Punktetest kann die Einstellung eines prozentualen Kapital-Verluststops (im Unterschied zu den Kurs- und Intraday-Stops!) zu unerwarteten Ergebnissen führen: Die Berechnung der Verluststops bezieht sich immer auf das vorhandene Kapital.
Wenn eine prozentuale Berechnung des Kapital-Verluststops eingestellt wurde, wird der Stop aktiv, sobald ein bestimmter Prozentsatz des Kapitals verloren ist.
Wenn nun zum Beispiel zwischen Gesamt- und Kontrollzeitraum umgeschaltet wird, verändert sich das vorhandene Kapital, da bei Berechnung des Gesamtzeitraums das vor dem Kontrollzeitraum gewonnene Kapital zusätzlich vorhanden ist.
Angenommen das Startkapital ist 10.000 und bei Erreichen des Kontrollzeitraums beträgt es bereits 50.000. Bei einem prozentualen Verluststop von 10% wird der Stop im einen Fall bei einem Kapitalverlust von 1.000, im anderen Fall bei einem Verlust von 5.000 wirksam. Da eine Punkteberechnung vorgenommen wird, ergibt sich daraus eine unterschiedliche Empfindlichkeit gegenüber den Kursschwankungen im Kontrollzeitraum.
Tip: Verwenden Sie beim Punktetest am besten immer nur Verluststops mit absoluter Berechnungsart.
Die Optimierung bezieht sich immer auf den in den Testergebnissen ausgegebenen Wert. Da alle Verluste als negative Werte ausgegeben werden, sollte als Optimierungsziel für diese verlustbezogenen Kriterien "Maximieren" eingestellt werden (bei Wahl von "Minimieren" würde das System nämlich versuchen, einen möglichst niedrigen, also stark negativen Wert zu erreichen).
Beachten Sie dies bitte bei allen verlustbezogenen Optimierungskriterien wie zum Beispiel:
- Max. theoret. Einzelverlust
- Durchschn. theoret. Einzelverlust
- Max. realisierter Einzelverlust
- Durchschn. real. Einzelverlust
- Max. theoretischer Kapitalverlust
- Max. realisierter Kapitalverlust
- Max. theoretisches Kapitalrisiko
- Max. realisiertes Kapitalrisiko
Wie kann man ein Handelssystem für verschiedene Titel individuell optimieren lassen?
- Legen Sie zunächst das gewünschte Handelssystem inklusive aller Optimierungsvariablen an.
- Duplizieren Sie dann das System einmal für jeden Titel, den Sie individuell optimieren lassen möchten (Menü "Handelssystem / Handelssystem duplizieren"). Für jeden Titel wird dabei eine eigene Handelssystem-Spalte in der Titelliste angelegt.
- Wählen Sie für jedes Handelssystem in den Handelssystem-Einstellungen, Registerkarte Titel, den gewünschten Titel zur Optimierung und aktivieren Sie gegebenenfalls den Titel auch für aktuelle Signale.
- Starten Sie dann die Optimierung für jedes System. Sie können die Optimierungen direkt nacheinander starten, die Optimierungs-Warteschlange steuert den Ablauf automatisch.
- Ein Portfolio-Ergebnis erhalten Sie anschließend im „Projekt-Portfoliotest“.
Wie erhält man für ein Handelssystem Signale aus unterschiedlichen Datenkomprimierungen?
Es sollen zum Beispiel in einem Intraday-System Indikatoren auf 1-Minuten- und 10-Minutenbasis kombiniert werden. Um diesen Effekt zu erreichen, sollte das Handelssystem als Datenkomprimierung die kleinste der gewünschten Einheiten verwenden.
Wenn Sie also 1- Minuten- und 10-Minuten-Berechnungen kombinieren möchten, verwenden Sie als Grundkomprimierung des Handelssystems „1 Minute“. Alle Indikatoren und Stops werden damit zunächst einmal in diese Zeiteinheit berechnet.
Um davon ausgehend nun Signale oder Indikatoren auf 10-Minuten- Zeitebene zu berechnen, können Sie den Komprimierungs-Indikator verwenden. Der Indikator „Komp" führt eine Berechnung in einer beliebigen Komprimierung aus und synchronisiert das Ergebnis mit der Grundkomprimierung des Handelssystems.
Mit der folgenden Berechnung erhalten Sie zum Beispiel den MACD auf 10-Minuten-Basis:
Komp(#MACD(Close)#, #10#)
Tip: Alle Einstellungen, auch die im Komp-Indikator angegebene Berechnung, können mit Optimierungsvariablen versehen und damit auch optimiert werden.
Warum liefert das System einen Verlust >10%, obwohl ein 10%-Verluststop eingestellt ist?
Ein Kurs- oder Kapital-Verluststop von 10% kann nicht garantieren, dass der tatsächlich realisierte Verlust nicht größer als 10% ist, da der Investox Backtest möglichst realistisch rechnet: Der Stop wird erst ausgelöst, wenn die Stop-Linie durchkreuzt worden ist (wobei alle Kosten bereits eingerechnet sind).
Nun kann es auch vorkommen (vor allem bei täglicher oder gar wöchentlicher Komprimierung, oder durch ein Overnight-Gap), dass der Kurs vom einen Datenpunkt zum nächsten so stark fällt, dass die Stop-Linie auf einen Schlag gleich sehr deutlich unterschritten wird. Ist dann womöglich noch ein Delay > 0 einstellt, kann bis zur Realisierung des Ausstiegs der Abstand zum eingestellten Stop-Limit sogar noch anwachsen.
Hinweis: Mit dem Intraday-Verluststop von Investox kann ein Stop, der auch innerhalb des Balkens auslöst, backgetestet werden.