Swing-Handelssystem PDF Drucken E-Mail
Geschrieben von: Reiner Reusch   
Dienstag, 19. Januar 2010 um 14:52 Uhr

Warnung

Ich übernehme keinerlei Haftung für das Funktionieren dieses Beispiels in der Praxis. Hier soll nur gezeigt werden, wie mit Eusdoni ein Handelssystem entwickelt werden kann.

Swing-Chart-Trendfolger

Nachbau des Handelssystems aus dem Buch „Trading Strategien (nicht nur) für Extrem Situationen“ von Philipp Kahler.

Swing-Chart Handelssystem


Swing-Hoch
Swing-Tief
LastSwingHigh
LastSwingLow

Das Handelssystem wird weitgehend so aufgebaut wie es Herr Kahler vorschlägt.

Wertpapiere

Es wird mit den Wertpapieren des DAX getestet. Hier werden die Wertpapiere aus einer Tai-Pan Kursdatenbank verwendet. Wenn Sie einen andere Kursdatenbank verwenden, müssen Sie alle Wertpapiere löschen und Ihre Wertpapiere einfügen.

Trenderkennung

Die Bedingungen für einen Aufwärtstrend lauten:

  • Der kurze EMA muss größer als der lange EMA sein.
  • Der Tiefstkurs des Tages muss über dem kurzen EMA liegen.
  • Der kurze EMA muss größer als der kurze EMA vor vier Tagen sein.

Dabei gilt folgendes:

Die EMA's werden aus den Weighted-Close des Tages berechnet. Das Weighted-Close heißt in Eusdoni TypicalPrice und ist folgendermaßen definiert:

TypicalPrice  := (Close () + High () + Low ()) / 3;

Die Periodenlänge des kurzen EMA ist ein viertel der Periodenlänge des langen EMA (50 Tage, 200 Tage).

Einstieg mit der Swing-Technik

In den Trendphasen wird die Swing-Technik nach Long-Einstiegen suchen.

Wird das letzte Swing-Hoch überschritten, wird eingestiegen. Das Stopp wird auf das jeweils letzte Swing-Tief gelegt und eventuell nachgezogen.

Ausstieg über Stopps

Unterschreitet das Tief des Tages den Stopp, wird ausgestiegen. Der Stopp wird auf das jeweils letzte Swing-Tief nachgezogen.

Implementierung

Das größte Problem war die Implementierung der Swing-Signale (SwingHigh und SwingLow) sowie des Swing-Indikators. In Eusdoni wurde ein geringfügig anders Verfahren verwendet, als das von Herrn Philipp Kahler vorgeschlagene. Dieses Verfahren erscheint mir logischer und vor allem viel praktikabler. In Herrn Kahlers Buch ist eine Abbildung mit Swing-Punkten zu sehen, die mit einer Software generiert wurde. Und hier sieht man auch ganz deutlich, dass nicht das von Herrn Kahler vorgeschlagenen Verfahren verwendet worden sein kann.

Aus dem Swing-Indikator wurden zwei weitere Indikatoren entwickelt, deren Wert das letzte Swing-Hoch (LastSwingHigh) und Swing-Tief (LastSwingLow) haben. Diese Indikatoren werden für den Einstieg und Ausstieg verwendet.

Der Quellcode der zwei Indikatoren:

function LastSwingHigh (Low:indicator; High:indicator) : indicator;
var
  PrevHigh : real;
  PrevLow : real;
  PrevPrevHigh : real;
PrevPrevLow : real;
  SearchHigh : boolean;
  PrevValue : real;
begin
  if NOT (IsNaN (High) OR IsNaN (Low)) then
    begin
      if NOT (High <= PrevHigh AND Low >= PrevLow) then
        begin
          if SearchHigh then
            begin
              if PrevHigh >= PrevPrevHigh AND PrevHigh > High then
                begin
                  SearchHigh := false;
                  PrevValue := PrevHigh;
               end
        end
          else { SearchLow }
            begin
              if PrevLow <= PrevPrevLow AND PrevLow < Low then
                begin
                  SearchHigh := true;
                end
            end;
          PrevPrevHigh := PrevHigh;
          PrevHigh := High;
          PrevPrevLow := PrevLow;
          PrevLow := Low;
    end
end;
  LastSwingHigh := PrevValue;
end;

und

function LastSwingLow (Low:indicator; High:indicator) : indicator;
var
  PrevHigh : real;
  PrevLow : real;
  PrevPrevHigh : real;
  PrevPrevLow : real;
  SearchHigh : boolean;
  PrevValue : real;
begin
  if NOT (IsNaN (High) OR IsNaN (Low)) then
    begin
      if NOT (High <= PrevHigh AND Low >= PrevLow) then
       begin
          if SearchHigh then
            begin
              if PrevHigh >= PrevPrevHigh AND PrevHigh > High then
                begin
                  SearchHigh := false;
                end
            end
          else { SearchLow }
            begin
              if PrevLow <= PrevPrevLow AND PrevLow < Low then
                begin
                  SearchHigh := true;
                  PrevValue := PrevLow;
                end
            end;
          PrevPrevHigh := PrevHigh;
          PrevHigh := High;
          PrevPrevLow := PrevLow;
          PrevLow := Low;
        end
    end;
  LastSwingLow := PrevValue;
end;

Ergebnisse

Ergebnisse


Kontostand
Gewinn
Gewinn: 56.001,95 Konto Max./Min: 63.245,73/-250.756,15 Gewinn Max./Min: 86.258,99/-5.357,10 Trans.: 3767 Gewinn/Trans.: 14,87
Ausstiege: 1881  Gewinntrades: 39 %  Durchschn. Gewinn: 6,27 %  Durchschn. Verlust: 3,55 %

Die Ergebnisse überzeugen nicht. Es sieht so aus, als ob das Rauschen der Märkte stärker ist, als die eigentlichen Handelssignale (Swing-Points) und so kein vernünftiges Ergebnis zustande kommt. Herr Kahler empfiehlt auch in den Aktienmärkten die Swing-Punkte nicht auf Tagesbasis, sondern auf Wochenbasis oder sogar Monatsbasis zu verwenden.

Download des Beispiels

Swing_Chart_Trendfolger.tsy Dateigröße 65 KB

Siehe auch

Swing-Charting,
Swing-Indikator
,
Swing-Low Signal,
Swing-High Signal
,
Swing-Handelssystem auf Wochenbasis,
Swing-Constant-Risc Handelssystem

Zuletzt aktualisiert am Donnerstag, 28. Januar 2010 um 15:06 Uhr
 
home search