Strategie für den Durchbruch der doppelten gleitenden Durchschnittsoscillation

Schriftsteller:ChaoZhang, Datum: 2023-11-27 17:44:49
Tags:

img

Übersicht

Die doppelte gleitende Durchbruchstrategie berechnet zwei gleitende Durchschnitte verschiedener Zeiträume, um einen Kanal zu bilden und den schwankenden Kurstrend zu beurteilen.

Strategieprinzip

Die wichtigsten Schritte dieser Strategie sind:

  1. Berechnen Sie zwei gleitende Durchschnitte, eine mit einer kürzeren Periode und eine mit einer längeren Periode.

  2. Zusätzlich wird ein ATR über und unter dem kürzeren MA hinzugefügt, um einen Kanal zu bilden.

  3. Ein Kaufsignal wird erzeugt, wenn der Preis den Kanal nach oben durchbricht. Ein Verkaufssignal wird erzeugt, wenn der Preis den Kanal nach unten durchbricht.

  4. Gute Handelssignale werden nur erzeugt, wenn der kurzfristige Durchbruch mit der Haupttrendrichtung übereinstimmt.

Durch die Einhaltung dieser Schritte erfasst diese Strategie Durchbruchspunkte in schwankenden Trends und vermeidet falsche Signale, indem sie sich auf den Mainstream-Trend bezieht.

Analyse der Vorteile

Die Vorteile dieser Strategie:

  1. Der Doppel-MA-Kanal spiegelt den aktuellen Kursschwankungsbereich wider.

  2. Der ATR-Parameter ermöglicht es dem Kanalbereich, die Marktvolatilität in Echtzeit zu verfolgen.

  3. Durch die Mainstream-Trendfilterung werden falsche Signale in schwankenden Märkten vermieden.

  4. Die Regeln sind einfach und leicht verständlich.

Risikoanalyse

Die Risiken:

  1. Erfolglose Durchbrüche können zu fehlenden guten Gelegenheiten führen, die durch Gewinngewinn und Wiedereintritt gemildert werden können.

  2. Das Mainstream-Trend-Urteil hat eine Zeitverzögerung und kann nicht alle falschen Signale eliminieren.

  3. Der Stop-Loss kann in volatilen Märkten eingegriffen werden und den ATR dynamisch anpassen.

Optimierungsrichtlinien

Möglichkeiten zur Optimierung dieser Strategie:

  1. Optimierung der MA-Parameter für verschiedene Produkte.

  2. Optimieren Sie den ATR-Parameter, um die Volatilität besser zu verfolgen.

  3. Fügen Sie zusätzliche Filter wie Volumen- und Volatilitätsindikatoren hinzu, um weitere falsche Signale zu vermeiden.

  4. Verwenden Sie maschinelles Lernen, um Parameter automatisch zu optimieren.

Schlussfolgerung

Diese doppelte MA-Oszillations-Durchbruchstrategie erfasst oszillierende Trends durch den doppelten MA-Kanal und die Mainstream-Filterung. Mit ihren einfachen und klaren Regeln ist sie ein hervorragendes Beispiel, um Durchbruchshandelsstrategien zu erlernen. Weitere Optimierungen bei Parametern und Signalfilterung können ihre Rentabilität und Stabilität verbessern.


/*backtest
start: 2022-11-20 00:00:00
end: 2023-11-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Anuj4912
//@version=4
strategy("Anuj4912", overlay=true)
res = input(title="Time Frame",  defval="120")
Factor=input(1, minval=1,maxval = 100)
Pd=input(1, minval=1,maxval = 100)

tp = input(500,title="Take Profit")
sl = input(400,title="Stop Loss")


Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))
MUp=request.security(syminfo.tickerid,res,hl2-(Factor*atr(Pd)))
MDn=request.security(syminfo.tickerid,res,hl2+(Factor*atr(Pd)))

Mclose=request.security(syminfo.tickerid,res,close)

TrendUp=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up
TrendDown=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn

MTrendUp=Mclose[1]>MTrendUp[1]? max(MUp,MTrendUp[1]) : MUp
MTrendDown=Mclose[1]<MTrendDown[1]? min(MDn,MTrendDown[1]) : MDn

Trend = close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1)
Tsl = Trend==1? TrendUp: TrendDown

MTrend = Mclose > MTrendDown[1] ? 1: Mclose< MTrendUp[1]? -1: nz(MTrend[1],1)
MTsl = MTrend==1? MTrendUp: MTrendDown

linecolor = Trend == 1 ? green : red
plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "SuperTrend")

Mlinecolor = MTrend == 1 ? blue : orange
plot(MTsl, color = Mlinecolor , style = line , linewidth = 2,title = "Main SuperTrend")

plotshape(cross(close,Tsl) and close>Tsl , "Up Arrow", shape.triangleup,location.belowbar,green,0,0)
plotshape(cross(Tsl,close) and close<Tsl , "Down Arrow", shape.triangledown , location.abovebar, red,0,0)

up = Trend == 1 and Trend[1] == -1 and MTrend == 1 
down = Trend == -1 and Trend[1] == 1 and MTrend == -1 
plotarrow(up ? Trend : na, title="Up Entry Arrow", colorup=lime, maxheight=60, minheight=50, transp=0)
plotarrow(down ? Trend : na, title="Down Entry Arrow", colordown=red, maxheight=60, minheight=50, transp=0)


golong = Trend == 1 and Trend[1] == -1 and MTrend == 1 
goshort = Trend == -1 and Trend[1] == 1 and MTrend == -1 

strategy.entry("Buy", strategy.long,when=golong)
strategy.exit("Close Buy","Buy",profit=tp,loss=sl)
   
   
strategy.entry("Sell", strategy.short,when=goshort)
strategy.exit("Close Sell","Sell",profit=tp,loss=sl)



Mehr