Momentum-Breakout-Handelsstrategie


Erstellungsdatum: 2023-11-14 11:19:05 zuletzt geändert: 2023-11-14 11:19:05
Kopie: 3 Klicks: 731
1
konzentrieren Sie sich auf
1617
Anhänger

Momentum-Breakout-Handelsstrategie

Überblick

Die Strategie nutzt die Bolling-Linie und den ATR-Indikator in Verbindung mit der EMA-Equivalen, um eine dynamische Breakout-Trading-Strategie zu erstellen. Wenn der Preis nach oben über die Bolling-Oberbahn und schnell über die EMA-Equivalen geht, erzeugt dies ein Kaufsignal. Wenn der Preis nach unten über die Bolling-Unterbahn geht und schnell über die EMA-Equivalen fällt, erzeugt dies ein Verkaufsignal.

Strategieprinzip

  1. Berechnen Sie die Mittellinie, die Oberbahn und die Unterbahn der Brin-Linie. Die Mittellinie ist die SMA-Mittellinie mit n Perioden, die Oberbahn ist die Mittellinie + m*n Perioden Standarddifferenz, Unterbahn ist mittlere Linie - m*Die n-Perioden sind unterschiedlich.

  2. Berechnung des ATR-Wertes für die Verfolgung von Stop Losses.

  3. Berechnen Sie die EMA-Mittellinie für 1 und n Zyklen, um die Preisbewegung zu bestimmen.

  4. Ein Kaufsignal wird erzeugt, wenn der Preis über die Blink-Oberbahn geht und schnell über die n-Perioden-EMA-Gehrlinie geht.

  5. Ein Verkaufssignal wird erzeugt, wenn der Preis die Blink-Unterbahn durchbricht und die n-Perioden-EMA-Gewinnlinie schnell durchbricht.

  6. Der ATR-Indikator wird verwendet, um einen Stop-Loss-Punkt zu setzen und die Richtung des Preisbruchs zu verfolgen, um zu verhindern, dass er eingeschlagen wird.

Analyse der Stärken

  1. Brinline kombiniert mit ATR-Stopp, um das Risiko effektiv zu kontrollieren.

  2. Die EMA entscheidet schleunigst über die Richtung der Dynamik und vermeidet falsche Durchbrüche.

  3. Die Strategieparameter sind anpassbar für verschiedene Marktumstände.

  4. Die Kauf- und Verkaufssignale sind eindeutig, die Handelsfrequenz ist hoch und eignet sich für Short-Line-Handel.

  5. Die ATR-Indikatoren werden verwendet, um Verluste zu verfolgen und zeitnah zu stoppen.

Risikoanalyse

  1. Wenn die Brinline zu eng ist, kann es zu mehr Noise-Transactions kommen.

  2. Die ATR-Parameter sind zu klein eingestellt, was dazu führen kann, dass die Stoppdistanz zu nahe an der Stütze liegt.

  3. Die EMA-Parameter müssen regelmäßig angepasst werden.

  4. In den Zwischenstädten könnte es zu mehr Geschäften kommen.

  5. Die Verfolgung von Stop-Losses kann manchmal zu radikal sein, was zu einer Vergrößerung der Verluste führen kann.

Optimierungsrichtung

  1. Der RSI-Indikator beurteilt Überkauf und Überverkauf, der KDJ-Indikator beurteilt Abweichungen usw.

  2. Es kann in Erwägung gezogen werden, die Brinline-Parameter an die ATR-Dynamik anzupassen, um die Brinline besser auf Preisschwankungen auszurichten.

  3. Die Wirkung verschiedener EMA-Periodenparameter kann getestet werden, um die optimale Kombination zu finden.

  4. Die ATR-Parameter können entsprechend der Schwankungsrate intelligent angepasst werden, um zu radikale Stop Loss zu vermeiden.

  5. Es kann in Erwägung gezogen werden, ein Deep-Learning-Modell einzusetzen, um zu entscheiden, wann man kaufen oder verkaufen soll.

