Durchbruchsstrategie mit doppelter gleitender Durchschnittsoszillation


Erstellungsdatum: 2023-11-27 17:44:49 zuletzt geändert: 2023-11-27 17:44:49
Kopie: 0 Klicks: 624
1
konzentrieren Sie sich auf
1617
Anhänger

Durchbruchsstrategie mit doppelter gleitender Durchschnittsoszillation

Überblick

Bei der Dual-Channel-Schock-Breakout-Strategie wird ein Kanal erstellt, um die Schwingungsbewegung des Preises zu bestimmen, indem man die Durchschnittslinie für zwei verschiedene Perioden berechnet. Wenn der Preis den Kanal durchbricht, wird ein Handelssignal erzeugt. Die Strategie wird gleichzeitig mit der Beurteilung der Mainstream-Bewegung des Marktes kombiniert, um falsche Durchbrüche zu vermeiden.

Strategieprinzip

Die Strategie besteht hauptsächlich darin, einen Up-Down-Kanal durch zwei Moving Averages zu bilden, wobei der Kanalbereich durch den durchschnittlichen realen Schwankungsbereich ATR bestimmt wird. Konkret umfasst die Strategie hauptsächlich folgende Schritte:

  1. Berechnen Sie zwei Durchschnittslinien, wobei Durchschnittslinie 1 kurz und Durchschnittslinie 2 lang ist. Durchschnittslinie 1 spiegelt die aktuelle Preisentwicklung wider und Durchschnittslinie 2 die vorherrschende Preisentwicklung.

  2. Auf der Durchschnittslinie 1 bildet jeder plus ein ATR einen Kanal, der die aktuelle Marktvolatilität widerspiegelt.

  3. Wenn der Preis den Kanal von unten nach oben durchbricht, entsteht ein Kaufsignal; wenn der Preis den Kanal von oben nach unten durchbricht, entsteht ein Verkaufssignal.

  4. In Kombination mit den vorherrschenden Preistrends wird nur dann ein echtes Handelssignal erzeugt, wenn die Richtung des Kurzzeitbruchs mit der des Langzeittrends übereinstimmt.

Durch die oben genannten Schritte kann die Strategie Durchbrüche in den Preiswellen-Trends erfassen und gleichzeitig falsche Signale in Verbindung mit den Mainstream-Trends vermeiden.

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. Die Verwendung von doppelten Gleichlinien bildet einen Kanal, der den Bereich der aktuellen Preisschwankungen widerspiegelt.

  2. Die Einführung von ATR-Parametern ermöglicht es dem Kanalbereich, die Marktfluktuation in Echtzeit zu verfolgen.

  3. In Kombination mit Mainstream-Preistendenzen, um falsche Signale in einem wackligen Markt zu vermeiden.

  4. Die Regeln für strategische Entscheidungen sind klar und einfach, leicht zu verstehen und geeignet, um die Forschung zu erlernen.

Risikoanalyse

Die Strategie birgt auch folgende Risiken:

  1. Nach einem erfolglosen Durchbruch kann es zu Verlustrisiken kommen. Dieses Risiko kann verringert werden, indem Positionen nach dem Gewinn verschoben werden.

  2. Die Mainstream-Beurteilung der Zeitverzögerung kann die Fehlsignale nicht vollständig vermeiden. Die Durchschnittslinieparameter können entsprechend angepasst werden, um sie zu reduzieren.

  3. In stark bewegten Märkten können die Stop-Loss-Punkte leicht überschritten werden. Die ATR kann in Echtzeit angepasst werden, um auf Marktschwankungen zu reagieren.

Optimierungsrichtung

Diese Strategie kann optimiert werden durch:

  1. Die Parameter für die Berechnung der Durchschnittslinie können optimiert werden, um die optimale Kombination der Parameter für verschiedene Sorten zu finden.

  2. Die ATR-Parameter können auch optimiert werden, um die aktuelle Volatilität des Kanals besser zu verfolgen.

  3. Zusätzliche Filterbedingungen, wie z. B. Energieanzeigen, Schwankungsanzeigen usw., werden hinzugefügt, um Fehlsignale weiter zu vermeiden.

  4. Automatische Optimierung der Parameter durch maschinelle Lerntechnik, um eine dynamische Anpassung der Parameter zu erreichen.

Zusammenfassen

Die Doppel-Einheitliche-Schock-Break-Strategie erfasst die Schok-Trends durch die Doppel-Einheitliche-Kanal- und Mainstream-Richtung. Die Strategie-Beschlussregeln sind einfach und klar, leicht zu verstehen und zu implementieren, und ist ein hervorragendes Beispiel für das Verständnis und Lernen von Breakout-Strategien. Die Strategie kann durch ständige Optimierung der Parameter-Einstellungen und Signalfilterung die Stabilität und Profitabilität weiter verbessern.

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