
Cette stratégie est une stratégie de swing trading qui combine l’indicateur RSI et le canal des bandes de Bollinger. Il prend des décisions de trading en identifiant les états de surachat et de survente du marché et en les combinant avec la position de prix dans les bandes de Bollinger. La stratégie adopte un paramètre de seuil RSI relativement lâche (60 pour le surachat et 40 pour la survente) et combine les pistes supérieure et inférieure des bandes de Bollinger pour déterminer le moment d’entrée et de sortie, tout en mettant en place un mécanisme de sortie de profit de 2 %.
La logique fondamentale de la stratégie repose sur les éléments clés suivants :
Conditions d’achat :
Conditions de vente :
Risque de marché volatil : des transactions fréquentes peuvent se produire dans un marché latéral et volatil. Solution : vous pouvez ajouter un filtre de moyenne mobile ou ajouter un mécanisme de confirmation de tendance.
Risque de fausse cassure : une brève cassure des bandes de Bollinger par le prix pourrait déclencher un faux signal. Solution : vous pouvez ajouter une période de confirmation ou augmenter l’exigence d’amplitude de percée.
Dépendance à l’environnement de marché : la performance de la stratégie peut varier selon les cycles de marché. Solution : Ajuster dynamiquement les paramètres en fonction des différentes caractéristiques du marché.
Cette stratégie construit un système de swing trading relativement robuste grâce à la synergie du RSI et des bandes de Bollinger. La principale caractéristique de la stratégie est de contrôler les risques grâce à un mécanisme de confirmation multiple tout en maintenant les opportunités de trading. Bien qu’il existe certains risques potentiels, la stabilité et la fiabilité de la stratégie peuvent être encore améliorées en optimisant les paramètres et en ajoutant des conditions de filtrage. La stratégie est adaptée à une utilisation sur des marchés présentant une volatilité plus élevée, mais des ajustements de paramètres correspondants doivent être effectués en fonction des caractéristiques spécifiques du marché.
/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-04 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Demo GPT - Adjusted Swing Trading for SBI", overlay=true, commission_type=strategy.commission.percent, commission_value=0.1, slippage=3)
// Input Parameters
rsiLength = input.int(14, minval=1, title="RSI Length")
rsiOverbought = input.int(60, minval=50, maxval=100, title="RSI Overbought Level") // Relaxed level
rsiOversold = input.int(40, minval=0, maxval=50, title="RSI Oversold Level") // Relaxed level
bbLength = input.int(20, minval=1, title="Bollinger Bands Length")
bbMult = input.float(2.0, minval=0.1, maxval=5, title="Bollinger Bands StdDev Multiplier")
maLength = input.int(50, minval=1, title="Moving Average Length")
// RSI Calculation
rsi = ta.rsi(close, rsiLength)
// Bollinger Bands Calculation
bbBasis = ta.sma(close, bbLength)
bbDev = bbMult * ta.stdev(close, bbLength)
bbUpper = bbBasis + bbDev
bbLower = bbBasis - bbDev
// Moving Average
ma = ta.sma(close, maLength)
// Buy Signal: Price near or below lower Bollinger Band AND RSI below oversold level
buySignal = (close <= bbLower * 1.01) and (rsi < rsiOversold)
// Sell Signal: Price near or above upper Bollinger Band OR RSI above overbought level
sellSignal = (close >= bbUpper * 0.99) or (rsi > rsiOverbought)
// Date Range Inputs
startDate = input(timestamp("2018-01-01 00:00"), title="Start Date")
endDate = input(timestamp("2069-12-31 23:59"), title="End Date")
inDateRange = true
// Strategy Logic
if buySignal and inDateRange
strategy.entry("Swing Long SBI", strategy.long)
if strategy.position_size > 0 and (sellSignal or close >= strategy.position_avg_price * 1.02)
strategy.close("Swing Long SBI")
// Plotting
plot(bbBasis, title="Bollinger Bands Basis", color=color.blue)
plot(bbUpper, title="Bollinger Bands Upper", color=color.red)
plot(bbLower, title="Bollinger Bands Lower", color=color.green)
plot(ma, title="Moving Average", color=color.orange)
hline(rsiOverbought, "RSI Overbought", color=color.red, linestyle=hline.style_dotted)
hline(rsiOversold, "RSI Oversold", color=color.green, linestyle=hline.style_dotted)
plot(rsi, title="RSI", color=color.purple)
// Fill Bollinger Bands for Visualization
fill(plot(bbUpper), plot(bbLower), title="Bollinger Bands Background", color=color.rgb(33, 150, 243, 95))