Kama und Trend auf Basis des gleitenden Durchschnitts nach Strategie

Schriftsteller:ChaoZhang, Datum: 2024-02-06
Tags:

img

Übersicht

Der Kerngedanke dieser Strategie besteht darin, Markttrends zu identifizieren, indem der Kama-Bewegliche Durchschnitt und die Beweglichen Durchschnittsindikatoren kombiniert werden, um einen Trend zu erreichen. Wenn der Kama-Bewegliche Durchschnitt und der Bewegliche Durchschnittswert ein goldenes Kreuz haben, wird beurteilt, dass ein Aufwärtstrend begonnen hat und eine Long-Position eingenommen wird. Wenn der Kama-Bewegliche Durchschnittswert und der Bewegliche Durchschnittswert ein Todeskreuz haben, wird beurteilt, dass ein Abwärtstrend begonnen hat und eine Short-Position eingenommen wird.

Strategie Logik

  1. Berechnen Sie den Kama- gleitenden Durchschnitt. Der Kama- gleitende Durchschnitt ist ein trendfolgende Indikator, der empfindlicher auf Marktlärm reagiert und zur Bestimmung von Preistrends verwendet werden kann.

  2. Berechnen Sie gleitende Durchschnitte. Hier werden zwei gleitende Durchschnitte berechnet, einer ist ein schneller doppelter exponentieller gleitender Durchschnitt, der andere ist ein normal gewichteter gleitender Durchschnitt.

  3. Wenn die schnelle Linie durch die langsame Linie von unten bricht, gehen Sie lang. Wenn die schnelle Linie durch die langsame Linie von oben bricht, gehen Sie kurz.

  4. Nachdem Sie Positionen eingegangen sind, gehen Sie aus, wenn der Preis die Kama-Linie durchbricht, um den Trend nach dem Ausgang zu erreichen.

Vorteile

  1. Die Strategie kombiniert Kama- und gleitende Durchschnittsindikatoren, um relativ genaue Beurteilungen über Markttrends zu erstellen und mit einer starken Zugriffskontrolle den Trend zu verfolgen.

  2. Der Kama- gleitende Durchschnitt ist empfindlicher auf Marktlärm und kann Trendumkehrpunkte im Voraus erkennen.

  3. Die Beurteilung des gleitenden Durchschnitts ist klar und leicht verständlich.

  4. Die Strategie verfügt über einen großen Raum für die Optimierung von Parametern, die für verschiedene Sorten und Handelsinstrumente angepasst und optimiert werden können.

Risikoanalyse

  1. Es besteht immer noch die Möglichkeit eines Fehleinschätzens, wenn die Kombination von Kama- gleitendem Durchschnitt und gleitendem Durchschnitt die Marktentwicklung beurteilt.

  2. Eine Nicht-Stop-Loss-Einstellung kann bei extremen Marktbedingungen zu größeren Verlusten führen.

  3. Bei unangemessenen Parametereinstellungen kann es auch zu Urteilsfehlern kommen, die je nach Sorte angepasst werden müssen.

Optimierungsvorschläge

  1. Überlegen Sie, einen ATR-Indikator für die Einstellung von Stop-Loss hinzuzufügen.

  2. Testen Sie die Auswirkungen verschiedener Parameterwerte auf die Strategierendite, um die optimalen Parameter zu finden.

  3. Es sollte in Erwägung gezogen werden, weitere Indikatoren für die Überprüfung hinzuzufügen, z. B. den Oszillatorindikator, um die Richtigkeit der Beurteilung zu verbessern.

  4. Erstellen Sie ein selbstadaptives und dynamisches Optimierungs-Rahmenwerk für die automatische Optimierung von Parametern.

Zusammenfassung

Die allgemeine Idee dieser Strategie ist klar, indem Kama- gleitender Durchschnitt und gleitender Durchschnitt Goldenkreuz und Todeskreuz verwendet werden, um Trends mit starker Drawdown-Kontrolle zu bestimmen und zu verfolgen. Durch Parameter-Tuning und Optimierung können gute Ergebnisse erzielt werden. Aber es gibt immer noch Raum für Verbesserungen. Durch das Hinzufügen von mehr Verifikationsindikatoren und Stop-Loss-Modulen können die Stabilität und Rentabilität der Strategie weiter verbessert werden.


/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-05 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//synapticex.com
kamaPeriod = input(8, minval=1) 
ROCLength=input(4, minval=1) 

kama(length)=>
    volatility = sum(abs(close-close[1]), length)
    change = abs(close-close[length-1])
    er = iff(volatility != 0, change/volatility, 0)
    sc = pow((er*(0.666666-0.064516))+0.064516, 2)
    k = nz(k[1])+(sc*(hl2-nz(k[1])))
    

n=input(title="period",defval=7)

n2ma=2*wma(close,round(n/2))
nma=wma(close,n)
diff=n2ma-nma
sqn=round(sqrt(n))

n2ma1=2*wma(close[1],round(n/2))
nma1=wma(close[1],n)
diff1=n2ma1-nma1
sqn1=round(sqrt(n))

n1=wma(diff,sqn)
n2=wma(diff1,sqn)
c=n1>n2?lime:red
ma=plot(n1,color=c, linewidth = 3)
plot(cross(nma, nma1) ? nma : na, style = cross, color = c, linewidth = 5)
    
kamaEntry = request.security(syminfo.tickerid,timeframe.period,kama(kamaPeriod))

plot(kamaEntry, color=gray, title="Kama",transp=0, trackprice=false, style=line)


strategy("Kama VS HeikinAshi", overlay=true, pyramiding=0, calc_on_every_tick=true, calc_on_order_fills=true)

buyEntry =  n1 > n2
sellEntry = close < kamaEntry and n1 < n2 

buyExit = close < kamaEntry and n1 < n2
sellExit = n1 > n2 
if (buyEntry)
    strategy.entry("KAMAL", strategy.long, comment="KAMAL")
else
    strategy.close("KAMAL", when=buyExit)

if (sellEntry)
    strategy.entry("KAMAS", strategy.short, comment="KAMAS")
else
    strategy.close("KAMAS", when = sellExit)



Mehr