Zusammenfassen

Diese Strategie ist klar, die Gesamtkonzeption nutzt Brinline zu erfassen Preis-Breakthrough, ATR Set-Stop-Range, EMA Beurteilung der Dynamik Richtung, um die Durchbruch-Dynamik zu beurteilen, um die breite Linie Preis-Trend effektiv zu erfassen. Gleichzeitig in Kombination mit mehreren Indikatoren für eine umfassende Beurteilung, kann die Qualität des Signals zu verbessern. Aber es gibt auch einige optimierbare Richtungen, durch Parameter-Anpassung, Indikator-Kombination und andere Methoden kann die Strategie weiter zu verbessern, so dass sie stabiler und elastischer.

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

//@version=4
strategy(title="UT Bot Strategy", overlay = true)
//CREDITS to HPotter for the orginal code. The guy trying to sell this as his own is a scammer lol. 
// Inputs
a = input(1,     title = "Key Vaule. 'This changes the sensitivity'")
c = input(10,    title = "ATR Period")
h = input(false, title = "Signals from Heikin Ashi Candles")

src = h ? security(heikinashi(syminfo.tickerid), timeframe.period, close, lookahead = false) : close

length = input(20, minval=1)
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
bbr = (src - lower)/(upper - lower)
// plot(bbr, "Bollinger Bands %B", color=#26A69A)
// band1 = hline(1, "Overbought", color=#787B86, linestyle=hline.style_dashed)
// hline(0.5, "Middle Band", color=color.new(#787B86, 50))
// band0 = hline(0, "Oversold", color=#787B86, linestyle=hline.style_dashed)
// fill(band1, band0, color=color.rgb(38, 166, 154, 90), title="Background")








xATR  = atr(c)
nLoss = a * xATR




xATRTrailingStop = 0.0
xATRTrailingStop := iff(src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), src - nLoss),
   iff(src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), src + nLoss), 
   iff(src > nz(xATRTrailingStop[1], 0), src - nLoss, src + nLoss)))
 
pos = 0   
pos :=	iff(src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0), 1,
   iff(src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0))) 
   
xcolor = pos == -1 ? color.red: pos == 1 ? color.green : color.blue 

ema   = ema(src,1)
emaFast   = ema(src,144)
emaSlow   = ema(src,576)
sma       =  sma(src, c)

above = crossover(ema, xATRTrailingStop)
below = crossover(xATRTrailingStop, ema)

smaabove = crossover(src, sma)
smabelow = crossover(sma, src)


buy  = src > xATRTrailingStop and above and (bbr>20  or bbr<80)
sell = src < xATRTrailingStop and below  and  (bbr>20  or bbr<80)

// buy  = src > xATRTrailingStop 
// sell = src < xATRTrailingStop 


barbuy  = src > xATRTrailingStop 
barsell = src < xATRTrailingStop 

// plot(emaFast , color = color.rgb(243, 206, 127), title="emaFast")

plot(xATRTrailingStop, color = color.rgb(233, 233, 232), title="xATRTrailingStop")

plotshape(buy,  title = "Buy",  text = 'Buy',  style = shape.labelup,   location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny)
plotshape(sell, title = "Sell", text = 'Sell', style = shape.labeldown, location = location.abovebar, color= color.red,   textcolor = color.white, transp = 0, size = size.tiny)


// plotshape(buy,  title = "Sell",  text = 'Sell',  style = shape.labelup,   location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny)
// plotshape(sell, title = "buy", text = 'buy', style = shape.labeldown, location = location.abovebar, color= color.red,   textcolor = color.white, transp = 0, size = size.tiny)

barcolor(barbuy  ? color.green : na)
barcolor(barsell ? color.red   : na)

// strategy.entry("short",   false, when = buy)
// strategy.entry("long ", true, when = sell)


strategy.entry("long",   true, when = buy)
strategy.entry("short ", false, when = sell)