
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.
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.
Calculer l’indicateur ATR pour le suivi des stop-loss
Calculer la moyenne des EMA de 1 cycle et de n cycles pour déterminer la dynamique des prix.
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.
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.
L’indicateur ATR est utilisé pour définir des points de rupture, suivre la direction des ruptures de prix et éviter les pièges.
La liaison avec l’ATR permet de contrôler efficacement les risques.
L’EMA détermine la direction de la vitesse de l’émission par une courbe rapide et moyenne, afin d’éviter de fausses ruptures.
Les paramètres de la stratégie peuvent être ajustés pour s’adapter à différentes conditions de marché.
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.
L’indicateur ATR est utilisé pour suivre les pertes et les arrêter à temps.
Si la ligne de bling est trop étroite, il peut y avoir plus de bruit de transaction.
Le paramètre ATR est trop petit, ce qui peut entraîner des pertes trop rapprochées.
Les paramètres EMA nécessitent un ajustement périodique, qui a des effets différents selon les périodes.
Les marchés intermédiaires peuvent générer plus de transactions, mais il faut être prudent.
Le suivi des pertes est parfois trop radical et peut entraîner une augmentation des pertes.
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.
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.
Il est possible de tester l’efficacité de différents paramètres du cycle EMA pour trouver la meilleure combinaison de paramètres.
Il est possible d’ajuster intelligemment les paramètres ATR en fonction de la volatilité pour éviter un stop loss trop radical.
L’utilisation de modèles d’apprentissage en profondeur peut être envisagée pour aider à déterminer le moment d’acheter ou de vendre.
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.
/*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)