FRAMA und die auf einem doppelten gleitenden Durchschnitt basierende Crossover-Handelsstrategie für gleitende Mittelwerte

Schriftsteller:ChaoZhang, Datum: 2023-12-22 16:08:23
Tags:

img

Übersicht

Diese Strategie berechnet zunächst die einfachen gleitenden Durchschnitte für 13 Perioden und 26 Perioden und berechnet dann den FRAMA-Indikator. Sie geht lang, wenn die schnelle Linie die langsame Linie von unten nach oben durchbricht und tritt aus der Position, wenn die schnelle Linie die langsame Linie von oben nach unten durchbricht oder wenn der FRAMA-Indikator den Schlusskurs von oben nach unten durchbricht.

Strategieprinzip

Die Strategie verwendet hauptsächlich gleitende Durchschnittsüberschreitungen, um Handelssignale zu generieren. Wenn der kurzfristige gleitende Durchschnittswert den langfristigen gleitenden Durchschnittswert von unten nach oben durchbricht, zeigt er an, dass sich der Trend vom Rückgang zum Anstieg wendet und lang geht. Wenn der kurzfristige gleitende Durchschnittswert unter dem langfristigen kreuzt, zeigt er eine bevorstehende Umkehr an und schließt die Position.

Der FRAMA-Indikator ist eine adaptive gleitende Durchschnittslinie, die auf der Grundlage der Fraktalmarkthypothese verbessert wurde. Durch die Berechnung der logarithmischen Veränderungsrate der Preisschwankungen in verschiedenen Perioden schätzte er die Fraktaldimension des Marktes in Echtzeit, um die Glattigkeit des gleitenden Durchschnitts dynamisch anzupassen. Wenn der FRAMA-Indikator unter den Schlusskurs überschreitet, zeigt er ein Trendumkehrsignal an. Kombiniert mit dem gleitenden Durchschnitts-Crossover-Signal verbessert er die Genauigkeit des Urteils.

Analyse der Vorteile

Die Strategie kombiniert den doppelten gleitenden Durchschnitts-Crossover und den FRAMA-Indikator, der falsche Breakout-Signale effektiv filtern und die Qualität der Handelssignale verbessern kann.

Im Vergleich zu einem einzigen Indikator und einem einzigen Modell kann diese Strategie die Signalqualität erheblich verbessern und die Wahrscheinlichkeit von Fehleinschätzungen verringern.

Risikoanalyse

Die Hauptrisiken dieser Strategie liegen darin, dass die doppelten gleitenden Durchschnitte mehr falsche Breakout-Signale erzeugen können und die Parameter-Einstellungen des FRAMA-Indikators auch die Wirksamkeit beeinflussen.

Um die oben genannten Risiken zu kontrollieren, können Parameter wie gleitende Durchschnittsperioden entsprechend angepasst oder mit anderen Indikatoren gefiltert werden.

Optimierungsrichtlinien

Die Strategie kann in folgenden Aspekten optimiert werden:

  1. Testen Sie mehr Kombinationen und Perioden gleitender Durchschnitte, um das optimale Parameterpaar zu finden.

  2. Hinzufügen einer Stop-Loss-Strategie, um Einzelverluste zu kontrollieren.

  3. Kombination von Handelsvolumenindikatoren, um einen falschen Ausbruch bei geringem Volumen zu vermeiden.

  4. Hinzufügen von Machine-Learning-Modellen zur Evaluierung des Marktstatus in Echtzeit und dynamische Anpassung von Parametern.

  5. Kombination von Stimmungsindikatoren, Nachrichten und anderen Faktoren zur Verbesserung der Entscheidungsqualität.

Schlussfolgerung

Diese vorläufige Strategie kombiniert die Anwendung des doppelten gleitenden Durchschnitts-Crossovers und des FRAMA-Indikators. Auf der Grundlage der Einfachheit und Intuition hat sie die Signalqualität effektiv verbessert und lohnt sich für weitere Tests und Optimierungen. Mit Optimierungen wie Parameter-Tuning, Einführung neuer Indikatoren kann erwartet werden, dass diese Strategie zu einer stabilen und zuverlässigen Handelsstrategie wird.


/*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())

Mehr