
La stratégie est un système de trading suivant la dynamique basé sur l’indicateur des bandes de Bollinger. Il identifie les opportunités de cassure potentielles en surveillant la relation entre le prix et la bande de Bollinger supérieure et ferme la position lorsque le prix tombe en dessous de la bande de Bollinger inférieure. Les bandes de Bollinger se composent de trois lignes : la bande médiane (moyenne mobile), la bande supérieure et la bande inférieure (calculée à partir de l’écart type). La stratégie prend en charge plusieurs types de moyennes mobiles et peut ajuster les paramètres en fonction des préférences du trader.
La logique fondamentale de la stratégie repose sur les points suivants :
Il s’agit d’une stratégie de suivi des tendances basée sur les bandes de Bollinger, qui capture les tendances du marché en observant la relation entre le prix et les bandes de Bollinger. La stratégie est raisonnablement conçue et dispose d’une bonne capacité d’ajustement et d’un bon mécanisme de gestion des risques. Grâce aux orientations d’optimisation recommandées, la stabilité et la rentabilité de la stratégie peuvent être encore améliorées. Cette stratégie est particulièrement adaptée aux marchés présentant une volatilité plus élevée, mais les traders doivent ajuster les paramètres et les mesures de contrôle des risques en fonction des conditions réelles.
/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="Demo GPT - Bollinger Bands Strategy", overlay=true, initial_capital=100000, commission_type=strategy.commission.percent, commission_value=0.1, slippage=3)
// Inputs
length = input.int(20, minval=1, title="Length")
maType = input.string("SMA", "Basis MA Type", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
offset = input.int(0, "Offset", minval=-500, maxval=500)
startDate = input(timestamp('01 Jan 2018 00:00 +0000'), title="Start Date")
endDate = input(timestamp('31 Dec 2069 23:59 +0000'), title="End Date")
// Moving Average Function
ma(source, length, _type) =>
switch _type
"SMA" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
// Calculations
basis = ma(src, length, maType)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
// Plotting
plot(basis, "Basis", color=#2962FF, offset=offset)
p1 = plot(upper, "Upper", color=#F23645, offset=offset)
p2 = plot(lower, "Lower", color=#089981, offset=offset)
fill(p1, p2, title="Background", color=color.rgb(33, 150, 243, 95))
// Strategy Logic
inTradeWindow = true
longCondition = close > upper and inTradeWindow
exitCondition = close < lower and inTradeWindow
if (longCondition)
strategy.entry("Long", strategy.long, qty=1)
if (exitCondition)
strategy.close("Long")