
Diese Strategie berechnet zunächst einen einfachen Moving Average für 13 und 26 Perioden und berechnet dann den FRAMA-Indikator. Er macht einen Plus, wenn die schnelle Linie die langsame Linie von unten nach oben durchbricht, oder er schließt, wenn die schnelle Linie die langsame Linie von oben nach unten durchbricht oder der FRAMA-Indikator den Schlusskurs von oben nach unten durchbricht.
Die Strategie nutzt hauptsächlich die Überschneidung von zwei Gleichgewichtslinien, um ein Handelssignal zu erzeugen. Wenn der Kurzmittelwert den langfristigen Durchschnitt von unten nach oben überschreitet, bedeutet dies, dass der Kurs von unten nach unten umgedreht wird.
Gleichzeitig wird die Strategie mit dem FRAMA-Indikator als unterstützende Beurteilung eingeführt. Der FRAMA-Indikator basiert auf der Hypothese der Marktspaltung und ist ein adaptierter Moving Average. Er schätzt die Spaltungsdimensionen des Marktes in Echtzeit, indem er die logarithmische Veränderungsrate der Preisschwankungen in verschiedenen Perioden berechnet, wodurch die Glattigkeit des Durchschnitts dynamisch angepasst wird.
Die Strategie kombiniert die doppelte Gleichgewichtskreuzung mit dem FRAMA-Indikator, um falsche Durchbruchsignale effektiv zu filtern und die Qualität der Handelssignale zu verbessern. Die doppelte Gleichgewichtskreuzung beurteilt die Haupthandelsrichtung, die FRAMA-Unterstützung beurteilt, um den Wendepunkt bei einem Erschütterungsfall zu vermeiden.
Im Vergleich zu einzelnen Indikatoren und Modellen verbessert diese Strategie die Signalqualität deutlich und reduziert die Wahrscheinlichkeit von Fehleinschätzungen.
Das Hauptrisiko dieser Strategie besteht darin, dass die doppelte Durchschnittslinie möglicherweise mehr falsche Durchbruchsignale erzeugt. Die Parameter-Einstellungen des FRAMA-Indikators beeinflussen auch die Urteilswirksamkeit. Darüber hinaus können unter bestimmten Umständen die schnellen und langsamen Linien, die FRAMA und den Schlusskurs nicht überschneiden, für lange Zeit nicht überschneiden, was zu keiner Handelsmöglichkeit führt.
Um die oben genannten Risiken zu kontrollieren, können Sie die Parameter für die Durchschnittszyklus-Parameter entsprechend anpassen oder in Kombination mit anderen Indikatoren filtern. Darüber hinaus müssen die Parameter wie die Länge und der Split-Faktor des FRAMA-Indikators für verschiedene Märkte angemessen eingestellt werden, um eine übermäßige Glättung oder Allergie zu vermeiden.
Die Strategie kann in folgenden Bereichen optimiert werden:
Versuchen Sie, mehr Kombinationen von Mittellinien- und Periodiparametern zu testen, um die besten Parameterpaare zu finden.
Erhöhung der Stop-Loss-Strategie und Kontrolle der Einzelschäden.
In Kombination mit den Volumenindikatoren verhindern Sie falsche Durchbrüche bei niedrigen Mengen.
Hinzufügen von maschinellen Lernmodellen, Echtzeit-Bewertung der Marktlage, dynamische Anpassungsparameter.
Um die Qualität der Entscheidungen zu verbessern, können Sie mehrere Faktoren wie Stimmungsindikatoren, Nachrichtenseiten und andere verwenden, um die Stimmung des Marktes zu beurteilen.
Diese Strategie wurde in der ersten Praxis angewendet. Die Kombination aus der Doppel-Equal-Linien-Kreuz-Strategie und dem FRAMA-Indikator wurde angewendet. Die Signalqualität wurde effektiv verbessert und sollte weiter getestet und optimiert werden.
/*backtest
start: 2023-12-14 00:00:00
end: 2023-12-16 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Fractal Adaptive Moving Average",shorttitle="FRAMA",overlay=true)
ma_fast = sma(close,13)
ma_slow = sma(close,26)
plot(ma_fast,color = green)
plot(ma_slow, color = yellow)
price = input(hl2)
len = input(defval=16,minval=1)
FC = input(defval=1,minval=1)
SC = input(defval=198,minval=1)
len1 = len/2
w = log(2/(SC+1))
H1 = highest(high,len1)
L1 = lowest(low,len1)
N1 = (H1-L1)/len1
H2 = highest(high,len)[len1]
L2 = lowest(low,len)[len1]
N2 = (H2-L2)/len1
H3 = highest(high,len)
L3 = lowest(low,len)
N3 = (H3-L3)/len
dimen1 = (log(N1+N2)-log(N3))/log(2)
dimen = iff(N1>0 and N2>0 and N3>0,dimen1,nz(dimen1[1]))
alpha1 = exp(w*(dimen-1))
oldalpha = alpha1>1?1:(alpha1<0.01?0.01:alpha1)
oldN = (2-oldalpha)/oldalpha
N = (((SC-FC)*(oldN-1))/(SC-1))+FC
alpha_ = 2/(N+1)
alpha = alpha_<2/(SC+1)?2/(SC+1):(alpha_>1?1:alpha_)
out = (1-alpha)*nz(out[1]) + alpha*price
plot(out,title="FRAMA",color=purple,transp=0)
entry() => crossover(ma_fast, ma_slow) and (out < close)
exit() => crossover(ma_slow, ma_fast) or crossunder(out, close)
strategy.entry(id= "MA cross", long = true, when = entry())
strategy.close(id= "MA cross", when = exit())