Trendende und nicht-trendene Märkte, Auszug aus meinem Beitrag Frankf | |
Trendende und nicht-trendene Märkte von Jim Douglas, Beitrag am 15.8.2000 Frankfurt Usermeeting
Bekanntlich produzieren trend-folgende Modelle meistens nur 30-40% profitable Trades und ein Grossteil des Gewinns stammt aus einigen wenigen Geschäften. Während einer nicht-trendenden Phase weisen die meisten dieser Modelle eine Reihe von kleineren Verlusten auf, die lange andauern können. Solche Phasen sind sowohl mental als auch finanziell schwer durchzustehen. Viele behaupten, dass ein trend-folgendes Modell permanent im Markt sein muss, um neu startende Trends nicht zu verpassen. Ich bin nicht davon überzeugt. Wenn es möglich ist, Signale in nicht-trendende Phasen herauszufiltern, müsste einiges an Geld gespart werden können. Alleine das eingesparte Slippage kann einen solchen Filter rechtfertigen. Ein Nachteil eines solchen Filters ist, dass das Modell sehr wahrscheinlich erst spät auf einen neuen Trend reagiert.
Nicht Trendende Phasen Die Idee hinter diesem Code ist der Versuch, einen nicht trendenden Markt zu definieren. Dies bietet dem Händler ein nützliches Werkzeug: der Trader hat die Wahl, entweder nicht zu handeln, weniger Futures/Aktien handeln, oder andere Signale zu verwenden, um zum Beispiel ein RangeTrading System zu bekommen.
Auf oder Abwärtstrends Mein zweiter Versuch war ein Auf- bzw. Abwärtstrend zu definieren. Die meisten glauben, einen solchen Trend zu erkennen, wenn sie ihn sehen, aber ihn zu definieren, ist schwierig. Ein Trend mit starken Ausschlägen ähnelt oft einem Trading Range und sollte dementsprechend gehandelt werden. Eine Reduzierung der Trendgeschwindigkeit neigt dazu, die meisten Modelle zu verunsichern. Zeigt der Markt nach der eben gegebenen Definition einen deutlichen Auf- oder Abwärtstrend, dann sollte die Vorgehensweise klar sein.
T3 und Jurik Funktionen Einige diese Studien benutzen entweder den T3 Moving Average oder verschiedene Funktionen von Jurik Research. Der T3 ist kostenlos von einer Vielzahl von Websites im Internet herunterzuladen (Internet Adressen siehe Ende des Artikels). Die Jurik Funktionen und Indikatoren müssen bezahlt werden - siehe Jurik Website für die Einzelheiten. Im Hinblick auf das Preis/Leistungsverhältnis halte ich die Jurik Funktionen für empfehlenswert. Diese Aufgaben können zwar ohne die Jurik Funktionen gelöst werden, aber nicht in der gleichen Qualität.
3 Nicht Trendende Studien Die erste und gleichzeitig beste Studie bedient sich des CFB von Jurik. Angemerkt sei, dass diese Studie zur Kalkulation 192 Bars auf Backdata benötigt. CFB erscheint mit vorprogrammierten 24, 48, 96 und 192 Bar Versionen. Die kürzeren CFB Funktionen liefern zu diesem Zweck schlechtere Ergebnisse. Der CFB misst die Länge des vorherrschenden Zyklus. Sehr kurze Zyklen implizieren einen nicht eindeutigen oder keinen Trend.
Der Code ist recht einfach: {written by J. Douglas, August, 2000} Inputs: Smooth(20),level(20); value1 = JRC_Fractal192.2k( H+L , Smooth ) ;
If value1 < Level then begin Plot1(high,"nTrend"); Plot2(low,"nTrend"); end;
Angewendet auf den täglichen Dax Index ergibt sich folgendes Bild
Signal/Noise Die Signal/Noise Kalkulation bedient sich zum Teil des KAMA Indicators von Perrry Kaufman. Das zugrundeliegende Konzept ist einfach: der heutige Schlusskurs minus Schluss vor X Perioden wird dividiert durch die Summe des AbsolutenValue der täglichen Veränderungen in der Periode X. Wenn der kalkulierte Wert unter Wert Y fällt, liegt kein Trend vor. Auch wenn die Studie sehr einleuchtend erscheint, so ist sie in ihrem Ergebnis nicht so effizient wie der CFB.
{es gibt einige Variationen von Signal/Noise. Hier ist etwas einfaches.}
{ Kaufman s Efficiency Ratio }
Inputs: Price(close),Period(30),Grenze(0.15);
Vars : Noise(0),Signal(0),Diff(0),EfRatio(0),EffRatio(0);
{Noise(0) = Sum all individual excursions Signal(0) = Total excursion over period Diff(0) = Individual price excursions EfRatio(0) = Efficiency Ratio}
Diff = AbsValue(Price - Price[1]);
if CurrentBar < Period then EfRatio = 0 else begin Signal = AbsValue(Price - Price[Period]); Noise = Summation(Diff, Period); EfRatio = IFF (Noise <> 0, Signal / Noise, 0); end;
Condition1 = EfRatio < EfRatio[1] and EfRatio < Grenze; Condition2 = EfRatio > EfRatio[1] and EfRAtio < (Grenze - 5);
If condition1 or Condition2 then begin PlotPaintBar(high,low,"NoTrend"); end;
Beachten Sie, dass viele Varianten des Codes möglich sind.
Signal/Noise auf den täglichen Dax Ind3ex angewandt sieht folgendermaßen aus:
Die TrendingT3Str Studie erzielt ähnliche Ergebnisse wie Signal/Noise. Auch wenn sie nicht ideal sind, so stellen sie einen Fortschritt dar. Die Studie ist eine Kombination zweier Studien, die steigende oder fallende Märkte anzeigen. Die grundlegende Idee ist: In einem Aufwärtstrendenden Markt wird ein Moving Average in jedem Bar höher sein als im Bar zuvor. Die Anzahl von solchen aufeinanderfolgenden Steigerungen wird mit dem Zähler notiert. Der Zähler wird wieder auf Null versetzt, wenn der MA die Richtung ändert. Es gibt Zähler für steigende und fallende Märkte, und ein MA von jedem. Diese Moving Averages werden addiert. Sehr kleine Werte zeigen einen Markt, der nicht anhaltend trenden kann.
TrendingT3Str - PaintBar
{ written by J. Douglas, August 2000} Inputs:Length1(10),L2(4),L3(; Vars:counter(0),Counter2(0);
If currentbar > length1 + 1 then begin If counter = 0 and T3Average(close,7) > T3Average(close,7)[1] then begin Counter = 1; end; If Counter > 0 and T3Average(close,7) > T3Average(close,7)[1] then begin Counter = counter + 1; end; If counter > 0 and T3Average(close,7) < T3Average(close,7)[1] then begin counter = 0; end; end;
If currentbar > length1 + 1 then begin If counter2 = 0 and T3Average(close,7) < T3Average(close,7)[1] then begin Counter2 = 1; end; If Counter2 > 0 and T3Average(close,7) < T3Average(close,7)[1] then begin Counter2 = counter2 + 1; end; If counter2 > 0 and T3Average(close,7) > T3Average(close,7)[1] then begin counter2 = 0; end; end;
Value2 = T3Average.series(counter,L3); Value3 = T3Average.series(counter2,L3); Value4 = value2 + Value3;
If value4 < L2 then begin PlotPaintBar(high,low,"NoTrend"); end;
Der TrendingT3Str angewendet auf den täglichen Dax Index gibt folgendes Bild
Trendende Märkte
Um einen Ab- oder AufwärtsTrend zu definieren, habe ich 2 Studien ausprobiert, TrendingT3 und Samurai. TrendingT3 ist meine eigene Entwicklung, der Samurai stammt von Thomas DeMark. Der Samurai war ursprünglich ein Handelssystem und wurde in der Omega-List veröffentlicht. Ich habe lediglich die Kauf -und Verkauf Signale herausgenommen und die Studie als Filter benutzt. Samurai funktioniert auf einigen aber nicht auf allen Märkten gut. Ich verwende Samurai aufgrund seines interessanten Konzepts.
{SYSTEM: Samurai Line Breakout Entries. Buys a break above a Supply Line. Sells a break below a Demand Line. Exits at Price Projector 1. Chapter 1. Page 40. " Price Projector" is a Trademark held by Thomas R. DeMark. Idea taken from "The New Science of Technical Analysis" by Thomas R. DeMark, published by John Wiley & Sons, New York, 1994. } NPUT:STRENGTH(1);
VAR:R(0),Z(0),Y(0),W(0),E(1), POINT1(0),POINT2(0),POINT1BAR(0),POINT2BAR(0), SLOPE(0),LINE(0), LPOINT1(0),LPOINT2(0),LPOINT1BAR(0),LPOINT2BAR(0), USLOPE(0),ULINE(0), LL(99999),HH(0),ADD(0);
ARRAY:LP[20](0),LPBAR[20](0),HP[20](0),HPBAR[20](0);
R=STRENGTH;
FOR Z=0 TO 19 BEGIN LPBAR[Z]=LPBAR[Z]+1; HPBAR[Z]=HPBAR[Z]+1; END;
IF L[R] E=1; WHILE L[R]=L[R+E] BEGIN E=E+1; END; IF L[R] FOR Z=19 DOWNTO 1 BEGIN LP[Z]=LP[Z-1]; LPBAR[Z]=LPBAR[Z-1]; END; LP[0]=L[R]; LPBAR[0]=R; END; END;
LPOINT2=LP[0]; LPOINT2BAR=LPBAR[0]; LPOINT1=0; Y=1; WHILE LPOINT1=0 AND Y<20 BEGIN IF LP[Y] LPOINT1=LP[Y]; LPOINT1BAR=LPBAR[Y]; END; Y=Y+1; END;
IF LPOINT1>0 AND LPOINT1BAR>LPOINT2BAR THEN BEGIN USLOPE=(LPOINT2-LPOINT1)/(LPOINT1BAR-LPOINT2BAR); ULINE=LPOINT1; HH=0; FOR W=LPOINT1BAR DOWNTO 0 BEGIN IF W<=MAXBARSBACK THEN BEGIN IF H[W]>HH THEN BEGIN HH=H[W]; ADD=ULINE-HH; END; END; ULINE=ULINE+USLOPE; END; END;
IF H[R]>HIGHEST(TrueHigh,R) THEN BEGIN E=1; WHILE H[R]=H[R+E] BEGIN E=E+1; END; IF H[R]>HIGHEST(TrueHigh,R)[R+E] THEN BEGIN FOR Z=19 DOWNTO 1 BEGIN HP[Z]=HP[Z-1]; HPBAR[Z]=HPBAR[Z-1]; END; HP[0]=H[R]; HPBAR[0]=R; END; END;
POINT2=HP[0]; POINT2BAR=HPBAR[0]; POINT1=0; Y=1; WHILE POINT1=0 AND Y<20 BEGIN IF HP[Y]>HP[0] THEN BEGIN POINT1=HP[Y]; POINT1BAR=HPBAR[Y]; END; Y=Y+1; END;
IF POINT1>0 AND POINT1BAR>POINT2BAR THEN BEGIN SLOPE=(POINT2-POINT1)/(POINT1BAR-POINT2BAR); LINE=POINT1; LL=99999; FOR W=POINT1BAR DOWNTO 0 BEGIN IF W<=MAXBARSBACK THEN BEGIN IF L[W] LL=L[W]; ADD=LINE-LL; END; END; LINE=LINE+SLOPE; END; END;
if close < Line then begin Plot1(high,"LineH"); Plot2(low,"LineH"); end;
Angewendet auf den täglichen Dax Index ergibt sich folgendes Bild
TrendingT3 ist weniger effizient in volatilen Märkten, aber in ruhigeren Märkten eventuell besser als Samurai.. Bedenkt man die Methode, so ist das logisch. Samurai ähnelt Trendlinien auf einem Chart gezeichnet, während der TrendingT3 auf Moving Averages beruht, die sich ununterbrochen in einer Richtung bewegen. Ein unruhiger, volatiler Aufwärtstrend wird wahrscheinlich bei Anwendung dieses Indikators nicht als eindeutiger Aufwärtstrend angezeigt werden. Dies verdeutlicht ein Charakteristikum des Indikators, - es zeigt nur stabile Auf- oder Abwärtstrends an.
TrendingT3Up - PaintBar {written by J. Douglas, August 2000} Inputs:Length1(10),L2(3),L3(; Vars:counter(0);
If currentbar > length1 + 1 then begin If counter = 0 and T3Average(close,7) > T3Average(close,7)[1] then begin Counter = 1; end; If Counter > 0 and T3AVerage(close,7) > T3AVerage(close,7)[1] then begin Counter = counter + 1; end; If counter > 0 and T3AVerage(close,7) < T3AVerage(close,7)[1] then begin counter = 0; end; end;
Value2 = T3Average.series(counter,L3);
If value2 > L2 then begin PlotPaintBar(high,low,"Trending"); end;
Angewendet auf den täglichen Dax Index ergiebt sich folgendes Bild
Der T3 in TrendingT3 kann mit KAMA, VIDYA, JMA and anderen Studien ersetzt werden.
Diese Studien sind als Vorschläge zu betrachten; sie stellen Bausteine und Denkanstösse für ein Trading System dar, sind aber keine vollständigen Systeme an sich. Ich hoffe, dass sie zum Experimentieren anregen.
good luck,
Jim Douglas
siehe ftp://ftp.frii.com/pub/fritz/ für die T3AVerage und andere Studien.
Die Jurik Website bietet eine interessante Besprechung verschiedener Moving Averages an. Klicken Sie auf Products und folgen Sie der Anweisungen auf JMA.
Der ursprüngliche Code für den KAMA Indikator steht neben einer Menge weiterer interessanter Studien unter: http://home.iae.nl/users/guus/omega/sourcecode/ELindex.html
KAMA erscheint unter Kaufmann Smoothing....Den Code finden Sie auch in: Perry Kaufman,Trading Systems and Methods, 3rd Edition, page 438.
Die Signal/Noise Funktion stammt aus diesem Code.
|