An alle MM User und das L+P Team
Alle gleitenden Durchschnitte haben neben der Glättung des Kursverlaufes den Nachteil der Verzögerungen. Je stärker der Kursverlauf geglättet werden soll, umso größer fällt auch die daraus resultierende Verzögerung des Indikators aus. Diese Verzögerung entsteht, da die Glättung mit Daten aus der Vergangenheit erfolgt.
John Ehlers beschreibt in seinem Buch „Cybernetic Analysis for Stocks and Futures“ einen Indikator „Zero Lag“ mit dem die Trendliene eines Kursverlaufes berechnet werden kann. Das Ergebnis ist ein sehr viel schneller reagierender Indikator, der wenig bis gar keine Verzögerung in den Bewegungen aufweist und an Kurs Wendepunkten auch nie über die Bewegung hinausschießt.
Die Idee lässt sich etwa vereinfacht so beschreiben.Der exponentiell gleitende Durchschnitt (EMA) berechnet sich nach folgender Formel:
EMA =a *Preis + (1 – a)*EMA[1];
EMA[1] ist der Wert des exponentielle Durchschnitts vor einer Periode. Der Glättungsfaktor des exponentielle Durchschnitts ist a. In dieser Formel gehen der aktuelle Preis und der vorige EMA mit gewissen Anteilen in die Berechnung ein, wobei die Summe der Anteile 1 ergibt.
A berechnet sich nach folgender Formel.
a= 2 / (Zeitraum + 1)
Ist der Zeitraum 1, dann nimmt a den Wert 1 an und wie wir aus der Formel des EMA sehen ist EMA dann gleich dem Preis und es erfolgt keine Glättung. Je größer der Zeitraum in einer Durchschnittswertbildung wird, um so kleiner wird a, d.h. das Gewicht des aktuellen Preises nimmt ab und das des vorhergehenden EMA nimmt zu, was zu Glättung führt.
Ehlers führt in die Formel des EMA einen Korrekturwert ein und nennt die Funktion / Formel dann EC für Error Correcting (Fehler Korrektur).
EC = a * (Preis + Verstärkung * (Preis - EC [1])) + (1 - a) * EC [1];
Wenn die Differenz zwischen dem Preis und dem vorhergehenden Wert des EC 0 wird, dann ist die Formel der Spezialfall der Formel des EMA.
Es geht jetzt darum den besten Faktor für die Verstärkung zu finden. In einer Iteration wird dann der beste Verstärkungsfaktor gesucht. Bei einem "Gain Limit" von 50 wird der Bereich in 101 Stufen aufgeteilt, und damit die beste Verstärkung ermittelt. Dies habe mit MM-Talk in MarketMaker realisiert und dem Beitrag angehängt.
Jetzt noch ein paar allgemeine Erklärungen bevor wir uns den Indikator weiter ansehen.
Es ist gute Praxis, Filter und Indikatoren an definierten theoretischen Wellenformen zu testen, um zu sehen, ob sie sich unter diesen kontrollierten Bedingungen so verhalten wie erwartet. Dazu benutzt man z.B. einen Rechteck Impuls. Der Rechteck Impuls hat für einen bestimmte Anzahl von Intervallen einen unteren Wert und springt danach im nächsten Intervall auf einen oberen Wert. Auf diesem verharrt er wieder ein bestimmte Anzahl von Intervallen, bis er wieder auf den unteren Wert springt, und so weiter. An solchen definierten Eingangssignalen kann man z.B. sehen, wie schnell der Indikator auf die Eingangsänderung reagiert, wie er sich dem veränderten Wert angleicht und ob er überschwingt.
Jetzt möchte ich das Verhalten des Zero Lag Indikators im Vergleich zum EMA an einem solchen Rechteck Impuls als Eingangssignal aufzeigen und sein Verhalten auch mit dem EMA vergleichen. Als Glättungszeitraum wird sowohl für den EMA als auch für den EC ein Zeitraum von 25 Intervallen angesetzt. Das Limit für den Verstärkungsfaktor im EC wird auf 40 gesetzt. Der Rechteck Impuls ist 70 Tage lang und hat als Werte 20 bzw. 100.
Indikator am Beispiel Rechteck ImpulsDie Schwarze Linie ist der Rechteck Impuls, die rote der EC und die blaue der EMA.
1. Wir sehen, dass der EC bei gleichem Glättungszeitraum sehr viel steiler steigt und sich schneller dem Endwert nähert als der EMA. Der EC hat also ein besseres Übertragungsverhalten als der EMA.
2. Beide nähern sich dem neuen Endwert an, ohne über zu schwingen.
3. Ist die Wertänderung des Eingangssignals positiv, so verlaufen beide unterhalb des Eingangssignals. Ist die Wertänderung des Eingangssignals negativ, so verlaufen beide oberhalb des Eingangssignals.
4. Je näher sich der berechnete Wert dem neuen Wert nähert, desto kleiner werden die Änderungen gegenüber der vorhergehenden Änderung.
5. Wenn man die Sprunghöhe ändert, dann stellt man fest, dass ich die Form der Kurven und die Anzahl der Intervalle nicht ändern, um die Differenz der beiden Werte zu überwinden. D.h. ganz gleich wie hoch eine Kursänderung auch ausfallen mag, sie benötigen immer die gleiche Anzahl von Intervallen, um sie auszugleichen.
Wenn man die maximale Verstärkung (Gain Limit) für den EC verändert sieht man folgendes:
a) Wird der Wert größer verläuft die Kurve des EC steiler und die Berechnung dauert länger. Das "Gain Limit" geht also in die Iteration zum Suchen des besten Verstärkungsfaktors ein.
b) Wird der Wert kleiner verläuft die Kurve des EC flacher und die Berechnung wird schneller.
c) Wird dieser Wert 10, dann haben EC und EMA den gleichen Verlauf.
d) Wird der Wert kleiner 10, dann verläuft EC unterhalb des EMA und hat dann ein ein schlechteres Übertragungsverhalten
Jetzt wollen wir das Gleiche und an einem realen Kursverlauf ansehen. Es werden wieder die gleichen Glättungsparameter wie vorher verwendet.
Indikator am Beispiel DaxPunkt 1 und 2 die wir oben bei dem normierten Eingangssignal festgestellt haben, können wir auch direkt im Kursverlauf sehen. Die Punkte 3 bis 5 können wir nicht unbedingt sehen. Dies verdeutlicht, warum es immer sinnvoll ist, sich für jeden Indikator anzusehen, wie sein Verhalten auf ein solches normiertes Verhalten ist. Außerdem lassen sich mit einem solchen Eingangssignal auch das Verhalten unterschiedlicher Indikatoren einfach miteinander vergleichen.
Schauen wir uns jetzt die Wendepunkte (Hoch-, Tiefpunkte) von EC und EMA an. Beim EMA erkennen wir, dass die Wendepunkte zeitlich den Wendepunkten des Kurses nachlaufen. Und zwar um so weiter, je größer wir den Zeitraum für die Glättung wählen. Beim EC sehen wir, dass die Wendepunkte zeitgleich oder maximal um ein Intervall verzögert zu den Kurs Wendepunkten auftreten. Dies ändert sich auch nicht, wenn man den Zeitraum für die Glättung vergrößert. Durch die Vergrößerung verläuft der EC nur flacher, d.h. im größeren Abstand zum Kurs.
Durch das Verhalten die Wendepunkte des Eingangs Signals ohne bzw. max. mit einer Periode Laufzeitverzögerung abzubilden, hat der Indikator seinen Namen erhalten "Zero Lag Indikator".
Durch die neuen Prozessoren in den PCs, die immer leistungsfähiger werden, bietet es sich an, alte Pfade zu verlassen und bei detaillierteren Betrachtungen von schon vorausgewählten Werten, neuere Methoden aus der Mathematik anzuwenden, um so zu besseren Aussagen zu gelangen.
Aber dazu braucht man wirklich PCs mit entsprechender Rechenpower.Und wenn man sich den MM-Talk Programmcode, der zur Realisierung dieses Indikators oder auch des Impuls Signals notwendig ist, ansieht, so ist er auch nicht unbedingt länger und schwieriger zu verstehen, als in jeder anderen Programmiersprache. Denn für jede Programmiersprache gilt: ich kann sie nur richtig anwenden, wenn ich verstehe, wie ihre Elemente (z.B. Add, If, For, Mapz, MAP, ...) mit den zugehörigen Parametern funktionieren und was sie als Ergebnis liefern. Alles andere hängt dann nur noch von der Abstraktionsfähigkeit des Programmierers ab, ein reales Problem ausreichend genau zu analysieren und zu beschreiben und diese Beschreibung dann auf die Sprachelemente der jeweiligen Programmiersprache umzusetzen.
Ich verfolge auch das Tai Pan Forum. Dort läuft z.Zt. ein angeregter Austausch wie man einen Indikator, der beim VTAD vorgestellt wurde (Trendfolge individuell definiert) programmtechnisch umsetzen kann. Die in Tai Pan verwendete Programmiersprache hat in den verwendeten Elementen sehr viel Ähnlichkeit mit den alten Standard Programmiersprachen wie z.B. Basic, die ja von vielen als sehr leicht und verständlich eingestuft wird. Aber auch in diesem Forum scheitern viele Anwender schon an dem Punkt, die Funktion der Elemente der Programmiersprache zu verstehen und können deshalb solche Ideen nicht umsetzen.
Hier wäre es sinnvoll, wenn L+P für Leute, die eigene Indikatoren, Filter, Tabellenauswertungen und Handelssysteme programmieren wollen, das Handbuch für die Erklärung der Programmiersprache überarbeitet, so dass es verständlicher und zu jeder Funktion mit einem Beispiel versehen ist.
Des Weiteren wären auch ein Aufgabenheft sinnvoll, in dem an einfachen Aufgabenstellungen eine Analyse verbal durchgeführt wird, und die Aufgabe dann darin besteht, diese Analyse in ein lauffähiges Programm umzusetzen. Ein möglicher Lösungsweg sollte dann im Anhang zu finden sein.
Weiterhin könnten auch entsprechende Workshops, möglichst auch über das Internet, das Verständnis für die verwendete Programmiersprache und den Umgang damit vertiefen und den Frust der Kunden mindern.
Hier hat L+P noch viel Potential, sowohl aus Sales Sicht, als auch aus Sicht der Kundenzufriedenheit und damit der Kundenbindung. Vielleicht kann sich das L+P Team hier einmal detaillierter, und zwar über die Standardfloskel (Wir werden das an ... weiterleiten) hinausgehend dazu äußern, wie L+P zu solchen Vorschlägen steht und ob man da in nächster Zeit etwas erwarten kann.
Chuck
Dateianhänge:
Zero_Lag_Indikator.mme (29kb) downloaded 65 time(s).