
MQL5-Assistenten-Techniken, die Sie kennen sollten (Teil 52): Accelerator Oszillator
Einführung
Der Accelerator Oszillator ist ein weiterer Indikator von Bill Williams, der dazu dient, das Momentum zu verfolgen. Obwohl er von einem anderen Oszillator abgeleitet ist, den wir in einem früheren Artikel behandelt haben, schauen wir uns an, wie verschiedene Muster, die er zeigt, genutzt oder sogar kombiniert werden können, um einen Vorteil zu erzielen. Dieser Indikator zielt speziell darauf ab, die Beschleunigung oder Verlangsamung des Momentums zu verfolgen, was dazu genutzt werden kann, Signale für mögliche Handelsein- und -ausstiege zu liefern. Beschleunigung ist etwas anderes als Geschwindigkeit.
Der Unterschied zwischen den beiden auf den Finanzmärkten ist zwangsläufig nuanciert, insbesondere für Händler, die manuell über das MetaTrader-Terminal handeln. Während die Geschwindigkeit auf die Änderungsrate des Preises hinweist, impliziert die Beschleunigung zu Recht die Änderungsrate der Geschwindigkeit. Um diese getrennt zu quantifizieren, verwenden wir verschiedene Indikatoren. Für die Geschwindigkeit sind die üblichen Indikatoren: Rate of Change (ROC), MACD, RSI und wahrscheinlich der einfache und exponentielle gleitenden Durchschnitt. Für die Beschleunigung haben wir typischerweise Beschleunigungsbänder, das MACD-Histogramm, den Stochastik Oszillator und unsere Besonderheit für diesen Artikel, den Accelerator Oszillator. Dieser Oszillator ist, wie erwähnt, vom Awesome Oszillator abgeleitet, den wir in einem früheren Artikel betrachtet haben, und seine Formel lautet wie folgt:
Die für den Accelerator Oszillator hingegen schon:
Wo, wie zuvor gilt:
AO ist der aktuelle Wert des Awesome Oszillator.
SMA ist der einfache gleitende Durchschnitt.
Schlüsselkomponenten dieses Oszillators sind die Nulllinie, die einen Gleichgewichtspunkt des beschleunigenden Momentums darstellt, wobei man erwarten würde, dass positive AC-Werte auf ein Aufwärtsmomentum hinweisen, während negative Werte ein Abwärtsmomentum anzeigen. Die farbliche Kennzeichnung lehnt sich eng an die früheren Oszillatoren von Bill Williams an, bei denen grüne Balken oberhalb oder unterhalb der Nulllinie auf ein zunehmendes Momentum für Aufwärts- bzw. Abwärtsbewegungen hinweisen, während rote Balken auf beiden Seiten der Nulllinie ein nachlassendes Momentum anzeigen würden.
Der AO ist nützlich für das frühzeitige Erkennen einer Trendumkehr, da sie sich auf Verschiebungen im Momentum vor Kursumkehrungen konzentriert. Außerdem ist er in der Regel vielseitig einsetzbar, z. B. auf Devisen-, Aktien- und Rohstoffmärkten, und aufgrund der vertrauten Histogramm-Darstellung relativ einfach zu interpretieren. Zusammenfassend lässt sich sagen, dass die praktischen Anwendungsfälle in der Identifizierung von Einstiegssignalen liegen, bei denen im Prinzip gekauft wird, wenn der AC über der Nulllinie liegt, und verkauft wird, wenn er darunter liegt, sowie in der Trendbestätigung, bei der der AC zusammen mit anderen Indikatoren wie dem bereits erwähnten Awesome Oszillator oder sogar gleitenden Durchschnitten zur Bestätigung von Markttrends beitragen kann.
Wie bei vielen Indikatoren gibt es jedoch auch hier Einschränkungen. Außerdem benötigt er oft ergänzende Indikatoren, um seine Signale zu bestätigen, wie z. B. Trend- und Volumenindikatoren, und er neigt dazu, in seitwärts tendierenden oder unruhigen Märkten stark zu verzögern. Außerdem reagiert der AO im Allgemeinen empfindlich auf kurzfristige Kursschwankungen, was sie potenziell anfällig für eine Vielzahl von Fehlsignalen macht. Und schließlich sind seine Nulldurchgänge oft weniger vertrauenswürdig als die seines Gegenstücks, des Awesome Oszillators, der, wenn wir schon dabei sind, mit dem AO zu vergleichen und zu kontrastieren, bevor wir uns mit den Mustern des AO beschäftigen.
Da wir uns bereits mit den grundlegenden Definitionen der einzelnen Formeln befasst haben, gehen wir nun zu ihrem jeweiligen Zweck und ihrer Auslegung über. Der Awesome Oszillator (AO) zeigt die Gesamtmarktdynamik an und hilft bei der Erkennung von Trends und Umkehrungen, während der AC auf dem AO aufbaut und die Änderungsrate der Dynamik anzeigt, um besser beurteilen zu können, ob die Dynamik zunimmt oder nachlässt. Wenn AC über Null liegt und sich nach oben bewegt, beschleunigt sich das Momentum, wenn es unter Null liegt und abnimmt, beschleunigt sich das Momentum nach unten.
Die Nulllinie ist ebenfalls für beide Oszillatoren von Bedeutung, da ein Überschreiten der Nulllinie beim AO ein wichtiges Indiz für eine Momentumsverschiebung ist, bei der jede Bewegung nach oben auf einen Aufwärtstrend und nach unten einen Abwärtstrend hinweist. Für AC ist die Nulllinie jedoch oft weniger wichtig, da mehr Wert auf die Richtung der Histogrammbalken gelegt wird, d. h. ob sie steigen oder fallen. Da dieser Indikator nicht so aussagekräftig ist wie AO an sich, wird er oft am besten eingesetzt, um positive, aber fallende Histogramme zu erkennen, die eine Verlangsamung anzeigen, oder negative, aber steigende Balken, die auf einen nachlassenden Abwärtsdruck hinweisen.
Optisch werden beide oft als Histogramme dargestellt, wobei AO im Allgemeinen glattere Bewegungen aufweist, während AC aufgrund seiner Empfindlichkeit gegenüber Beschleunigung oder Verlangsamung stärkere Schwankungen aufweist. In Anbetracht dieser allgemeinen positiven AO-Stimmung ist es auch erwähnenswert, dass von den beiden Oszillatoren der AO oft der Nachzügler ist. Der Grund dafür ist, dass er sich auf langfristige Durchschnittswerte (SMA-5 und SMA-34) stützt, die das Rauschen glätten, der AO aber weniger empfindlich gegenüber kurzfristigen Veränderungen machen. Das AC hingegen ist reaktionsschneller und spiegelt Schwungverschiebungen früher wider, da es sich auf die Änderungsrate der AO konzentriert.
Daraus ergibt sich dann die Eignung jedes einzelnen. Betrachten wir zunächst den AO, so eignet er sich häufig zur Trenderkennung, da sie sich auf die Nulldurchgänge stützt; bei der Umkehridentifikation wird häufig ihr Zwillingsspitzensignal verwendet, und für die langfristige Momentum-Analyse ist der AO oft ideal für Händler, die eine breitere Sicht der Marktdynamik suchen. Der AC hingegen ist darauf ausgerichtet, eine Beschleunigung des Momentums zu erkennen, was auf einen früheren Einstieg bzw. Ausstieg hindeuten kann als der AO; kurzfristige Signale zu identifizieren, die oft dazu dienen, die Signale eines sekundären, langfristigeren Indikators wie dem AO zu bestätigen, und eine hohe Empfindlichkeit gegenüber Kursbewegungen, was für einige Händler, die Strategien wie Scalping anwenden, nützlich sein könnte.
Um den Vergleich von AO und AC zusammenzufassen: AO ist besser im Verstehen breiterer Trends und im Erkennen von Umschwüngen, reagiert aber langsamer, während AC schnellere, flinkere Signale bietet, da es sich auf die Beschleunigung des Momentums stützt, was es ideal für Händler macht, die schnelle Entscheidungen treffen müssen. Und wie bereits dargelegt, können beide zusammen verwendet werden, wobei AO die Trends identifiziert und AC die Ein- und Ausstiege auf der Grundlage von Schwungveränderungen zeitlich festlegt.
Nach diesen Klarstellungen kommen wir nun zu den AC-Mustern. Wir betrachten insgesamt 8 Muster, und wie immer testen wir jedes Muster zunächst einzeln, um dann gegen Ende des Artikels zu untersuchen, wie sich eine Kombination einiger oder aller Muster auf die Leistung des Expert Advisors in seinen begrenzten Testfenstern auswirken könnte.
Für diesen Artikel testen wir das Paar GBP USD auf dem 4-Stunden-Zeitrahmen für das Jahr 2023. Die für jedes Muster vorgestellten Testergebnisse stammen aus Optimierungsläufen und werden nicht für Argumente validiert, die bereits in früheren Artikeln vorgestellt wurden. Für neue Leser, die vielleicht neugierig sind, können Sie sich diese in den Artikeln über frühere Indikatormuster ansehen. Der unten angehängte Code soll außerdem mit dem MQL5-Assistenten zusammengesetzt werden, und es gibt hier und hier Anleitungen dazu.
Kreuzen der Nulllinie
Unser erstes Muster, pattern_0, ist einfach und konzentriert sich auf die Nulllinie. Ein Aufwärtssignal liegt vor, wenn der AC die Nulllinie von unten nach oben kreuzt, was auf einen Wechsel von einer Verlangsamung zu einer Beschleunigung des Aufwärtsmomentums hindeutet. Wenn der AC die Nulllinie von oben nach unten kreuzt, deutet dies auf einen Wechsel von einer Verlangsamung zu einer Beschleunigung des Abwärtsmomentums hin. Wir implementieren dieses Muster in MQL5 wie folgt:
//+------------------------------------------------------------------+ //| Check for Pattern 0. | //+------------------------------------------------------------------+ bool CSignalAccelerator::IsPattern_0(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && AC(X() + 1) < 0.0 && AC(X()) > 0.0) { return(true); } else if(T == POSITION_TYPE_SELL && AC(X() + 1) > 0.0 && AC(X()) < 0.0) { return(true); } return(false); }
In diesem Artikel beziehen sich alle unsere Tests auf das Paar GBP USD auf dem Ein-Stunden-Zeitrahmen für das Jahr 2023. Wenn wir unseren mit dem Assistenten zusammengestellten Expert Advisor nur mit diesem Muster, pattern_0, testen, müssten wir den Eingabeparameter für verwendete Muster auf 1 setzen. Günstige Testläufe mit optimierten Einstellungen führen zu folgendem Ergebnis:
Die wichtigsten Punkte, die bei pattern_0 zu beachten sind, sind, wie bereits in der Einleitung betont, dass es sich nicht um einen eigenständigen Indikator handelt. Er eignet sich am besten in Kombination mit anderen Indikatoren für die Preisaktionsanalyse. Auch wenn er mit einem anderen Indikator gepaart wird, ist eine Bestätigung immer wichtig. Es ist immer am besten, die Erfassung von Einstiegs- und Ausstiegssignalen zu staffeln, d. h. wenn wir im aktuellen Balken ein Kreuzen registrieren, dann ist das Signal des sekundären Indikators am besten in den nachfolgenden Balken abzulesen. Wie bei den meisten Indikatoren kann es zu Fehlsignalen kommen. Entscheidend ist, dass die Märkte unruhig sind oder stark hin- und herschwanken. In unruhigen Märkten kommt es bei diesem Muster häufig zu Fehlsignalen. Wenn die Marktbedingungen jedoch günstig sind, können die Händler davon ausgehen, dass sie von einer oder mehreren Gewinnsträhnen profitieren können, da diese dann in der Regel zuverlässiger sind.
Aufeinanderfolgende grüne Balken über Null
Unser zweites Muster, pattern_1, basiert auf der Anzahl der farbigen Balken über oder unter der Nulllinie. Zeigt der AC zwei oder mehr aufeinanderfolgende grüne Balken über Null an, kann dies als starkes Aufwärtssignal gewertet werden, das auf die Fortsetzung eines Aufwärtstrends hindeutet. Wenn hingegen mehr als ein Balken unter der Nulllinie erscheint, kann dies als Anzeichen für einen Aufwärtstrend und eine mögliche Fortsetzung des Abwärtstrends gewertet werden. Wir setzen dies in MQL5 wie folgt um:
//+------------------------------------------------------------------+ //| Check for Pattern 1. | //+------------------------------------------------------------------+ bool CSignalAccelerator::IsPattern_1(ENUM_POSITION_TYPE T) { int _i = X(); if(T == POSITION_TYPE_BUY && UpperColor(_i) == clrGreen && UpperColor(_i + 1) == clrGreen && UpperColor(_i + 2) == clrGreen) { return(true); } else if(T == POSITION_TYPE_SELL && LowerColor(_i) == clrRed && LowerColor(_i + 1) == clrRed && LowerColor(_i + 2) == clrRed) { return(true); } return(false); }
Dieses Signal macht es erforderlich, die Größe der Balken zu beobachten, da ihre Größe, ob sie nun zunimmt oder nicht, den Aufbau des vorherrschenden Trends anzeigt, d.h. ob er abnimmt oder ansteigt. Weitere wichtige Überlegungen zu pattern_1 sind die Bestätigung, wie beim vorigen Muster, und die Verwendung in vorzugsweise steigenden Märkten. Tests, bei denen ausschließlich dieses Muster verwendet wird, indem der verwendete Eingabeparameter des Musters auf 2 gesetzt wird, ergeben den folgenden Bericht:
Divergenz zwischen AC und Preis
pattern_2 nutzt die Divergenz aus, wobei ein Aufwärtssignal angezeigt wird, wenn der Kurs tiefere Tiefs bildet, während der AC höhere Tiefs bildet. Bildet der Kurs hingegen höhere Hochs und der AC zeigt niedrigere Hochs an, wird dies oft als Hinweis auf eine Umkehr nach unten gewertet. Wir implementieren dies in MQL5 wie folgt:
//+------------------------------------------------------------------+ //| Check for Pattern 2. | //+------------------------------------------------------------------+ bool CSignalAccelerator::IsPattern_2(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Low(X() + 3) > Low(X()) && AC(X() + 3) < AC(X())) { return(true); } else if(T == POSITION_TYPE_SELL && High(X() + 3) < High(X()) && AC(X() + 3) > AC(X())) { return(true); } return(false); }
Dieses Muster ist ein wichtiges technisches Analysesignal mit dem Potenzial, Umkehrungen zu erkennen. Von einer Divergenz spricht man, wenn sich das Kursgeschehen und der AC auf unterschiedlichen Bahnen bewegen, was häufig (in der Regel) bedeutet, dass das gezeigte Kursgeschehen Schwächen aufweist und daher eine Umkehr bevorsteht. Ein Test mit nur diesem Muster, dessen Index für die verwendeten Muster 4 ist, führt zu folgendem Ergebnis:
Wie bereits bei pattern_0 und pattern_1 erwähnt, ist es wichtig, diese mit einer Bestätigung zu begleiten, zu studieren, für welche Marktbedingungen sie am besten geeignet ist, sich vor falschen Signalen zu hüten, indem man sich mehr auf die größeren Zeitrahmen als auf die kleineren stützt, und ein angemessenes Risikomanagement zu betreiben.
Umkehrsignal nahe Null
pattern_3, dessen Index für die Solo-Verwendung (der dem Eingangsparameter „patterns-used“ zugewiesene Index) 8 ist, ist die Umkehrung des AC in der Nähe seiner Nulllinie. Bei diesem Muster liegt eine Umkehr des Aufwärtstrends vor, wenn der AC von rot nach grün wechselt, wenn er oberhalb, aber nahe der Nulllinie liegt, während die Umkehr eines Abwärtstrends wie erwartet eine Wechsel von grün nach rot ist, wenn er unterhalb, aber nahe der Nulllinie liegt. Die Quantifizierung, wie nahe AC am Nullpunkt liegt, ist sicherlich eine Frage der Feinabstimmung.
Die Argumente, warum dies von entscheidender Bedeutung sein könnte, liegen auf der Hand und sollten vielleicht dennoch erwähnt werden. Es ist wichtig, starke Signale zu erkennen und von schwachen zu „unterscheiden“.
Dies liegt daran, dass die Größe oft als Zeichen der Stärke der Dynamik gesehen wird, wobei größere Werte in der Nähe der Nulllinie oft signifikante Umkehrungen signalisieren (die angesichts des großen Abstands vom Nullpunkt in Wirklichkeit Fortsetzungen des vorherigen Trends sind). Um also falsche Signale herauszufiltern, ist ein großer Schwellenwert erforderlich, der die vielen Umkehrungen oder U-förmigen Muster herausfiltert, der AO anzeigen kann. Die richtige Größe des Abstands vom AO zu Null kann auch zur Feinabstimmung von Ein- und Ausstiegen dienen, wenn sie als Maßstab für die Marktstimmung genommen wird, da ihr Abstand als Richtwert für den Abstand des Stop-Loss verwendet werden kann. Es ist auch in einigen vergleichenden Analysen informativ, wenn es wichtig ist, Standard-Pullbacks von richtigen Umkehrungen zu unterscheiden, zum Beispiel bei den Backtests.
Die Quantifizierung dieser Lücke lässt sich auf wahrscheinlich unbegrenzte Weise bewerkstelligen. Für unsere Zwecke wollen wir uns auf einige wenige beschränken, die in engerem Zusammenhang mit dem AO selbst stehen. Als erstes wären da die absoluten Indikatorwerte, wobei dieser Wert je nach gehandeltem Wertpapier beispielsweise 0,005 betragen könnte, wenn die Punktgröße 1e-5 beträgt, oder 0,5, wenn es sich bei dem gehandelten Wertpapier um ein Paar mit YEN handelt. Bei diesem Schwellenwert werden nur die AO-Umkehrungen berücksichtigt, deren Betrag über dem absoluten Wert von Null liegt.
Ein weiterer Maßstab für die Quantifizierung könnte die relative Magnitude sein, bei der die aktuellen AO-Werte gegen die jüngsten oder historischen Durchschnittswerte der AO abgewogen werden. Dieser Ansatz kann als anpassungsfähiger Schwellenwert betrachtet werden, der sich je nach Marktbedingungen ändert. Zur Feinabstimmung des Schwellenwerts kann ein nutzerdefinierter Multiplikator k auf die historischen AO-Durchschnittswerte oder die jüngsten Werte angewendet werden. Ein weiterer möglicher Schwellenwert ist der auf der Standardabweichung basierende Schwellenwert. Auch dies ist leicht formelhaft, wie folgt:
wobei
- mu der Mittelwert,
- sigma die Standardabweichung und
- n ein vom Nutzer optimierbarer Parameter ist.
Zeitspezifische Größen sind eine weitere Möglichkeit, die Größenordnung der Nullgrenze zu quantifizieren. Mit diesem Ansatz kann ein absoluter Wert für volatile oder ereignisreiche Perioden zugewiesen werden und ein alternativer Schwellenwert kann verwendet werden, wenn die Märkte ruhiger sind. Dies funktioniert im Prinzip wie der oben erwähnte Schwellenwert für die relative Größe, ist aber eher zeitzentriert.
Dies sind einige der Möglichkeiten, wie dieser Schwellenwert der AO von der Nulllinie aus festgelegt werden könnte. Dabei ist es jedoch wichtig, einige Fallstricke zu beachten, die diesen Prozess behindern und zu unbeabsichtigten Ergebnissen führen können. Ohne zu sehr ins Detail zu gehen, handelt es sich dabei um die Festlegung zu spezifischer Schwellenwerte, die Nichtberücksichtigung des Marktkontextes, die Nichtberücksichtigung der nachlaufenden Natur des AO Oszillators, die Fehlinterpretation kleiner Werte und das Marktrauschen.
Für unsere Zwecke in diesem Artikel wollen wir nicht quantifizieren, wie nahe der AC an der Nullgrenze liegen muss, da wir einfach nach jeder U-Turn suchen, die nahe der Nullgrenze liegt. Wir setzen dies in MQL5 wie folgt um:
//+------------------------------------------------------------------+ //| Check for Pattern 3. | //+------------------------------------------------------------------+ bool CSignalAccelerator::IsPattern_3(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && AC(X() + 2) > AC(X() + 1) && AC(X() + 1) > 0.0 && AC(X() + 1) < AC(X())) { return(true); } else if(T == POSITION_TYPE_SELL && AC(X() + 2) < AC(X() + 1) && AC(X() + 1) < 0.0 && AC(X() + 1) > AC(X())) { return(true); } return(false); }
Ein Einzeltest mit nur diesem Muster, bei dem der Eingabeparameter für die verwendeten Muster mit 8 belegt ist, führt zu folgenden Ergebnissen:
pattern_3 ist von Natur aus kein neues Signalbildungsmuster oder Umkehrmuster, sondern eher ein Trendfortsetzungsmuster. Die Leitlinien für seine Verwendung unterscheiden sich nicht wesentlich von dem, was wir oben mitgeteilt haben.
Vergrößerung der farbigen Balkengrößen
Unser fünftes Muster, pattern_4, ist insofern etwas weit gefasst, als es darauf abzielt, aus der zunehmenden Größe von AC-Balken, die eine bestimmte Farbe haben, Kapital zu schlagen. Wenn der AC eine zunehmende Anzahl von grünen Balken anzeigt (unabhängig davon, ob sie über oder unter der Nulllinie liegen), ist dies ein Zeichen für eine zunehmende Aufwärtsdynamik. Wenn eine zunehmende Anzahl roter Balken angezeigt wird, unabhängig von ihrer Position im Verhältnis zum Nullpunkt, deutet dies auf eine zunehmende Abwärtsdynamik hin.
Da dieses Muster also etwas zu breit angelegt ist, setzen wir es in einem etwas engeren Sinne um, indem wir nur dann eine Erhöhung der Anzahl der farbigen Balken in Betracht ziehen, wenn sie sich auf der Gegenseite des angezeigten Momentums befinden. Bei einem Aufwärtssignal würden also immer mehr grüne Balken unterhalb der Nulllinie erscheinen (oft durch sich verkürzende Balken gekennzeichnet). Ebenso wäre für das Abwärtssignal eine zunehmende Anzahl sich verkürzender roter Balken oberhalb der Nulllinie ein Hinweis auf ein zunehmendes Abwärtsmomentum. Wir setzen dies in MQL5 wie folgt um:
//+------------------------------------------------------------------+ //| Check for Pattern 4. | //+------------------------------------------------------------------+ bool CSignalAccelerator::IsPattern_4(ENUM_POSITION_TYPE T) { int _i = X(); if(T == POSITION_TYPE_BUY && LowerColor(_i) == clrGreen && LowerColor(_i + 1) == clrGreen && LowerColor(_i + 2) == clrGreen) { return(true); } else if(T == POSITION_TYPE_SELL && UpperColor(_i) == clrRed && UpperColor(_i + 1) == clrRed && UpperColor(_i + 2) == clrRed) { return(true); } return(false); }
Bei diesem Muster ist zu beachten, dass es sich stark mit dem bereits oben beschriebenen Divergenzmuster überschneiden kann. Wenn sich höhere Tiefs der grünen Balken unterhalb der Nulllinie bilden und die Kursentwicklung auch niedrigere bis flachere Tiefs signalisiert, könnte dies als zusätzliche Bestätigung für ein Aufwärtssignal dienen, wobei eine Kursdivergenz nach oben im Spiel sein könnte. Umgekehrt könnten niedrigere Hochs der roten Balken oberhalb der Nulllinie bei einem Kursverlauf, der höhere bis flacher werdende Hochs anzeigt, ein Zeichen für einen bevorstehenden Kursrückgang sein. Wie beim Aufwärtssignal bedarf es dann nur noch einer kleinen oder gar keiner zusätzlichen Bestätigung. Die Testergebnisse für dieses Muster allein, wenn wir den Eingabeparameter für die verwendeten Muster auf 16 setzen, ergeben folgenden Bericht:
Wie immer sollen diese Tests das „Potenzial“ des Musters aufzeigen, nicht die zukünftigen Ergebnisse an sich. Sie stammen aus den Eingabeeinstellungen einer kurzen Optimierungsphase, und mit diese Einstellungen wurden weder ein Vorwärtstest gemacht noch wurden sie kreuzvalidiert. Der Leser ist wie immer aufgefordert, dies mit den von ihm beabsichtigten Sicherheiten und den Daten des von ihm gewählten Brokers durchzuführen.
Spitzen und Senken des AC
Unser sechstes Muster, pattern_5, kombiniert die Wirkung des AC Oszillators mit den Preisaktionsmustern, wobei der Schwerpunkt auf den fraktalen Punkten liegt. Ein spitzes Aufwärtssignal wird definiert, wenn auf eine Kursspitze ein Anstieg der grünen Balkengröße des AC Oszillators folgt, wenn der Oszillator über der Nulllinie liegt. Dies deutet auf eine Fortsetzung des Aufwärtsmomentums hin. In ähnlicher Weise liegt ein spitzes Abwärtssignal vor, wenn auf ein Fraktal der Tiefs in der Preisbewegung ein unterer roter AC-Balken folgt, der unterhalb der Nulllinie liegen würde. Dies würde ebenfalls auf eine Fortsetzung des rückläufigen Momentums hindeuten. Wir codieren dies in MQL5 wie folgt:
//+------------------------------------------------------------------+ //| Check for Pattern 5. | //+------------------------------------------------------------------+ bool CSignalAccelerator::IsPattern_5(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Close(X() + 2) < Close(X() + 1) && Close(X() + 1) > Close(X()) && UpperColor(X()) == clrGreen && AC(X()) > 0.0) { return(true); } else if(T == POSITION_TYPE_SELL && Close(X() + 2) > Close(X() + 1) && Close(X() + 1) < Close(X()) && LowerColor(X()) == clrRed && AC(X()) < 0.0) { return(true); } return(false); }
Es sei darauf hingewiesen, dass dieses Muster mit einer gewissen Vorsicht zu behandeln ist, da ein spitzes Hoch auf dem AC oder sogar im Preis auf eine potenzielle Umkehr hinweisen kann, so wie auch ein Fraktal der Tiefs oder ein AC auf eine Aufwärtsumkehr hindeuten kann. Die Interpretation von pattern_5 kann auch ein wenig subjektiv sein, da einige Metriken in Betracht gezogen werden müssen, um die Größe jedes Signalwertes richtig einzuschätzen oder zu gewichten. Dazu gehören Spitzen der Hochs und der Tiefs, ihre Häufigkeit und der Tickwert ihrer Divergenz.
Höhere Spitzen der Hochs und tiefere der Tiefs deuten oft auf ein stärkeres Momentum hin. Um unsere obige Code-Implementierung zu modifizieren, könnten wir einen Punkt-Schwellenwert oder ein Vielfaches der aktuellen ATR bei der Messung der Schwellengröße hinzufügen, sodass als Filter nur Spitzen/Senken, deren Swing-Bewegung größer als der Schwellenwert ist, als Mustersignale gelten. Auch die Frequenzmetrik, deren Anzahl sich in diesem Fall umgekehrt zur Stärke des Signals verhält, könnte als Nenner für die Größe des Spitzen-/Tiefstwerts gelten. Das liegt daran, dass die Märkte in der Regel umso unbeständiger sind, je häufiger die Höchst- und Tiefststände auftreten. Da Höchststände in der Regel immer auf Tiefststände folgen und umgekehrt, wäre eine effektive Methode, sie zu zählen, zu sehen, wie viele von ihnen innerhalb eines festgelegten Rückblickzeitraums auftreten, der je nach verwendetem Zeitrahmen eine Woche oder ein Tag sein kann.
Schließlich könnte auch eine Divergenz für pattern_5 in Frage kommen, da hier Spitzen der Hochs und der Tiefs betrachtet werden, die sich möglicherweise nicht wie im Muster definiert ausrichten, sondern z. B. ein Paar aus tiefer und hoher Spitze bilden, was auf eine Divergenz hindeuten könnte. Beim Testen nur dieses Musters, indem wir das Eingabemuster für die verwendeten Karten als 32 zuweisen, erhalten wir die folgenden Testlaufergebnisse:
Farbwechsel nach einem starken Trend
Unser siebtes Muster, pattern_6, ergibt sich aus Farbänderungen des AC Oszillators. Und da diese Veränderung je nach dem Ort, an dem sie im Verhältnis zur Nulllinie auftritt, signifikant ist, könnte sie zu breit sein, wie wir bei pattern_4 gesehen haben. Daher beschränken wir unsere Definitionen der einzelnen Signale auf eine bestimmte Seite der Nulllinie. Eine Erschöpfung des Aufwärtsmomentums wäre also ein Wechsel der AC-Balken oberhalb der Nulllinie von der Farbe Grün zu Rot, was ein Abwärtssignal bedeuten würde. Ebenso würde ein Wechsel von roten Balken zu grünen Balken unterhalb der Nulllinie darauf hindeuten, dass das Abwärtsmomentum erschöpft ist und somit ein Rücksetzer nach oben bevorsteht. Wir implementieren dies wie folgt in MQL5:
//+------------------------------------------------------------------+ //| Check for Pattern 6. | //+------------------------------------------------------------------+ bool CSignalAccelerator::IsPattern_6(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && ((UpperColor(X() + 1) == clrRed && UpperColor(X()) == clrGreen) || (LowerColor(X() + 1) == clrRed && LowerColor(X()) == clrGreen))) { return(true); } else if(T == POSITION_TYPE_SELL && ((UpperColor(X() + 1) == clrGreen && UpperColor(X()) == clrRed) || (LowerColor(X() + 1) == clrGreen && LowerColor(X()) == clrRed))) { return(true); } return(false); }
Dieser Farbwechsel tritt nach einem starken Trend auf, sodass dieser neben dem Farbwechsel geprüft werden muss, um ein Signal zu registrieren. Abgesehen davon, dass es sich um ein Einstiegssignal handelt, wie wir es in diesem Fall anwenden, kann es auch als Punkt für Gewinnmitnahmen dienen, da wir uns nach einem langen Trend in einer Umkehr befinden. Die Idee der Gewinnmitnahme unterstreicht nämlich, dass dieses Signal für sich genommen nicht unbedingt so stark und zuverlässig ist, da es immer am Ende oder eher in der Mitte eines starken Trends auftritt. Ein Testlauf nur mit diesem Muster, bei dem die Eingabe für die verwendeten Muster auf 64 gesetzt wurde, ergibt folgenden Bericht:
Flache AC in der Nähe von Extremwerten
Unser achtes und letztes Muster, pattern_7, ergibt sich aus der Beobachtung des AC Oszillators, wenn er sich in der Nähe seiner Extremwerte befindet. Bei diesem Muster bietet sich eine Aufwärtsgelegenheit, wenn der AC in der Nähe eines signifikanten Tiefs flach wird, mit überwiegend roten Balken, und dann beginnt, grüne Balken zu bilden. Umgekehrt ist eine Abwärtsgelegenheit gegeben, wenn der AC in der Nähe eines signifikanten Hochs flach wird, mit vielen grünen Balken, und sich dann einige rote Balken entwickeln. Wie in diesem Szenario zu erwarten, müsste der AC für ein Aufwärtssignal unter der Nulllinie liegen, während er für ein Abwärtssignal über der Nulllinie liegen müsste. Wir codieren pattern_7 wie folgt in MQL5:
//+------------------------------------------------------------------+ //| Check for Pattern 7. | //+------------------------------------------------------------------+ bool CSignalAccelerator::IsPattern_7(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && LowerColor(X() + 3) == clrRed && LowerColor(X() + 2) == clrRed && LowerColor(X() + 1) == clrRed && LowerColor(X()) == clrGreen) { return(true); } else if(T == POSITION_TYPE_SELL && UpperColor(X() + 3) == clrGreen && UpperColor(X() + 2) == clrGreen && UpperColor(X() + 1) == clrGreen && UpperColor(X()) == clrRed) { return(true); } return(false); }
Ein Abflachen des AC, insbesondere bei einem bestimmten Schwellenwert, kann ein deutliches Signal dafür sein, dass der vorherrschende Trend nachlässt. Unsere obige Implementierung sieht keinen Schwellenwert vor, den der AC Oszillator erreichen muss, bevor dieses Muster berücksichtigt werden kann; dies wäre jedoch eine sinnvolle Ergänzung, wenn der Leser dieses Muster prägnanter gestalten möchte. Tests mit dem Eingabeparameter der verwendeten Zuordnungen, die auf 128 gesetzt wurde, ergeben folgenden Bericht:
Alle Muster
Wenn wir einen Optimierungslauf durchführen, der darauf abzielt, die ideale Kombination von Mustern zu ermitteln, indem wir in erster Linie den Eingabeparameter der verwendeten Zuordnungen von 0 bis 255 optimieren, erhalten wir bei einigen unserer günstigen Ergebnisse den folgenden Bericht:
Schlussfolgerung
Wir haben einen weiteren Oszillator von Bill Williams untersucht, der zwar dem Awesome Oszillator, den wir in einem kürzlich erschienenen Artikel betrachtet haben, sehr ähnlich ist, aber mehr darauf ausgerichtet ist, eine sich beschleunigende Kursdynamik und nicht nur deren Veränderungen zu verfolgen. Außerdem wurden einige geringfügige Änderungen daran vorgenommen, wie die Farben durch das nutzerdefinierte Signal im Vergleich zum Awesome-Oszillatorsignal bestimmt wurden. Diese sind in dem unten angehängten Quellcode zu sehen. Wir wollen diese Indikatorenserie nun vorerst mit einigen weiteren Beiträgen abschließen.
Datei Name | Beschreibung |
---|---|
SignalWZ_52.mqh | Nutzerdefinierte Signalklassendatei |
WZ_52 | Assistent Assemblierter Expert Advisor, dessen Kopfzeile dazu dient, die verwendeten Dateien anzuzeigen. |
Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/en/articles/16781





- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.