Skip to main content
Skip table of contents

Aufbau einer Handelssystemformel

In diesem Beispiel soll ein Handelssystem erstellt werden, das die beiden Indikatoren GD und Momentum kombiniert. Gleichzeitig soll in diesem Handelssystem eine typische Schwäche des Momentums eliminiert werden, nämlich die häufig verspätete Generierung von Signalen, wenn die 100er-Linie als Signalgeber eingesetzt wird.

Wie Sie auch in Charts mit einem eingeblendeten Momentum leicht nachvollziehen können, ist das Standardsignal des Momentums (der Durchbruch durch die 100er-Linie) oft sowohl bei Kauf- als auch bei Verkaufssignalen zu spät. Deshalb soll hier die Regressionssteigung des Momentums bestimmt werden. Sie soll helfen, Trendwechsel im Momentum zu bestimmen. Denn bei einem Trendwechsel ändert sich die Richtung des Momentums, also z. B. von fallend auf steigend (dann soll ein Kaufsignal generiert werden) oder von steigend auf fallend (dann soll ein Verkaufssignal generiert werden). So wird versucht, den Trend besser auszunutzen.

Variablenzuweisung

In diesem Beispiel werden drei Zeitreihen benötigt, nämlich die Close-Zeitreihe und der aus ihr gebildete Gleitende Durchschnitt und die Regressionssteigung des Momentums. Diese drei Zeitreihen werden zunächst Variablen zugewiesen, damit Sie nicht bei jedem Aufruf in der Formel neu berechnet werden müssen, sondern aus dem Speicher gelesen werden können.

  1. Zur Berechnung wird in diesem Beispiel die Close-Zeitreihe verwendet. Sie wird der Variablen $Close zugewiesen:

    $Close:=Close;

  2. Aus der Close-Zeitreihe wird der Gleitende Durchschnitt gebildet. Dazu wird die Funktion GD[Zeitraum;Methode;XVersatz;YVersatz] verwendet:

    $Close.GD[$GDZeitraum]

    Der Parameter Zeitraum wird mit der Variablen $GDZeitraum belegt, der später Werte zugewiesen werden. Die übrigen Parameter werden nicht belegt, d. h., es werden die Standardwerte verwendet.
  3. Das Ergebnis dieser Berechnung ist wieder eine Zeitreihe. Sie wird in der Variablen $GD abgelegt.

    $GD:=$Close.GD[$GDZeitraum];

  4. Außerdem wird aus der Close-Zeitreihe das Momentum gebildet. Dazu wird die Funktion MOM[Zeitraum;ZeitraumGD;GD_Variante; GD_XVersatz;GD-YVersatz] verwendet:

    $Close.MOM[$MOMZeitraum;$MOMGDZeitraum]

    Die Parameter "Zeitraum" und "ZeitraumGD" werden ebenfalls mit Variablen belegt. Die übrigen Parameter werden nicht explizit belegt, d. h., zur Berechnung werden die Standardwerte verwendet.
  5. Um die Regressionssteigung des Momentums zu ermitteln, wird die Funktion RegressionsSteigung[Zeitraum:Zahl] auf das ermittelte Momentum (s. Schritt 4) angewendet:

    $Close.MOM[$MOMZeitraum;$MOMGDZeitraum].RegressionsSteigung[$Zeitraum];

    Der Parameter "Zeitraum" wird ebenfalls mit einer Variablen belegt.
  6. Das Ergebnis dieses Teilausdrucks ist wieder eine Zeitreihe. Sie wird in der Variablen $Mom abgelegt.

    $MOM:=$Close.MOM[$MOMZeitraum;$MOMGDZeitraum].RegressionsSteigung[$Zeitraum];

Berechnung des Handelssystems

Das Handelssystem selbst wird mit der folgenden Funktion ermittelt:

HandelsSystem[Linien;Long;Short;CloseLong;Closeshort;SignalModus;Leerverkäufe_einbeziehen;Spesen;Losslimit]

