
Il s’agit d’une stratégie de négociation basée sur les indicateurs de la ceinture de Brin, qui identifie les tendances du marché et génère des signaux de négociation par la relation croisée du prix avec la ceinture de Brin. La stratégie utilise une moyenne mobile de 55 cycles comme moyen de la ceinture de Brin et est calculée en fonction d’un écart-type de 1,0 fois le haut et le bas de la ceinture de Brin.
Le principe de fonctionnement de la stratégie comprend principalement les éléments clés suivants:
Il s’agit d’une stratégie de suivi de tendance classique basée sur les courbes de Brin, qui capture les tendances du marché par la relation croisée des prix avec les courbes de Brin. La stratégie est conçue de manière concise et claire, avec de bons effets visuels et un mécanisme de génération de signaux. Bien que cela puisse être difficile dans les marchés en turbulence, la stabilité et la fiabilité de la stratégie peuvent être encore améliorées en optimisant les paramètres appropriés et en ajoutant des indicateurs auxiliaires.
/*backtest
start: 2024-02-19 00:00:00
end: 2025-02-16 08:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Bollinger Bands Filter [Strategy]", overlay=true)
// -- INPUTS (kratke tooltipy, ziadne prelomenie riadku)
src = input.source(close, title="Source", tooltip="Source for BB calc")
length = input.int(55, minval=1, title="SMA length", tooltip="Period for BB basis")
mult = input.float(1.0, minval=0.1, maxval=5, title="Std Dev", tooltip="Std Dev multiplier")
CC = input.bool(true, "Color Bars", tooltip="If true, color bars by BB logic")
// -- Bollinger calc
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
// -- Long/Short logic
longCondition = close > upper
shortCondition = close < lower
L1 = ta.barssince(longCondition)
S1 = ta.barssince(shortCondition)
longSignal = L1 < S1 and not (L1 < S1)[1]
shortSignal = S1 < L1 and not (S1 < L1)[1]
// -- Plot signals
plotshape(shortSignal ? close : na, color=color.red, style=shape.triangledown, size=size.small, location=location.abovebar, title="Short Signal")
plotshape(longSignal ? close : na, color=color.green, style=shape.triangleup, size=size.small, location=location.belowbar, title="Long Signal")
// -- Plot BB lines
plot(upper, color=color.new(color.red, 40), title="Upper BB")
plot(lower, color=color.new(color.green,40), title="Lower BB")
plot(basis, color=color.new(color.blue, 10), title="Basis")
// -- Fill
fill(plot(na), plot(na)) // 'dummy' fill reset
fill(plot(upper, display=display.none), plot(basis, display=display.none), color=color.new(color.teal, 80))
fill(plot(lower, display=display.none), plot(basis, display=display.none), color=color.new(color.orange, 80))
// -- barcolor
bcol = close > upper ? color.lime : close < lower ? color.red : na
barcolor(CC ? bcol : na)
// -- Alerts
alertcondition(longSignal, title="Long - BB", message="BB Filter Long")
alertcondition(shortSignal, title="Short - BB", message="BB Filter Short")
// -- Strategy entries
if longSignal
strategy.entry("Long", strategy.long)
if shortSignal
strategy.entry("Short", strategy.short)