
Cette stratégie est un système de trading d’inversion de tendance adaptatif basé sur l’indicateur des bandes de Bollinger. Il capture les opportunités de surachat et de survente sur le marché en surveillant le croisement des prix et des bandes de Bollinger, et effectue des transactions basées sur le principe de retour à la moyenne. La stratégie adopte des mécanismes dynamiques de gestion des positions et de contrôle des risques et est applicable à plusieurs marchés et périodes.
La logique fondamentale de la stratégie repose sur les points suivants :
Risque de marché volatil – Des transactions fréquentes sur un marché latéral peuvent entraîner des pertes. Solution : ajoutez un filtre de tendance et n’effectuez des transactions que lorsque la tendance est claire.
Risque de fausse cassure : les prix peuvent s’inverser rapidement après une cassure. Solution : ajoutez des signaux de confirmation, tels que le volume ou d’autres indicateurs techniques.
Risque systématique : potentiel de pertes importantes dans des conditions de marché extrêmes. Solution : définissez une limite de retrait maximale et arrêtez automatiquement le trading lorsque le seuil est atteint.
Cette stratégie utilise l’indicateur de bande de Bollinger pour capturer les écarts de prix et le combine avec le principe de retour à la moyenne pour le trading. Le mécanisme de contrôle des risques parfait et les règles de trading claires le rendent très pratique. La stabilité et la rentabilité de la stratégie peuvent être encore améliorées grâce aux orientations d’optimisation recommandées. La stratégie convient aux traders quantitatifs qui recherchent des rendements stables.
/*backtest
start: 2025-01-09 00:00:00
end: 2025-01-16 00:00:00
period: 10m
basePeriod: 10m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/
//@version=5
strategy("Bollinger Bands Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=200)
// Inputs for Bollinger Bands
bbLength = input.int(20, title="Bollinger Bands Length")
bbStdDev = input.float(2.0, title="Bollinger Bands StdDev")
// Inputs for Risk Management
stopLossPerc = input.float(1.0, title="Stop Loss (%)", minval=0.1, step=0.1)
takeProfitPerc = input.float(2.0, title="Take Profit (%)", minval=0.1, step=0.1)
// Calculate Bollinger Bands
basis = ta.sma(close, bbLength)
bbStdev = ta.stdev(close, bbLength)
upper = basis + bbStdDev * bbStdev
lower = basis - bbStdDev * bbStdev
// Plot Bollinger Bands
plot(basis, color=color.blue, title="Middle Band")
plot(upper, color=color.red, title="Upper Band")
plot(lower, color=color.green, title="Lower Band")
// Entry Conditions
longCondition = ta.crossover(close, lower)
shortCondition = ta.crossunder(close, upper)
// Exit Conditions
exitLongCondition = ta.crossunder(close, basis)
exitShortCondition = ta.crossover(close, basis)
// Stop Loss and Take Profit Levels
longStopLoss = close * (1 - stopLossPerc / 100)
longTakeProfit = close * (1 + takeProfitPerc / 100)
shortStopLoss = close * (1 + stopLossPerc / 100)
shortTakeProfit = close * (1 - takeProfitPerc / 100)
// Execute Long Trades
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit("Exit Long", from_entry="Long", stop=longStopLoss, limit=longTakeProfit)
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", from_entry="Short", stop=shortStopLoss, limit=shortTakeProfit)
// Close Positions on Exit Conditions
if (exitLongCondition and strategy.position_size > 0)
strategy.close("Long")
if (exitShortCondition and strategy.position_size < 0)
strategy.close("Short")
// 🔊 SOUND ALERTS IN BROWSER 🔊
if (longCondition)
alert("🔔 Long Entry Signal!", alert.freq_once_per_bar_close)
if (shortCondition)
alert("🔔 Short Entry Signal!", alert.freq_once_per_bar_close)
if (exitLongCondition)
alert("🔔 Closing Long Trade!", alert.freq_once_per_bar_close)
if (exitShortCondition)
alert("🔔 Closing Short Trade!", alert.freq_once_per_bar_close)