Die verschiedenen Parameter werden in diesem Beispiel zum größten Teil benötigt:

  • Mit dem Parameter "Linien" wird definiert, welcher Verlauf im Chart angezeigt wird. Da die Kombination zweier Indikatoren nur selten sinnvoll im Chart dargestellt werden kann, wird hier der Close-Verlauf des Wertpapiers dargestellt. Der Parameter "Linien" wird also mit der Variablen $Close belegt.
  • Mit dem Parameter "Long" wird das Kaufsignal definiert. Ein Kaufsignal soll nur geliefert werden, wenn der Close-Kurs im Zeitraum größer war als der GD und gleichzeitig die Regressionssteigung des Momentums über der Mittelpunktslinie lag. Für beide Vergleiche wird das Makro GreaterAll[$Komparator;$Zeitraum;$YVersatz] verwendet:

    $Close.GreaterAll[$GD;$Vergleichs_Zeitraum;$Toleranz]

    Mit dieser Formel wird untersucht, ob der Close-Verlauf den GD von unten nach oben durchbrochen hat. $Vergleichs_Zeitraum gibt an, wie lange ein Durchbruch als solcher gewertet werden soll. $Toleranz gibt an, um welchen Prozentsatz der Close den GD durchbrochen haben muss, damit der Durchbruch als Signal gewertet wird.

    $MOM.GreaterAll[$Mittelpunktslinie;$Vergleichs_Zeitraum;$Toleranz]

    Hier wird untersucht, ob die Regressionssteigung die Nulllinie von unten nach oben durchbrochen hat. Da die Regression die Steigung einer Kurve angibt, wird so festgestellt, ob die Kurse von fallend auf steigend gewechselt haben. Da beide Bedingungen gleichzeitig erfüllt sein sollen, werden Sie mit AND verknüpft:

    $Close.GreaterAll[$GD; $Vergleichs_Zeitraum; $Toleranz] and $MOM.GreaterAll[$Mittelpunktslinie; $Vergleichs_Zeitraum; $Toleranz]

  • Mit dem Parameter "Short" wird das Verkaufssignal definiert. Ein Verkaufssignal soll nur geliefert werden, wenn der Close-Kurs im Zeitraum unter dem GD lag und gleichzeitig die Regressionssteigung des Momentums unter der Mittelpunktslinie lag. Für beide Vergleiche wird das Makro LessAll[$Komparator; $Zeitraum; $YVersatz] verwendet:

    $Close.LessAll[$GD; $Vergleichs_Zeitraum; $Toleranz]

  • Mit dieser Formel wird untersucht, ob der Close-Verlauf den GD von oben nach unten durchbrochen hat. $Vergleichs_Zeitraum gibt an, wie lange ein Durchbruch als solcher gewertet werden soll. $Toleranz gibt an, um welchen Prozentsatz der Close den GD durchbrochen haben muss, damit der Durchbruch als Signal gewertet wird.

    $MOM.LessAll[$Mittelpunktslinie; $Vergleichs_Zeitraum;$Toleranz]

    Hier wird untersucht, ob die Regressionssteigung die Nulllinie von oben nach unten durchbrochen hat. Da die Regression die Steigung einer Kurve angibt, wird so festgestellt, ob die Kurse von steigend auf fallend gewechselt haben. Da beide Bedingungen gleichzeitig erfüllt sein sollen, werden Sie mit AND verknüpft:

    $Close.LessAll[$GD; $Vergleichs_Zeitraum; $Toleranz] and $MOM.LessAll[$Mittelpunktslinie; $Vergleichs_Zeitraum; $Toleranz]

  • Die Parameter "CloseLong" und "CloseShort" werden nicht benötigt. Sie werden daher mit einem Unterstrich "_" belegt, der ausdrückt, dass diese Signalmöglichkeiten nicht verwendet und daher auf den Standardwert gesetzt werden.
  • Mit dem Parameter "SignalModus" wird definiert, wie viele der maximal 4 Signalmöglichkeiten verwendet wurden, in diesem Fall nur 2, nämlich Long und Short.
  • Der Parameter "Leerverkäufe_einbeziehen" bestimmt, ob Short-Positionen mit in die Bewertung einbezogen werden sollen. Dieser Parameter wird mit der Variablen $Leerverkäufe_einbeziehen belegt, so dass er später beliebig verändert werden kann.
  • Der Parameter "Spesen" gibt an, wie viele Spesen pro Transaktion in die Erfolgsberechnung eingerechnet werden sollen. Diese Angabe ist sehr wichtig, um wirklich aussagekräftige Ergebnisse zu erhalten. Dieser Parameter wird mit der Variablen $Spesen belegt, so dass er später beliebig verändert werden kann.
  • Der Parameter "Losslimit" gibt an, ob bei einem bestimmten Verlust die Position automatisch geschlossen werden soll. Dieser Parameter wird mit der Variablen $Losslimit belegt, so dass er später beliebig verändert werden kann.

Die komplette Formel lautet:

$Close:=Close;
$MOM:=$Close.MOM[$MOMZeitraum;$MOMGDZeitraum].RegressionsSteigung[$Zeitraum];
$GD:=$Close.GD[$GDZeitraum];

Handelssystem[$Close;
$Close.GreaterAll[$GD; $Vergleichs_Zeitraum; $Toleranz]
and $MOM.GreaterAll[$Mittelpunktslinie; $Vergleichs_Zeitraum; $Toleranz];
$Close.LessAll[$GD; $Vergleichs_Zeitraum; $Toleranz]
and $MOM.LessAll[$Mittelpunktslinie; $Vergleichs_Zeitraum; $Toleranz];
_;
_;
2;
$Leerverkäufe_einbeziehen;
$Spesen;
$LossLimit]

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.