Stratégie de négociation swing des bandes de Bollinger RSI

Auteur:ChaoZhang est là., Date: 16 septembre 2023 à 18h48
Les étiquettes:

Résumé

La stratégie de swing trading Bollinger Bands RSI combine les indicateurs Bollinger Bands et Relative Strength Index (RSI) pour le trading d'oscillation de gamme à court terme.

Principaux

Tout d'abord, l'indicateur des bandes de Bollinger analyse les fourchettes de fluctuation des prix.

Deuxièmement, l'indicateur RSI détermine la force de surachat/survente.

Lorsque le prix atteint la bande inférieure et que le RSI indique une survente, allez long.

Les avantages

  • Les bandes de Bollinger localisent avec précision les niveaux de fluctuation des prix.

  • Le RSI évite les entrées longues et courtes à l'aveugle.

  • Un taux de réussite élevé en capitalisant sur la réversion moyenne.

  • Le commerce fréquent permet une rentabilité soutenue.

  • Applicable à différents produits et délais.

Les risques

  • Les paramètres BB incorrects ne permettent pas d'identifier les niveaux clés.

  • Les mauvais paramètres génèrent de faux signaux.

  • Un retracement insuffisant déclenche l'arrêt des pertes.

  • Une fréquence de négociation élevée entraîne des coûts de glissement plus élevés.

  • Difficile de suivre les tendances sur les marchés volatils.

Gestion des risques

  • Optimisez les paramètres pour que les BB correspondent à la volatilité réelle.

  • Ajustez la période RSI pour filtrer le bruit.

  • Utilisez les arrêts de trailing pour réduire les gains.

  • Sélectionnez des produits liquides pour minimiser l'impact des glissements.

  • Ajoutez d'autres indicateurs pour déterminer la direction de la tendance.

Résumé

La stratégie de trading swing BB RSI capte efficacement les fluctuations de prix bidirectionnelles dans les fourchettes. Avec un réglage approprié des paramètres et une gestion des risques, elle fournit des profits stables.


/*backtest
start: 2023-08-16 00:00:00
end: 2023-09-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Swing trading strategy FOREX ", shorttitle="BB+RSI", overlay=true)

////////////////////////////////////////////////////////////////////////////////
// BACKTESTING RANGE
 
// From Date Inputs
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2020, title = "From Year", minval = 1970)
 
// To Date Inputs
toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2022, title = "To Year", minval = 1970)
 
// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
// 
// 


///////////// RSI
RSIlength = input(6,title="RSI Period Length") 
RSIoverSold = input(defval = 65, title = "RSIoverSold", minval = 1, maxval = 100)
RSIoverBought = input(defval = 35, title = "RSIoverBought", minval = 1, maxval = 100)
price = close
vrsi = rsi(price, RSIlength)



///////////// Bollinger Bands
BBlength = input(200, minval=1,title="Bollinger Period Length")
BBmult = 2 // input(2.0, minval=0.001, maxval=50,title="Bollinger Bands Standard Deviation")
BBbasis = sma(price, BBlength)
BBdev = BBmult * stdev(price, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev
source = close
buyEntry = crossover(source, BBlower)
sellEntry = crossunder(source, BBupper)
plot(BBbasis, color=color.aqua,title="Bollinger Bands SMA Basis Line")
p1 = plot(BBupper, color=color.silver,title="Bollinger Bands Upper Line")
p2 = plot(BBlower, color=color.silver,title="Bollinger Bands Lower Line")
fill(p1, p2)


///////////// Colors
switch1=input(true, title="Enable Bar Color?")
switch2=input(true, title="Enable Background Color?")
TrendColor = RSIoverBought and (price[1] > BBupper and price < BBupper) and BBbasis < BBbasis[1] ? color.red : RSIoverSold and (price[1] < BBlower and price > BBlower) and BBbasis > BBbasis[1] ? color.green : na
barcolor(switch1?TrendColor:na)
bgcolor(switch2?TrendColor:na,transp=50)


///////////// RSI + Bollinger Bands Strategy
//for buy
cond1=crossover(vrsi, RSIoverSold)
cond2=crossover(source, BBlower) 
//for sell
cond3=crossunder(vrsi, RSIoverBought)
cond4=crossunder(source, BBupper)
if (not na(vrsi))

    if (cond1 and cond2 and time_cond)
        strategy.entry("RSI_BB_LONG", strategy.long, stop=BBlower, comment="LONG",alert_message = "long")
    else
        strategy.cancel(id="RSI_BB_LONG")
        
    if (cond3 and cond4 and time_cond)
        strategy.entry("RSI_BB_SHORT", strategy.short, stop=BBupper,  comment="SHORT",alert_message = "short")
        //strategy.close("RSI_BB_LONG")

    else
        strategy.cancel(id="RSI_BB_SHORT")
        
//strategy.exit("closelong", "RSI_BB_LONG" , profit = close * 0.01 / syminfo.mintick, loss = close * 0.01 / syminfo.mintick, alert_message = "closelong")
//strategy.exit("closeshort", "RSI_BB_SHORT" , profit = close * 0.01 / syminfo.mintick, loss = close * 0.01 / syminfo.mintick, alert_message = "closeshort")


//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Plus de