Stratégie de trading Momentum Breakout


Date de création: 2023-11-14 11:19:05 Dernière modification: 2023-11-14 11:19:05
Copier: 3 Nombre de clics: 731
1
Suivre
1617
Abonnés

Stratégie de trading Momentum Breakout

Aperçu

Cette stratégie utilise la ligne de Brin et l’indicateur ATR combinés à la moyenne EMA pour juger, formant une stratégie de négociation de rupture dynamique. Un signal d’achat est généré lorsque le prix monte au-dessus de la ligne de Brin et franchit rapidement la moyenne EMA. Un signal de vente est généré lorsque le prix descend au-dessous de la ligne de Brin et franchit rapidement la moyenne EMA.

Principe de stratégie

  1. Calculer la ligne moyenne, la ligne supérieure et la ligne inférieure de la ligne Brin. La ligne moyenne est la ligne moyenne SMA de n périodes, la ligne supérieure est la ligne moyenne + m*n décalage standard de la période, la trajectoire inférieure est la ligne médiane -m*N cycles sont standardisés.

  2. Calculer l’indicateur ATR pour le suivi des stop-loss

  3. Calculer la moyenne des EMA de 1 cycle et de n cycles pour déterminer la dynamique des prix.

  4. Un signal d’achat est généré lorsque le prix est en train de traverser la courbe de Brin et qu’il est en train de traverser rapidement la courbe moyenne de l’EMA de n cycles.

  5. Un signal de vente est généré lorsque le prix est en dessous de la trajectoire de Brin et en dessous de la moyenne de l’EMA de n cycles.

  6. L’indicateur ATR est utilisé pour définir des points de rupture, suivre la direction des ruptures de prix et éviter les pièges.

Analyse des avantages

  1. La liaison avec l’ATR permet de contrôler efficacement les risques.

  2. L’EMA détermine la direction de la vitesse de l’émission par une courbe rapide et moyenne, afin d’éviter de fausses ruptures.

  3. Les paramètres de la stratégie peuvent être ajustés pour s’adapter à différentes conditions de marché.

  4. Les signaux d’achat et de vente sont clairs et la fréquence des transactions est élevée, ce qui est approprié pour les transactions à court terme.

  5. L’indicateur ATR est utilisé pour suivre les pertes et les arrêter à temps.

Analyse des risques

  1. Si la ligne de bling est trop étroite, il peut y avoir plus de bruit de transaction.

  2. Le paramètre ATR est trop petit, ce qui peut entraîner des pertes trop rapprochées.

  3. Les paramètres EMA nécessitent un ajustement périodique, qui a des effets différents selon les périodes.

  4. Les marchés intermédiaires peuvent générer plus de transactions, mais il faut être prudent.

  5. Le suivi des pertes est parfois trop radical et peut entraîner une augmentation des pertes.

Direction d’optimisation

  1. Il peut être combiné avec d’autres indicateurs pour filtrer les signaux de négociation. Par exemple, le RSI détermine le surachat, le KDJ détermine la déviation, etc.

  2. On peut envisager d’ajuster les paramètres de la ligne de blur en fonction de la dynamique ATR pour la rendre plus adaptée aux fluctuations des prix.

  3. Il est possible de tester l’efficacité de différents paramètres du cycle EMA pour trouver la meilleure combinaison de paramètres.

  4. Il est possible d’ajuster intelligemment les paramètres ATR en fonction de la volatilité pour éviter un stop loss trop radical.

  5. L’utilisation de modèles d’apprentissage en profondeur peut être envisagée pour aider à déterminer le moment d’acheter ou de vendre.

Résumer

Cette stratégie est clairement définie dans son ensemble. Elle utilise les lignes de Brin pour capturer les ruptures de prix, l’ATR pour définir la zone de perte, l’EMA pour juger la direction de la dynamique, le jugement global de la dynamique de rupture, afin de capturer efficacement la tendance des prix de la courte ligne.

Code source de la stratégie
/*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)