WaveTrend und CMF-basierte Trendstrategie

Schriftsteller:ChaoZhang, Datum: 2023-11-16 16:38:03
Tags:

img

Übersicht

Diese Strategie kombiniert den WaveTrend-Indikator und den Chaikin Money Flow (CMF) -Indikator, um die Trendrichtung zu identifizieren und Trends zu verfolgen.

Strategie Logik

Der WaveTrend-Indikator kann die Trendrichtung der Preise effektiv identifizieren. Er besteht aus Kanalmitte, Kanaldurchschnitt und Kanalindex. Die Kanalmitte ist ein exponentieller gleitender Durchschnitt des Preises, der den Preistrend widerspiegelt. Der Kanaldurchschnitt ist ein gleitender Durchschnitt der Kanalmitte, der zur Lokalisierung der Kanalmitte verwendet wird. Der Kanalindex spiegelt den Abweichungsgrad des Preises von der Kanalmitte wider und erzeugt Überkauf/Überverkaufssignale.

Der CMF-Indikator kann den Geldzu- und -austrom beurteilen und Trends bestätigen. Dieser Indikator basiert auf der nach Volumen angepassten Akkumulations-/Verteilungslinie, die den Vergleich von Kauf- und Verkaufskraft widerspiegelt. Ein Wert um 0 zeigt ein Gleichgewicht zwischen Geldzu- und -austrom an. Unter 0 zeigt Geldaustrom an und über 0 zeigt Geldaustrom an.

Diese Strategie läuft in einem 15-minütigen Zeitrahmen. Zuerst wird der WaveTrend-Indikator verwendet, um die Kursentwicklungsrichtung zu bestimmen, dann wird der CMF-Indikator verwendet, um die Trends zu bestätigen. Insbesondere, wenn der WaveTrend-Kanalindex unter -60 und die CMF unter -0,2 liegt, geht es lang. Wenn der WaveTrend-Kanalindex über 60 und die CMF größer als 0,2 ist, geht es kurz. Die Ausstiegewährungen basieren hauptsächlich auf dem CMF-Indikator - es schließt eine lange Position, wenn die CMF größer als 0,18, und schließt eine kurze Position, wenn die CMF kleiner als -0,18 ist.

Analyse der Vorteile

  1. Der WaveTrend-Indikator kann die Kursentwicklungsrichtung effektiv bestimmen.
  2. Der CMF-Indikator kann die Trendrichtung bestätigen und falsche Trades vermeiden.
  3. Durch die Kombination von WaveTrend und CMF kann ein ultra-kurzfristiges Trendfolgen erreicht werden.
  4. Der 15-minütige Zeitrahmen eignet sich besser für den kurzfristigen Handel.

Risikoanalyse

  1. WaveTrend kann während der Konsolidierung falsche Signale erzeugen.
  2. CMF kann sich verzögern und Trendwendepunkte verpassen.
  3. Der Handel mit einem einzigen Zeitrahmen birgt höhere Risiken, sollte die Haltedauer verlängern.
  4. Fehlende Stop-Loss-Strategie, nicht in der Lage, einzelne Verluste zu kontrollieren.

Lösungen:

  1. Hinzufügen anderer Anzeigen zur Bestätigung, um falsche Signale zu vermeiden.
  2. CMF-Parameter für eine höhere Empfindlichkeit anpassen.
  3. Erweiterung der Haltedauer, um Risiken auf einem einzigen Zeitrahmen zu senken.
  4. Hinzufügen von beweglichen Stop-Loss, Breakeven-Stop usw. zur Kontrolle von Verlusten.

Optimierung

  1. Zusätzliche Positionsgröße für eine bessere Trendverfolgung.
  2. Hinzufügen einer Stop-Loss-Strategie, um Einzelverluste zu begrenzen.
  3. Hinzufügen von Indikatoren wie Stochastik, um Fehler aus einem einzigen Indikator zu vermeiden.
  4. Versuche verschiedene Wartezeiten, um das Optimum zu finden.
  5. Optimieren Sie die CMF-Parameter, um die beste Kombination zu finden.

Zusammenfassung

Diese Strategie verwendet WaveTrend zur Bestimmung des Trends und CMF zur Bestätigung, für ultra-kurzfristige Trendfolgung. Ihre Vorteile liegen in einer angemessenen Indikatorkombination und effektiven Trendfolgung, mit einem 15-minütigen Zeitrahmen, der sie für den kurzfristigen Handel geeignet macht. Es gibt jedoch Risiken wie ungenaue Signale und eine zu kurze Haltezeit. Zukünftige Verbesserungen wie Stop-Loss, Parameteroptimierung und mehr Signalfilterung können seine Stabilität und Rentabilität weiter verbessern.


/*backtest
start: 2023-11-08 00:00:00
end: 2023-11-15 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "CMF - WaveTrend", shorttitle = "CMF - WaveTrend", overlay = true, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, currency = currency.EUR)

//Chaikin Money Flow

len = input(20, minval=1, title="Length")
mas = input(title="Aggregation", defval="SUM", options=["SUM", "EMA", "WMA"])
e = input(10.0, title="Volume Exponent (0-10 reduces & 10+ increases volume effect)")
p = input(false, title="Show in Percentage")
mvs = input(false, "Factor in Price (Money Volume)")
src=input(hlc3, title="Source for price factor")

trl = min(low,close[1]), trh = max(high,close[1]) // 'true range' fixes issues caused by gaps in price
wv = pow(volume,e/10.0)*(mvs ? src : 1)
ad = (trh==trl ? 0 : (2*close-(trh+trl))/tr(true))*wv
cmf = mas=="SUM" ? sum(ad, len)/sum(wv, len) : mas=="EMA" ? ema(ad, len)/ema(wv, len) : mas=="WMA" ? wma(ad, len)/wma(wv, len) : na
cmf_p  = if p
    50*cmf+50
else
    cmf
b = p ? 50 : 0


//WaveTrend
n1 = input(10, "Channel Length")
n2 = input(21, "Average Length")
obLevel1 = input(60, "Over Bought Level 1")
obLevel2 = input(53, "Over Bought Level 2")
osLevel1 = input(-60, "Over Sold Level 1")
osLevel2 = input(-53, "Over Sold Level 2")
 
ap = hlc3 
esa = ema(ap, n1)
d = ema(abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d)
tci = ema(ci, n2)
 
wt1 = tci
wt2 = sma(wt1,4)
// 


longCondition = wt1 < -60 and cmf < - 0.20
if (longCondition)
 
    strategy.entry("My Long Entry Id", strategy.long)
    
 
shortCondition = wt1 > 60 and cmf > 0.20
if (shortCondition)
 
    strategy.entry("My Short Entry Id", strategy.short)
    
closeLongCondition = cmf_p > 0.18 ? true : false
closeShortCondition = cmf_p < -0.18 ? true : false
    
    
strategy.close("My Long Entry Id", when=(closeLongCondition == true))
strategy.close("My Short Entry Id", when=(closeShortCondition == true))

Mehr