
Cette stratégie est basée sur les bandes de Brin et un indicateur relativement faible (RSI) pour concevoir une stratégie de trading quantitatif. Cette stratégie combine le suivi de la tendance et la prise de décision sur les surventes et les surachats, dans le but d’entrer dans le marché au début de la tendance et de s’en sortir en cas de survente et de survente, afin de réaliser un profit.
La stratégie utilise le Brin pour déterminer la tendance des prix et le niveau de résistance au support. Il est considéré comme un signal de survente lorsque le prix est proche de la descente de Brin; il est considéré comme un signal de survente lorsque le prix est proche de la montée de Brin.
Les règles de négociation spécifiques sont les suivantes: faire une entrée plus élevée lorsque le prix est inférieur à la ligne de descente de la ceinture de Brin et que le RSI est inférieur à 30; faire une entrée vide lorsque le prix est supérieur à la ligne de descente de la ceinture de Brin et que le RSI est supérieur à 70.
Cette stratégie, combinée au suivi de la tendance de la courbe de Brin et au jugement de sur-achat et de sur-vente du RSI, permet de mieux saisir le point de départ de la tendance. En outre, les stratégies de stop-loss et de stop-loss sont plus claires et favorisent la gestion des risques.
La stratégie utilise une large gamme d’indicateurs et de paramètres pour améliorer la précision de la prise de décision, par rapport à l’utilisation unique d’indicateurs tels que les bandes de Brin ou le RSI. La performance des transactions est plus stable lorsque les paramètres sont ajustés de manière appropriée.
La stratégie repose principalement sur l’optimisation des paramètres, et si les paramètres sont mal définis, il y a un risque plus grand. Par exemple, un paramètre de la période de la ceinture de Boolean qui ne correspond pas peut manquer une tendance ou générer de faux signaux. De plus, le point d’arrêt de la perte d’arrêt doit être soigneusement évalué.
Cette stratégie a également une certaine dépendance vis-à-vis des variétés négociées. Pour les variétés plus volatiles, il est nécessaire d’ajuster les paramètres des bandes de Bryn. Pour les variétés dont la tendance n’est pas évidente, l’effet est également réduit.
Il est recommandé d’effectuer des tests d’optimisation des paramètres, d’évaluer le niveau de stop loss et de tester la performance dans différentes variétés et environnements de marché.
La stratégie peut être optimisée de la manière suivante:
Évaluer et optimiser les paramètres des bandes de Brin et du RSI pour qu’ils correspondent mieux aux caractéristiques des variétés échangées
Ajout d’autres indicateurs de jugement, tels que KDJ, MACD, etc., pour former un modèle multifactoriel
Évaluer les stratégies de stop-loss, définir des stop-loss flottants ou des stop-loss par lots
Optimisation dynamique des paramètres en fonction de la variété et de l’environnement
Ajout de modèles d’apprentissage automatique pour évaluer la qualité du signal et le niveau de risque
Cette stratégie intègre les bandes de Brin et les indices RSI pour concevoir un ensemble plus complet de stratégies de suivi des tendances. L’efficacité et la stabilité peuvent être encore améliorées grâce à l’optimisation des paramètres et à la gestion des risques.
/*backtest
start: 2023-11-01 00:00:00
end: 2023-11-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("BB + RSI Estrategia", overlay=true)
longitud = input(20, title="Longitud BB", minval=5, maxval=50, step=1)
multiplicador = input(2.0, title="Multiplicador BB", type=input.float, step=0.1)
timeframe_bb = input("D", title="Marco de Tiempo BB", type=input.resolution)
rsi_length = input(14, title="Longitud RSI", minval=5, maxval=50, step=1)
rsi_overbought = input(70, title="Nivel de sobrecompra RSI", minval=50, maxval=80, step=1)
rsi_oversold = input(30, title="Nivel de sobreventa RSI", minval=20, maxval=50, step=1)
take_profit = input("Central", title="Take Profit (banda)", options=["Central", "Opuesta"])
stop_loss = input(2.00, title="Stop Loss", type=input.float, step=0.10)
var SL = 0.0
[banda_central, banda_superior, banda_inferior] = security(syminfo.tickerid, timeframe_bb, bb(close, longitud, multiplicador))
rsi_value = rsi(close, rsi_length)
comprado = strategy.position_size > 0
vendido = strategy.position_size < 0
if not comprado and not vendido
if close < banda_inferior and rsi_value < rsi_oversold
// Realizar la compra
cantidad = round(strategy.equity / close)
strategy.entry("Compra", strategy.long, qty=cantidad, when=cantidad > 0)
SL := close * (1 - (stop_loss / 100))
if close > banda_superior and rsi_value > rsi_overbought
// Realizar la Venta
cantidad = round(strategy.equity / close)
strategy.entry("Venta", strategy.short, qty=cantidad, when=cantidad > 0)
SL := close * (1 + (stop_loss / 100))
if comprado
// Verificar el take profit
if take_profit == "Central" and close >= banda_central
strategy.close("Compra", comment="TP")
SL := 0
if take_profit == "Opuesta" and close >= banda_superior
strategy.close("Compra", comment="TP")
SL := 0
// Verificar el stop loss
if close <= SL
strategy.close("Compra", comment="SL")
SL := 0
if vendido
// Verificar el take profit
if take_profit == "Central" and close <= banda_central
strategy.close("Venta", comment="TP")
SL := 0
if take_profit == "Opuesta" and close <= banda_inferior
strategy.close("Venta", comment="TP")
SL := 0
// Verificar el Stop loss
if close >= SL
strategy.close("Venta", comment="SL")
SL := 0
// Salida
plot(SL > 0 ? SL : na, style=plot.style_circles, color=color.red)
g1 = plot(banda_superior, color=color.aqua)
plot(banda_central, color=color.red)
g2 = plot(banda_inferior, color=color.aqua)
fill(g1, g2, color=color.aqua, transp=97)
// Dibujar niveles de sobrecompra/sobreventa del RSI
hline(rsi_overbought, "RSI Overbought", color=color.red)
hline(rsi_oversold, "RSI Oversold", color=color.green)