RSI double combiné avec bande de Bollinger pour suivre la tendance

Auteur:ChaoZhang est là., Date: 2023-09-19 22:10:02 Je vous en prie.
Les étiquettes:

Résumé

Cette stratégie utilise des indicateurs RSI doubles pour identifier les conditions de surachat et de survente, combinés à des ruptures de la bande de Bollinger pour générer des signaux de trading.

Analyse des principes

La stratégie utilise deux RSI avec des délais différents pour juger de l'état de surachat/survente à court et à long terme. Les signaux de trading ne sont générés que lorsque les deux RSI atteignent les valeurs seuil simultanément. Cela évite les faux signaux d'un seul RSI.

Les bandes de Bollinger sont également utilisées pour identifier les ruptures de prix.

Enfin, les MAs rapides et lents sont vérifiés pour la direction de la tendance.

Analyse des avantages

L'utilisation combinée de multiples indicateurs aide à filtrer les faux signaux, en ne négociant que des tendances évidentes.

Analyse des risques

Le principal risque réside dans le fait de ne pas identifier rapidement les renversements de tendance. Des renversements brusques en forme de V peuvent entraîner des pertes significatives sans stop loss en temps opportun.

Suggestions d'optimisation

  1. Ajoutez des stratégies de stop-loss pour sortir rapidement en cas de renversement.

  2. Incorporer d'autres filtres comme le volume pour éviter les fausses fuites.

  3. Optimisez les paramètres pour trouver la meilleure combinaison.

  4. Ajouter des modèles d'apprentissage automatique pour mieux identifier les régimes de marché.

  5. Améliorer la gestion des risques, y compris la taille des positions, le contrôle des pertes.

Conclusion

Cette stratégie combine le double RSI et les bandes de Bollinger pour tirer profit des tendances à court terme. Bien que simple et simple, des limitations existent comme les signaux d'inversion retardés. L'ajout de stop loss, de filtrage des signaux, d'optimisation des paramètres peut encore améliorer sa robustesse et sa rentabilité.


/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-12 04:00:00
period: 2m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2

strategy(title = "Madrugada strat copy", overlay = true, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, currency = currency.USD)
 
// === GENERAL INPUTS ===
// RSI 1
RSIlength = input(10,title="RSI") 
RSIoverSold = input(65,title="OSold")
RSIoverBought = input(35,title="OBought")
price = close
vrsi = rsi(price, RSIlength)
// RSI 2
RSIlength2 = input(6,title="RSI2") 
RSIoverSold2 = input(65,title="OSold2")
RSIoverBought2 = input(35,title="OBought2")
price2 = close
vrsi2 = rsi(price2, RSIlength2)

//Bollinger Bands
source = close
Bollinger = input(20, minval=1), Desv = input(1.7, minval=0.001, maxval=50)
basis = sma(source, Bollinger)
dev = Desv * stdev(source, Bollinger)
upper = basis + dev
lower = basis - dev
plot(basis, color=red, title="BB ma")
p1 = plot(upper, color=blue, title="BBajo")
p2 = plot(lower, color=blue, title="BAlto")
fill(p1, p2)

//Media movil
short = input(3, minval=1, title="Media corta")
long = input(10, minval=1, title="Media larga")
src = close
plot(sma(src, short), color=#00FF00, transp=0, linewidth=1, title="Media rapida")
plot(sma(src, long), color=white, transp=0, linewidth=2, title="Media lenta")


// === STRATEGY - LONG POSITION EXECUTION ===
enterLong() => vrsi < 30 and  vrsi2 < 27 and cross(lower, price)
exitLong() => short < long
strategy.entry(id = "Long", long = true, when = enterLong()) // use function or simple condition to decide when to get in
// === STRATEGY - SHORT POSITION EXECUTION ===
enterShort() => vrsi > 70 and vrsi2 > 70 and cross(upper, price)
strategy.entry(id = "Short", long = false, when = enterShort())


// Definición señales de compra
buy_signals = vrsi < 30 and  vrsi2 < 27 and cross(lower, price)

// Definición señales de venta
sell_signals = vrsi > 70 and vrsi2 > 70 and cross(upper, price)

// Dibuja las señales de compra venta en franjas de color
b_color = (sell_signals) ? color(red,65) : (buy_signals) ? color(green,65) : na
bgcolor(b_color)

// Dibuja las señales de compra venta coloreando las velas
barcolor(buy_signals ? white : sell_signals ? white : na)

plot(vrsi, color=white, linewidth=1)
plot(vrsi, color=white, linewidth=2)

// Crea alarmas usables desde el desplegable para poder enviar mails a haas
alertcondition(buy_signals, title='Buy-Signal', message='compra')
alertcondition(sell_signals, title='Sell-Signal', message='vende')


Plus de