Strategie für den Trendbruch auf der Grundlage der Abweichung des gleitenden Durchschnitts

Schriftsteller:ChaoZhang, Datum: 23.10.2023
Tags:

img

Übersicht

Diese Strategie identifiziert Markttrend und Umkehrmöglichkeiten, indem sie die Abweichung des Preises von seinem glatten gleitenden Durchschnitt berechnet.

Strategie Logik

  1. Berechnen Sie den dreiperiodischen gewichteten gleitenden Durchschnitt des Preises FPrice als glättete MA-Linie.

  2. Berechnen Sie die 17-tägige Standardabweichung stdev und den 17-tägigen einfachen gleitenden Durchschnitt ema2 des FPrice.

  3. Die Abweichung Rate1 des Preises vom Durchschnitt wird als (FPrice-ema2)/stdev berechnet.

  4. Wenn Rate1 unter -1 fällt und steigt, signalisiert er einen Ausbruch unterhalb der Abwärtstrendlinie und erzeugt ein Kaufsignal.

  5. Wenn Rate1 über 1 steigt und zu fallen beginnt, signalisiert er einen Ausbruch über der Aufwärtstrendlinie und erzeugt ein Verkaufssignal.

  6. Öffnen oder Schließen von Positionen nach den Signalen.

Die Strategie verwendet den Standardabweichungsbereich der Kursentwicklung von MA, um Trendumkehrungen zu identifizieren. Durch die dynamische Anpassung des Referenzbereichs passt sie sich an die Marktvolatilität an. Wenn der Preis um mehr als eine Standardabweichung aus dem MA ausbricht, löst sie ein Handelssignal aus. Dies filtert kurzfristige Marktgeräusche effektiv aus und fängt mittelfristige bis langfristige Trendveränderungen ein.

Analyse der Vorteile

  1. Der dynamische Referenzbereich passt sich automatisch der sich ändernden Marktvolatilität an.

  2. Die glatte MA filtert kurzfristige Geräusche effektiv aus.

  3. Die Standardabweichung setzt angemessene Breakout-Schwellenwerte und verhindert einen Überhandel.

  4. Der Impulsfilter verhindert falsche Ausbrüche.

  5. Die Strategielogik ist einfach und klar, leicht verständlich und umsetzbar.

  6. Die Parameter können für verschiedene Handelsinstrumente angepasst werden.

  7. Sie kann mit anderen Indikatoren kombiniert werden, um die Leistung zu verbessern.

Risikoanalyse

  1. Während längerer Zeiträume niedriger Volatilität kann es weniger Handelsmöglichkeiten geben.

  2. Bei unzulänglichen Standardabweichungsparametern kann es zu fehlenden guten Trades oder zu übermäßigen falschen Signalen kommen.

  3. Bei extremen Kursschwankungen kann die Standardabweichung fehlschlagen und falsche Signale auslösen.

  4. Bei Trendübergängen kann es zu mehr falschen Ausbrüchen kommen.

  5. Bei der Erkennung von kurzfristigen Schichten sind die MA-Systeme nachlässig.

  6. Parameter und Filter müssen für bestimmte Marktumgebungen richtig eingestellt werden.

Anweisungen zur Verbesserung

  1. Optimierung von MA-Tagen und -Typ basierend auf den Instrumenteneigenschaften.

  2. Anpassung des Standardabweichungsmultiplikators, um den optimalen Referenzbereich zu finden.

  3. Hinzufügen von Preismomentumsfiltern, um falsche Signale zu reduzieren.

  4. Einbeziehung von Volatilitätsindikatoren zur dynamischen Anpassung der Parameter nach Volatilität.

  5. Kombinieren Sie mit anderen ähnlichen Ausbruchsstrategien, um die Gewinnrate zu verbessern.

  6. Um das Risiko zu managen, sollten Sie die Positionsgröße um Trendwendepunkte herum verringern.

  7. Hinzufügen von Stop Loss zur Kontrolle von Einzelverlusten.

Schlussfolgerung

Die Strategie hat eine klare Logik, um Trendumkehrungen zu identifizieren. Mit Parameter-Tuning und Kombinationen kann sie an verschiedene Märkte angepasst werden. Das Risikomanagement ist jedoch entscheidend, um falsche Signale in Zeiten hoher Volatilität zu vermeiden.


/*backtest
start: 2023-09-22 00:00:00
end: 2023-10-22 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Mustafaozver

//@version=4
strategy("Escaping of Rate from Avarage By Mustafa OZVER", "EoRfA", overlay=false)
//strategy("Escaping of Rate from Avarage By Mustafa OZVER", "EoRfA", overlay=false)

src = input(ohlc4,"Source")
FPrice = wma(src,3)
len = input(17,"Length")

stdev = stdev(FPrice,len)
ema2 = ema(FPrice,len)

Rate1 = (FPrice - ema2) / stdev
//bgcolor(color=((stdev/ema)>0.0015)?color.green:#00000000,transp=80)

colorG = color.lime
colorR = color.red

hline(0,linestyle=hline.style_solid,editable=false)
hline1=hline(1,linestyle=hline.style_dotted,editable=false)
hlinen1=hline(-1,linestyle=hline.style_dotted,editable=false)
fill(hline1,hlinen1,color=color.silver,transp=85,editable=true)

//plot(Rate,color=(Rate>0?colorG:colorR),transp=75,style=plot.style_area,editable=false)

plot(Rate1,title="ESC1",color=(Rate1>0?colorG:colorR),style=plot.style_line,linewidth=1,editable=true)

BUYSIGNAL = Rate1 < -1 and change(Rate1) > 0
SELLSIGNAL = Rate1 > 1 and change(Rate1) < 0

if (BUYSIGNAL)
    strategy.order("LONG1",true)
    //strategy.close("SHORT1")

if (SELLSIGNAL)
   // strategy.order("SHORT1",false)
    strategy.close("LONG1")

Mehr