Il s'agit d'une stratégie de négociation de réversion moyenne basée sur les bandes de Bollinger, qui combine le trading de réversion moyenne et des mécanismes de gestion des risques pour saisir les opportunités de renversement à court terme sur les marchés en tendance.
La stratégie utilise des bandes de Bollinger de 20 jours pour identifier les zones de prix sur-étendues.
Il définit également un stop loss et un take profit basé sur l'ATR. Le stop loss est fixé au prix en brisant la moyenne mobile moins 2 fois l'ATR. Le take profit est fixé au prix plus 3 fois l'ATR. Cela contrôle efficacement le risque par transaction.
Plus précisément, la stratégie comprend:
Les principaux avantages sont les suivants:
Les risques potentiels sont les suivants:
Les solutions:
La stratégie peut être encore optimisée par:
Cela améliorera davantage la stabilité et le profil de rendement.
En résumé, la stratégie de réversion moyenne de la bande de Bollinger avec des filtres de tendance et la gestion des risques a démontré des résultats positifs.
/*backtest start: 2022-12-20 00:00:00 end: 2023-08-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Mean Reversion with Risk Management", overlay=true) // Inputs for Bollinger Bands and Risk Management length = input(20, minval=1, title="Bollinger Bands Length") mult = input(2.0, title="Bollinger Bands Multiplier") stopLossATRMult = input(2.0, title="Stop Loss ATR Multiplier") takeProfitATRMult = input(3.0, title="Take Profit ATR Multiplier") // Bollinger Bands Calculation src = close basis = sma(src, length) dev = mult * stdev(src, length) upper = basis + dev lower = basis - dev plot(upper, "Upper Band", color=color.red) plot(lower, "Lower Band", color=color.green) // ATR for Stop Loss and Take Profit atr = atr(14) // Trading Conditions longCondition = crossover(src, lower) shortCondition = crossunder(src, upper) // Order Execution with Stop Loss and Take Profit if (longCondition) sl = src - stopLossATRMult * atr tp = src + takeProfitATRMult * atr strategy.entry("Long", strategy.long, stop=sl, limit=tp) if (shortCondition) sl = src + stopLossATRMult * atr tp = src - takeProfitATRMult * atr strategy.entry("Short", strategy.short, stop=sl, limit=tp)