
MQL5-Assistenten-Techniken, die Sie kennen sollten (Teil 65): Verwendung von FrAMA-Mustern und des Force Index
Einführung
Wir setzen unsere Serie fort, in der wir uns zuletzt mit den Kanälen DeMarker und Envelopes befasst haben, indem wir die Kombination aus dem Fractal Adaptive Moving Average (FrAMA) und dem Oszillator Force Index betrachten. Der FrAMA ist als gleitender Durchschnitt ein Trendindikator, während der Force Index eine Überprüfung des Volumens ermöglicht, um festzustellen, ob der Trend anhaltend ist. Wir werden die typischen 10 Muster betrachten, die sich aus der Kombination dieser beiden Indikatoren ergeben, wie wir es bereits in früheren Artikeln getan haben. Wir trainieren oder optimieren mit EUR USD auf dem 4-Stunden-Zeitrahmen für das Jahr 2023. Mit diesem Symbol werden Vorwärtsbewegungen oder Tests für das Jahr 2024 durchgeführt.
FrAMA und Force Index-Divergenz
Unser erstes Muster ergibt sich aus der Divergenz zwischen FrAMA und dem Force Index. Ein Aufwärtssignal liegt vor, wenn der FrAMA einen Abwärtstrend anzeigt, bei dem der Kurs entweder tiefere Tiefststände erreicht oder unter den FrAMA abdriftet, während der Force Index höhere Tiefststände bildet, was auf einen nachlassenden Verkaufsdruck hindeutet. Dieses einfache Muster lässt sich selbst im Rahmen der relativ engen Definition noch auf vielfältige Weise umsetzen. Wir haben uns für die Umsetzung entschieden, indem wir nach Kursrückgängen unter FrAMA suchen, während der Force Index über sein vorheriges Tief steigt und dabei unter dem Nullpunkt bleibt.
Ein Abwärtssignal liegt vor, wenn ein Aufwärtstrend von FrAMA, der sich durch die Erreichung höherer Hochs bestätigt, zusammen mit dem Force Index, der niedrigere Hochs bildet, ein Zeichen für einen nachlassenden Kaufdruck ist. Wir implementieren sowohl Abwärts- als auch Abwärtsmuster wie folgt in MQL5:
//+------------------------------------------------------------------+ //| Check for Pattern 0. | //+------------------------------------------------------------------+ bool CSignalFRM_FRC::IsPattern_0(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Close(X()) < FRM(X()) && Close(X() + 1) > FRM(X() + 1) && 0.0 > FRC(X()) && FRC(X()) > FRC(X() + 1)) { return(true); } else if(T == POSITION_TYPE_SELL && Close(X()) > FRM(X()) && Close(X() + 1) < FRM(X() + 1) && 0.0 < FRC(X()) && FRC(X()) < FRC(X() + 1)) { return(true); } return(false); }
Dieses Muster erkennt potenzielle Trendumkehrungen, indem es die Trendrichtung des FrAMA mit dem Momentum des Force Index vergleicht. Oft signalisiert eine starke Aufwärts-/Abwärts-Divergenz eine Abschwächung des Trends, was die wichtigste Einstiegsthese darstellt. Dieses Muster verbindet also Anpassungsfähigkeit mit volumengewichteter Dynamik.
FrAMA passt seine Glättungsperiode auf der Grundlage der fraktalen Geometrie an, wodurch es in hohem Maße auf Preisänderungen reagiert und gleichzeitig Rauschen herausfiltert. Der Force Index hingegen misst die Stärke einer Kursbewegung, indem er die Kursänderung mit dem Volumen multipliziert, das als Indikator für den Kauf-/Verkaufsdruck dient. Es wird eine Aufwärts/Abwärts-Divergenz auftreten, der FrAMA zeigt einen Abwärtstrend, aber der Force-Index bildet höhere Tiefs, was auf eine Schwäche des derzeitigen Aufwärtstrends hindeutet. Bei der Abwärts-Divergenz ist das Gegenteil der Fall. Das Muster ist von Natur aus dazu gedacht, Schwung- oder Wendepunkte im Markt zu erfassen. Die Testergebnisse nach dem Training/der Optimierung sind unten dargestellt, und dieses Muster geht nicht über den vorgesehenen Zeitraum von einem Jahr, 2024, hinaus;
Kreuzen von FrAMA mit einer Bestätigung durch den Force-Index
Unser Pattern-1 basiert auf dem FrAMA-Kreuz und einer Bestätigung durch den Force Index. Ein Aufwärtssignal liegt vor, wenn der Kurs den FrAMA übersteigt oder ein schneller FrAMA einen langsamen FrAMA übersteigt. In diesem Fall würde auch der Force Index seine Nulllinie durchbrechen. Ein Abwärtssignal liegt also vor, wenn der Kurs den FrAMA von oben nach unten kreuzt, während der Force Index ebenfalls negativ wird, indem er seine Nulllinie durchquert und darunter schließt. Wir implementieren dies wie folgt in MQL5:
//+------------------------------------------------------------------+ //| Check for Pattern 1. | //+------------------------------------------------------------------+ bool CSignalFRM_FRC::IsPattern_1(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Close(X()) > FRM(X()) && Close(X() + 1) < FRM(X() + 1) && 0.0 > FRC(X() + 1) && FRC(X()) > 0.0) { return(true); } else if(T == POSITION_TYPE_SELL && Close(X()) < FRM(X()) && Close(X() + 1) > FRM(X() + 1) && 0.0 < FRC(X() + 1) && FRC(X()) < 0.0) { return(true); } return(false); }
Dieses Muster beruht auf zwei Kreuzungen. Eine für Signal-Trendänderungen, d.h. FrAMA, und die andere für volumengestützte Impulse durch den Force Index. Dies hilft, Fehlsignale in unruhigen Märkten zu vermeiden. Das FrAMA-Kreuz kann auch durch die Verwendung eines schnellen und eines langsamen FrAMA realisiert werden, wobei die Signale anstelle des Preises aus der Kreuzung des schnelleren FrAMA gelesen werden. In Frage kommen z. B. Periodenlänge von 14 und 50. Der Force Index spielt dann eine sekundäre Rolle bei der Validierung, indem er bestätigt, ob die Trendänderungen durch das Volumen gestützt werden.
Dieses Muster ist in Trendmärkten effektiv, da die Anpassungsfähigkeit von FrAMA dafür sorgt, dass Trends „rechtzeitig“ erkannt werden, während der Force Index Ausbrüche mit geringem Volumen herausfiltert. Bei der Umsetzung ist es sinnvoll, die Periodenlängen von FrAMA im Bereich von 12-50 festzulegen, um mittelfristige Trends zu erfassen. Die Anforderung, dass der Force Index seine Nulllinie durchqueren muss, kann auch dadurch ersetzt werden, dass er seinen gleitenden Durchschnitt durchquert, wenn dieser Informationspuffer verfügbar ist. Dieses Muster sollte nicht für den Handel in Konsolidierungsphasen des Marktes verwendet werden, da FrAMA-Kreuze dafür bekannt sind, stark zu schwanken. Der Schlüssel zu geeigneten Ergebnissen könnte ein Backtest für einen geeigneten Periodenlängen für FrAMA und Force Index sein, was wir nicht getan haben, da wir für beide die Zahl 14 verwendet haben. Im Folgenden werden unsere Strategie-Tester-Tests vorgestellt, die den Trainings- und Testzeitraum umfassen. Dieses Muster macht auch keinen Vorwärtstest:
FrAMA Trendrichtung, mit Force Index überkauft/überverkauft
Unser Pattern-2 verwendet die FrAMA-Trendrichtung zusammen mit den Force-Index-Werten für überkauft oder überverkauft Situationen. Ein Aufwärtssignal ist ein Kurs oberhalb des FrAMA, der einen langen Trend anzeigt, sowie das Erreichen eines überverkauften Niveaus durch den Force Index, gefolgt von einem Rücksetzer. Dieser Rücksetzer des Force Index wird als Kaufgelegenheit genutzt. Umgekehrt liegt ein Abwärtssignal vor, wenn der Kurs unter dem FrAMA liegt und der Force Index ein überkauftes Niveau erreicht und dann zu fallen beginnt, was einen Rücksetzer signalisiert. Wir setzen dies in MQL5 wie folgt um:
//+------------------------------------------------------------------+ //| Check for Pattern 2. | //+------------------------------------------------------------------+ bool CSignalFRM_FRC::IsPattern_2(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Close(X()) > FRM(X()) && 0.0 >= FRC(X()) && FRC(X()) > FRC(X() + 1)) { return(true); } else if(T == POSITION_TYPE_SELL && Close(X()) < FRM(X()) && 0.0 <= FRC(X()) && FRC(X()) < FRC(X() + 1)) { return(true); } return(false); }
Dieses Signalmuster kombiniert die Trendbestätigung des FrAMA mit den Extremwerten des Force Index, um Rücksetzer und Umkehrungen zu erkennen. Er ist ideal für den Handel mit Rückkehr zum Mittelwert innerhalb von Trends. Volumenspitzen bei überkauften/überverkauften Kursen erhöhen die Zuverlässigkeit dieses Signals. Dieses Muster nutzt die Trendklarheit des FrAMA und die volumengewichteten Extrema des Force Index. Die Schwellenwerte des Force Index können auf der Grundlage der Volatilität der Vermögenswerte angepasst werden. Für unsere Zwecke haben wir keinen absoluten Schwellenwert für überkauft/überverkauft verwendet, da diese Werte dazu neigen, mit den Preiseinheiten der Vermögenswerte zu bewerten. Stattdessen verwenden wir die Force-Index-Muster, um das Erreichen der Schwellenwerte zu messen. Daher kann eine Bestätigung durch Kursrücksetzer von wichtigen Unterstützungsniveaus oder durch Kerzenmuster dieses spezielle Signal erheblich verstärken.
Er kann mit kürzeren Zeitrahmen wie dem 1-Stunden-Zeitrahmen für den Intraday-Handel verwendet werden, lässt sich aber auch mit höheren Zeitrahmen abstimmen. Er sollte nicht für den Handel gegen starke Trends verwendet werden, es sei denn, der Force Index zeigt eine extreme Divergenz an. Dieses Muster macht auch keinen Vorwärtstest. Der Testbericht ist nachstehend aufgeführt;
FrAMA Steigung mit Force Indexglättung
Pattern-3 verwendet eine Glättung der FrAMA-Steilheit und des Force-Index, sodass das Aufwärtssignal FrAMA mit einer positiven Steigung in einem steilen Winkel ist und der Force-Index ebenfalls steil in den positiven Bereich steigt. Auf der anderen Seite ist das rückläufige Signal FrAMA mit einem negativen steilen Anstieg und der geglättete Force Index ist negativ und rückläufig. Wir setzen dies in MQL5 wie folgt um:
//+------------------------------------------------------------------+ //| Check for Pattern 3. | //+------------------------------------------------------------------+ bool CSignalFRM_FRC::IsPattern_3(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && FRM(X()) - FRM(X() + 1) > FRM(X() + 1) - FRM(X() + 2) && FRM(X() + 1) - FRM(X() + 2) > 0.0 && FRC(X()) - FRC(X() + 1) > FRC(X() + 1) - FRC(X() + 2) && FRC(X() + 1) - FRC(X() + 2) > 0.0) { return(true); } else if(T == POSITION_TYPE_BUY && FRM(X()) - FRM(X() + 1) < FRM(X() + 1) - FRM(X() + 2) && FRM(X() + 1) - FRM(X() + 2) < 0.0 && FRC(X()) - FRC(X() + 1) < FRC(X() + 1) - FRC(X() + 2) && FRC(X() + 1) - FRC(X() + 2) < 0.0) { return(true); } return(false); }
Wir lesen keinen sekundären geglätteten Puffer, sondern betrachten die Veränderungen im Force Index. Da wir aber das Ausmaß dieser Veränderungen verfolgen und eine Zunahme dieser Veränderungen erwarten, simulieren wir einen geglätteten Force Index. Mit diesem Muster soll die Neigung des FrAMA gemessen werden, um die Stärke des Trends zu beurteilen, wenn es mit der geglätteten Force gepaart wird. Es eignet sich besonders gut für Märkte, die sich im Trend befinden und ein konstantes Volumen aufweisen.
In alternativen Implementierungen, die sich mit dem FrAMA-Winkel befassen, kann die Steigung als Änderungsrate berechnet werden. Eine höhere Änderungsrate würde einen steileren Winkel bedeuten, während eine langsamere Änderungsrate einen weniger steilen Winkel bedeuten würde. Wir verwenden daher die FrAMA-Änderungsrate als Proxy für den Anstieg der Neigung des Winkels. Der verwendete Smooth-Force-Index filtert auch kurzfristige Störungen heraus und hebt Kursbewegungen mit nachhaltigem Momentum hervor. Nimmt man diese beiden Faktoren zusammen, so sollte ein steiler Anstieg des FrAMA mit einem steigenden Smooth Force Index einen starken Aufwärtstrend bestätigen, während ein rückläufiger Anstieg mit einem fallenden Force Index auf ein deutliches Abwärtsmomentum hinweisen sollte. Dieses Indikatorenpaar in diesem Muster ist robust für den Swing-Handel, da es sich auf anhaltende Trends konzentriert. Auch dieses Muster macht auch keinen Vorwärtstest, sein Bericht wird weiter unten vorgestellt:
Bei der Umsetzung kann in die Berechnung der FrAMA-Steilheit eingegriffen werden, wenn die Änderungsrate als nicht sensibel genug angesehen wird. Die Verwendung einer Periodenlänge zwischen 13 und 21 bei der Anwendung des Konzepts der Änderungsrate könnte ein besseres Gleichgewicht zwischen Reaktionsfähigkeit und Reduzierung des Rauschens schaffen. Der Einstieg in den Handel sollte erfolgen, wenn beide Indikatoren übereinstimmen, d. h. wenn beide positiv oder negativ geneigt sind. Ein Ausstieg kann abgeleitet werden, wenn der FrAMA-Anstieg abflacht oder der Force Index sich umkehrt, was eine Erschöpfung des Trends bedeutet.
FrAMA Ausbruch mit Force Index Volumenanstieg
Pattern-4 verwendet den FrAMA-Ausbruch und eine Spitze im Force Index. Ein Aufwärtssignal liegt vor, wenn der Kurs entscheidend über den FrAMA steigt, in der Regel um mehr als 1 Prozent. Während dies registriert wird, würde der Force Index auch einen starken positiven Ausschlag von etwa dem Doppelten des durchschnittlichen Force-Index-Wertes zeigen, um ein starkes Kaufvolumen zu markieren. Ein Abwärtssignal liegt vor, wenn der Kurs deutlich unter den FrAMA fällt und der Force Index einen starken negativen Ausschlag von wiederum den Doppelten zeigt, was ein starkes Verkaufsvolumen bedeutet. Wir implementieren dies wie folgt in MQL5:
//+------------------------------------------------------------------+ //| Check for Pattern 4. | //+------------------------------------------------------------------+ bool CSignalFRM_FRC::IsPattern_4(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Close(X()) > FRM(X()) && Close(X() + 1) < FRM(X() + 1) && Close(X()) - Close(X() + 1) >= High(X() + 1) - Low(X() + 1) && FRC(X()) >= 2.0 * FRC(X() + 1) && FRC(X() + 1) > 0.0) { return(true); } else if(T == POSITION_TYPE_SELL && Close(X()) < FRM(X()) && Close(X() + 1) > FRM(X() + 1) && Close(X()) - Close(X() + 1) <= High(X() + 1) - Low(X() + 1) && FRC(X()) <= 2.0 * FRC(X() + 1) && FRC(X() + 1) < 0.0) { return(true); } return(false); }
Dieses Muster erkennt Ausbrüche, wenn sich der Kurs stark über oder unter den FrAMA bewegt und der Force Index diesen Ausbruch mit einem Volumenanstieg bestätigt. In volatilen Märkten ist dies ein sehr wahrscheinlicher Ansatz. Der Ausbruch aus dem FrAMA signalisiert einen neuen Trend, wobei der Force Index als Filter für die Bestätigung dient. Die Indikatorpaarung in diesem Muster ist ideal für volatile Vermögenswerte wie Kryptowährungen oder Small-Cap-Aktien, bei denen Volumenspitzen nachhaltigen Bewegungen vorausgehen. Die Anpassungsfähigkeit von FrAMA gewährleistet eine rechtzeitige Erkennung von Ausbrüchen, während der Force Index falsche Ausbrüche herausfiltert.
Dieses Muster erfordert einen minimalen Force-Index-Spike, der doppelt so hoch ist wie der durchschnittliche oder vorherige Wert. Eine zusätzliche Bestätigung von Ausbrüchen mit Chartmustern wie Dreiecken oder Flaggen bei wichtigen Kursniveaus kann ergänzt werden. Der Einsatz von Stopp-Losses unterhalb oder oberhalb des FrAMA kann das Risiko ebenfalls mindern. Überwachung von Volumentrends zur Vermeidung von Fading Breakouts in Märkten mit geringer Liquidität. Dieses Muster wurde wie folgt getestet und leider, wie die meisten Muster mit diesem Indikatorpaar bei der 14-Indikator-Periode, hat es keinen Vorwärtstest:
FrAMA Unterstützung/Widerstand mit Force Index Umkehrung
Unser Pattern-5 verwendet den FrAMA als Unterstützung/Widerstand mit Force Index-Umkehr. Ein Aufwärtssignal ergibt sich, wenn der Kurs an der dynamischen Unterstützung FrAMA abprallt. In diesem Fall würde sich der Kurs dem FrAMA von oben nähern oder ihn berühren und dann abprallen. Wenn dies geschieht, überschreitet der Force Index seine Nulllinie oder in einer alternativen Umsetzung seinen 5/13 Perioden-EMA. Dies signalisiert einen Anstieg des Aufwärtsvolumens.
Auf der anderen Seite liegt ein Abwärtssignal vor, wenn der Kurs den FrAMA als dynamischen Widerstand ablehnt, wenn der Kurs den FrAMA in einem Abwärtstrend berührt oder sich ihm nähert. Die Kraft würde unter ihre Nulllinie oder ihren EMA fallen, um einen Anstieg des rückläufigen Volumens zu markieren. Wir setzen dies in MQL5 wie folgt um:
//+------------------------------------------------------------------+ //| Check for Pattern 5. | //+------------------------------------------------------------------+ bool CSignalFRM_FRC::IsPattern_5(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Close(X()) >= FRM(X()) && Close(X() + 1) <= FRM(X() + 1) && Close(X() + 2) >= FRM(X() + 2) && FRC(X()) > 0.0 && FRC(X() + 1) < 0.0) { return(true); } else if(T == POSITION_TYPE_SELL && Close(X()) <= FRM(X()) && Close(X() + 1) >= FRM(X() + 1) && Close(X() + 2) <= FRM(X() + 2) && FRC(X()) < 0.0 && FRC(X() + 1) > 0.0) { return(true); } return(false); }
Dieses Muster kombiniert den Trendkontext mit Momentumverschiebungen und eignet sich gut für Märkte, die sich in einer Handelsspanne befinden oder im Trend liegen. Der FrAMA dient als dynamische Unterstützung und Widerstand, wo der Preis abprallt oder zurückgewiesen wird und der Force Index Umkehrungen signalisiert. Diese Paarung kann vielseitig sein, da sich FrAMA an die Marktbedingungen anpasst und Force Index ein präzises Timing bietet.
Dieses Muster muss anhand historischer Daten getestet werden, um die Zuverlässigkeit von FrAMA als Unterstützung/Widerstand zu ermitteln. Wenn schnellere Force-Index-Konformationen erwünscht sind, dann kann die Implementierung, die Force EMA verwendet, anstelle unseres obigen Ansatzes in Betracht gezogen werden. Dieses Muster kann auch mit makrostatischen Unterstützungs-/Widerstandszonen kombiniert werden, um eine höhere Konfluenz zu erreichen. In Zeiten geringen Handelsvolumens sollte der Handel vermieden werden, da sich der Force Index verzögern kann. Dieses Muster macht auch keinen Vorwärtstest, wenn es nur für das Jahr 2023 trainiert und für das Jahr 2024 getestet wird. Der Prüfbericht für beide Zeiträume ist nachstehend aufgeführt:
FrAMA Trendfortsetzung mit Force Index und Rücksetzern
Unser siebtes Muster, Pattern-6, basiert auf einer FrAMA-Trendfortsetzung mit Force Index und Rücksetzern. Ein Aufwärtssignal liegt vor, wenn der Kurs oberhalb von FrAMA bleibt, was den Aufwärtstrend bestätigt, und der Force Index in Richtung der Nullgrenze einbricht, vielleicht sogar leicht negativ wird, sich dann aber wieder von dieser Grenze erholt und positiv wird. Die Aktion des Force Index ist auf einen erneuten Kaufdruck zurückzuführen.
Ein Abwärtssignal liegt hingegen vor, wenn der Kurs unter dem FrAMA bleibt und damit eine rückläufige Entwicklung bestätigt. Um dies zu bestätigen, steigt der Force Index von unter Null auf Null, steigt vielleicht darüber und fällt dann wieder auf unter Null zurück. Dies, wie auch der Trend, bedeutet erneuten Verkaufsdruck. Im Wesentlichen identifiziert das Pattern-6 also Möglichkeiten zur Trendfortsetzung bei Rückschlägen. FrAMA legt den Trend fest und erzwingt Kontrollen zur Wiederherstellung des Volumens. Theoretisch sollte dieses Muster bei starken Trends ein hohes Chancen-Risiko-Verhältnis aufweisen. Wir implementieren sie in MQL5 wie folgt:
//+------------------------------------------------------------------+ //| Check for Pattern 6. | //+------------------------------------------------------------------+ bool CSignalFRM_FRC::IsPattern_6(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Close(X()) > FRM(X()) && Close(X() + 1) > FRM(X() + 1) && Close(X() + 2) > FRM(X() + 2) && FRC(X()) > 0.0 && FRC(X() + 1) <= 0.0 && FRC(X() + 2) >= 0.0) { return(true); } else if(T == POSITION_TYPE_SELL && Close(X()) < FRM(X()) && Close(X() + 1) < FRM(X() + 1) && Close(X() + 2) < FRM(X() + 2) && FRC(X()) < 0.0 && FRC(X() + 1) >= 0.0 && FRC(X() + 2) <= 0.0) { return(true); } return(false); }
Dieses Muster eignet sich auch ideal für den Einstieg in Trends nach einer Korrektur, da der FrAMA die Trendbeständigkeit gewährleistet und der Force Index das Volumen bestätigt. Bei der Anwendung ist es wichtig, dass man abwartet, bis sich der Force Index um die Nullgrenze herum erholt hat, bevor man Entscheidungen trifft, da der Trend tendenziell anhaltend ist. Fibonacci-Retracement-Levels können zur Ergänzung dieses Musters verwendet werden, wobei sich die Rücksetzer an den Retracement-Zonen orientieren. Stop-Losses können auf die jüngsten Schwankungsextreme oder auf den FrAMA als Richtwert gesetzt werden.
Dieses Muster sollte nicht in unruhigen Märkten verwendet werden, da die Rücksetzer eher als Fehlsignale zu werten sind. Dieses Muster ist eines von nur zwei, die in der Lage sind, über ein Jahr einen Vorwärtstest zu machen, nachdem sie nur ein Jahr vorher trainiert wurden. Ihr Bericht ist nachstehend wiedergegeben:
Alle Tests oder Schulungen erstreckten sich über nur ein Jahr, was streng genommen nicht ausreicht, um langfristige Schlussfolgerungen zu ziehen. Dies gilt insbesondere für die anderen Muster, die keinen Vorwärtstest gemacht haben.
FrAMA Volatilitätsrückgang mit Force Indexausweitung
Unser achtes Muster kombiniert den Rückgang der FrAMA-Volatilität mit der Entwicklung des Force Index. Ein Aufwärtssignal liegt vor, wenn der FrAMA abflacht, was entweder durch eine geringe Steigung oder eine enge Preisspanne gekennzeichnet ist, und der Force Index von der Nullgrenze in Richtung seiner überkauften Werte ansteigt. Ein Abwärtssignal liegt auch dann vor, wenn der FrAMA abflacht und der Force Index deutlich von der Nullmarke in Richtung des überverkauften Bereichs abfällt.
Der Oszillator Force Index ist nicht wie der RSI oder der Stochastik-Oszillator, da die Extremwerte nicht durch absolute Werte definiert sind. Die Extremwerte variieren von Anlage zu Anlage. Dies macht unsere Definition von überkauften und überverkauften Regionen aus kodierungstechnischer Sicht etwas problematisch. Nichtsdestotrotz implementieren wir dieses Muster in MQL5 wie folgt:
//+------------------------------------------------------------------+ //| Check for Pattern 7. | //+------------------------------------------------------------------+ bool CSignalFRM_FRC::IsPattern_7(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && fabs(FRM(X()) - FRM(X() + 5)) <= fabs(Close(X()) - Close(X() + 1)) && FRC(X()) > 0.0 && FRC(X() + 1) < 0.0 && FRC(X()) - FRC(X() + 1) >= 2.0 * fabs(FRC(X() + 1))) { return(true); } else if(T == POSITION_TYPE_SELL && fabs(FRM(X()) - FRM(X() + 5)) >= fabs(Close(X()) - Close(X() + 1)) && FRC(X()) < 0.0 && FRC(X() + 1) > 0.0 && FRC(X()) - FRC(X() + 1) <= -2.0 * fabs(FRC(X() + 1))) { return(true); } return(false); }
Pattern-7 greift frühere Perioden niedriger Volatilität auf, indem es FrAMA verwendet, auf die expansive Bewegungen des Force Index folgen. Er ist darauf ausgerichtet, explosive Bewegungen nach der Konsolidierung zu erfassen. Die Volumenunterlegung des Force Indexes spielt eine Schlüsselrolle bei der Ermittlung der Zuverlässigkeit. Eine FrAMA-Kontraktion, gefolgt von einer Volumenspitze, macht dieses Muster gut geeignet für den Handel bei Range Breakouts, da in diesem Fall FrAMA als Identifikator für niedrige Volatilität und als Bestätigung der Signalstärke mit der Force dient.
Die Flachheit des FrAMA kann auch gemessen werden, indem man seine Steigung betrachtet oder seine Veränderungen mit einem anderen Indikator wie der ATR vergleicht. Die Schwellenwerte für den Force Index sind hier der Schlüssel, und man muss einen Weg finden, diese zu definieren, was in unserem Fall durch die Einschätzung der Größe der Bewegung von der Nullgrenze aus geschieht. Die Kombination dieses Musters mit den Bollinger Bändern oder dem Keltner-Kanal kann helfen, einen Rückgang der Volatilität zu bestätigen. Im Bereich der Konsolidierung können Stop-Losses hinzugefügt werden. Auch dieses Muster ist nicht gelaufen, und sein Bericht dazu ist unten wiedergegeben:
FrAMA-Trendstärke mit einem Divergenzfilter für den Force Index
Das vorletzte Muster berücksichtigt die Stärke der FrAMA-Bewegung und die Divergenz des Force Index. Ein Aufwärtssignal liegt vor, wenn der FrAMA stark ansteigt und der Force Index keine Abwärtsdivergenz aufweist, was den Aufwärtstrend bestätigt. Das rückläufige Muster ist die Kehrseite der Medaille, wobei der FrAMA einen starken Abwärtstrend anzeigt und der Force Index keine Aufwärtsdivergenz erkennen lässt. Die Implementierung in MQL5 sieht folgendermaßen aus;
//+------------------------------------------------------------------+ //| Check for Pattern 8. | //+------------------------------------------------------------------+ bool CSignalFRM_FRC::IsPattern_8(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Close(X()) > Close(X() + 1) && FRC(X()) > FRC(X() + 1) && FRM(X()) - FRM(X() + 1) >= 2.0 * FRM(X() + 1)) { return(true); } else if(T == POSITION_TYPE_SELL && Close(X()) < Close(X() + 1) && FRC(X()) < FRC(X() + 1) && FRM(X()) - FRM(X() + 1) <= -2.0 * FRM(X() + 1)) { return(true); } return(false); }
Der Schlüssel zu diesem Muster ist, dass der Preis vom FrAMA aus ziemlich weit oben liegt, um aufwärts zu sein, oder unten, um abwärts zu sein. Die Verwendung des FrAMA zur Bewertung der Trendstärke, die durch den Force Index gefiltert wird, sollte falsche Signale vermeiden, die Handelsgenauigkeit in Trendmärkten verbessern und Trend- und Volumenanalyse ausgleichen. Diese Paarung in Pattern-8 ermöglicht es Händlern, in starken Trends zu bleiben und gleichzeitig Einstiege bei nachlassendem Momentum zu vermeiden, da der Force Index als Filter fungiert.
Durch die Verwendung eines Trendschwellenwerts können wir den Einstieg noch schärfer gestalten, wenn dieser Schwellenwert beispielsweise auf der Neigung des FrAMA oder auf prozentualen Preisänderungen basiert. Die Überwachung des Force Index auf verborgene Divergenzen, der Ausstieg aus Trades, wenn Divergenzen über mehrere Zeitrahmen hinweg bestehen, und auch ordnungsgemäße Backtests der FrAMA-Eingabeeinstellungen zur Optimierung der Trendstärkeerkennung sollten in Betracht gezogen werden. Der Vorwärtstest von Pattern-8 führt ebenfalls nicht zu einem Vorwärtstest, und sein Bericht wird weiter unten wiedergegeben;
FrAMA Multi-Timeframe mit einer Anpassung des Force Index
Unsere letzte Indikatorpaarung, Pattern-9, basiert auf den Grundlagen unserer beiden Indikatoren auf zwei verschiedenen Zeitrahmen. Ein Aufwärtssignal liegt vor, wenn der FrAMA sowohl auf dem unteren als auch auf dem oberen Zeitrahmen ansteigt und der Force Index ebenfalls auf beiden Zeitrahmen über der Nullgrenze liegt. Wir haben dies für unsere Testzwecke implementiert, um einen größeren Zeitrahmen von täglicher Dauer zu haben, der unseren Basis-Testzeitraum von 4 Stunden ergänzt. Für ein Abwärtssignal müsste der FrAMA sowohl auf dem Hauptzeitrahmen als auch auf dem größeren Zeitrahmen einen Abwärtstrend aufweisen, während der Force Index auf beiden Zeitrahmen ebenfalls unter Null liegt. Wir setzen dies in MQL5 wie folgt um;
//+------------------------------------------------------------------+ //| Check for Pattern 9. | //+------------------------------------------------------------------+ bool CSignalFRM_FRC::IsPattern_9(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Close(X()) > Close(X() + 1) && FRC(X()) > FRC(X() + 1) && FRM(X()) > FRM(X() + 1) && FRC(X()) > FRC(X() + 1) && FRM(X()) > FRM(X() + 1)) { return(true); } else if(T == POSITION_TYPE_SELL && Close(X()) < Close(X() + 1) && FRC(X()) < FRC(X() + 1) && FRM(X()) < FRM(X() + 1) && FRC(X()) < FRC(X() + 1) && FRM(X()) < FRM(X() + 1)) { return(true); } return(false); }
Die Kombination dieser sehr grundlegenden Signale der beiden Indikatoren auf zwei Zeitrahmen sorgt für eine hohe Handelswahrscheinlichkeit. Pattern-9 verstärkt den Zusammenfluss, indem es Trend und Volumen aufeinander abstimmt. Er kann ideal für den Swing- und Positionshandel sein. Die Maximierung des Zusammenflusses trägt zur Verringerung falscher Signale bei. Ein Test über das Jahr 2024 nach Optimierung/Training über 2023 ergibt den folgenden Bericht, der erst der zweite Bericht von insgesamt 10 ist, die wir in diesem Artikel untersucht haben, der hat einen Vorwärtstest.
Wir haben dies mit einem täglichen Zeitrahmen implementiert, aber auch höhere Zeitrahmen können in Betracht gezogen werden, wenn die Tests über einen Zeitraum von mehr als einem Jahr laufen, um die Robustheit zu erhalten. Darüber hinaus können auch die Trends des Force Index für ein Aufwärtssignal aufwärts und für ein Abwärtssignal abwärts tendieren, und zwar zusätzlich zu ihrer relativen Positionierung zur Nullgrenze. Außerdem haben wir für die FrAMA einen Standardzeitraum von 14 Jahren verwendet, der jedoch für umfangreiche Tests für jeden Zeitrahmen angepasst werden kann.
Von den 10 Mustern, die wir oben untersucht haben, waren nur 2 in der Lage, einen Vorwärtstest zu machen. Streng genommen reicht es nicht aus, einen Expert Advisor ein Jahr lang zu trainieren bzw. zu optimieren, damit er auch im darauffolgenden Jahr weiterläuft. Bei vielen handelbaren Wertpapieren können Markttrends über mehr als ein Jahr anhalten. Um ein robusteres Handelssystem zu haben, ist es daher wichtig, den Expert Advisor über viele Jahre hinweg zu trainieren oder zu optimieren, wenn man ausgewogene Eingabeeinstellungen sucht.
Allerdings haben wir in früheren Artikeln „vielversprechendere“ Ergebnisse erzielt, sogar mit diesem kurzen Trainingsfenster von einem Jahr, gefolgt von Tests im folgenden Jahr. Unsere Ergebnisse für diese Indikatorenkombination könnten daher mit Problemen behaftet sein, die verhindern, dass sie eine gute Aussagekraft haben. Die Gründe dafür werden im Folgenden erläutert.
Warum die Kopplung von FrAMA und Force Index problematisch sein könnte
FrAMA, ein Trendfolgeindikator, passt seine Glättung auf der Grundlage der fraktalen Dimension der Preisbewegungen an. Es verfolgt die Preisbewegungen mit einer geringeren Verzögerung. Der Force Index, der Preisänderungen mit dem Volumen multipliziert, spiegelt tendenziell die Preisänderungsdynamik wider, da seine Hauptkomponente die Preisänderung ist. Diese Überschneidung bedeutet, dass beide Indikatoren stark von der Preisentwicklung beeinflusst werden. Dies führt möglicherweise eher zu redundanten Signalen als zu ergänzenden Erkenntnissen.
Dies kann für Prognosen problematisch sein, da bei Finanzzeitreihenprognosen die Vorteile verschiedener Inputs unterschiedliche Aspekte des Marktverhaltens erfassen. Zu diesen allgemeinen Kategorien gehören in der Regel Trend, Momentum, Volatilität, Volumen usw. Redundante Signale verringern die Informationen, die einem Prognosemodell zur Verfügung stehen, da sie die Fähigkeit zur Verallgemeinerung über verschiedene Marktbedingungen hinweg einschränken. Wenn beispielsweise beide Indikatoren gleichzeitig einen Aufwärtstrend signalisieren, verstärken sie möglicherweise eher das Rauschen, als dass sie einzigartige Merkmale aufweisen.
Anstatt den FrAMA mit dem Force Index zu kombinieren, ist es vielleicht besser, ihn mit einem anderen Indikator zu kombinieren, der orthogonale Informationen erfasst, wie z. B. Unterstützung/Widerstand oder Momentum. Dies könnten die Bollinger-Bänder bzw. der RSI sein. Solche Kombinationen könnten sicherstellen, dass das Modell verschiedene Inputs erhält, was seine Fähigkeit zur Vorhersage von Preisbewegungen verbessern kann.
Eine weitere Schwäche könnte die starke Volumenabhängigkeit des Force Index sein, bei der wir nicht in der Lage sind, echtes Volumen zu nutzen oder darauf zuzugreifen, und uns daher mit dem Tick-Volumen begnügen müssen. Dieser Kompromiss macht den Force Index allerdings weniger zuverlässig. Außerdem gibt es eine Verzögerung und ein Missverhältnis bei der Empfindlichkeit, weil FrAMA. Die adaptive Glättung von FrAMA kann mit der schnellen Reaktion von Force Index auf Preis- und Volumenänderungen kollidieren, was in volatilen Perioden zu widersprüchlichen Signalen führen kann.
Es kann auch argumentiert werden, dass die Vorhersagekraft begrenzt ist, da keiner der beiden Indikatoren von Natur aus für die Vorhersage künftiger Preisniveaus ausgelegt ist. Es kann behauptet werden, dass sie geeignet sind, aktuelle Trends und Volumina zu erkennen, aber nicht unbedingt Vorhersagen zu treffen.
Schlussfolgerung
Wir haben uns für diesen Artikel ein weiteres Indikatorenpaar aus FrAMA und dem Force Index Oscillator angesehen. Obwohl sie nicht so „profitabel“ sind wie einige Paare, die wir in früheren Artikeln betrachtet haben, gibt es viele Aspekte in unserem Prozess, die wie immer berücksichtigt werden müssen, bevor langfristige Schlussfolgerungen gezogen werden können. Dazu gehört vor allem, dass vor dem Einsatz immer mit den Echtdaten des geplanten Brokers getestet wird, und zwar über mehrere Jahre hinweg. Im nächsten Artikel wird untersucht, wie maschinelles Lernen diese Indikatorenkombination verbessern könnte, wenn überhaupt.
Name | Beschreibung |
---|---|
wz-65.mq5 | Wizard Assembled File, dessen Header die verwendeten Dateien anzeigt |
SignalWZ-65.mqh | Datei mit den Signalklassen |
Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/en/articles/18144
Warnung: Alle Rechte sind von MetaQuotes Ltd. vorbehalten. Kopieren oder Vervielfältigen untersagt.
Dieser Artikel wurde von einem Nutzer der Website verfasst und gibt dessen persönliche Meinung wieder. MetaQuotes Ltd übernimmt keine Verantwortung für die Richtigkeit der dargestellten Informationen oder für Folgen, die sich aus der Anwendung der beschriebenen Lösungen, Strategien oder Empfehlungen ergeben.





- 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.