
Esta estrategia diseña una estrategia de trading cuantitativa basada en las bandas de Brin y el indicador relativamente débil ((RSI)). Esta estrategia combina el seguimiento de la tendencia y el juicio de sobreventa y sobreventa, con el objetivo de entrar en el mercado en la etapa de inicio de la tendencia y salir de la situación de sobreventa y sobreventa para obtener ganancias.
La estrategia utiliza el Brin para determinar la tendencia del precio y el soporte de la resistencia. Cuando el precio está cerca de la banda de Brin hacia abajo, se considera una señal de sobreventa; cuando el precio está cerca de la banda de Brin hacia arriba, se considera una señal de sobreventa.
Las reglas de negociación específicas son: hacer una entrada adicional cuando el precio está por debajo de la banda de Brin y el RSI está por debajo de 30; hacer una entrada en blanco cuando el precio está por encima de la banda de Brin y el RSI está por encima de 70.
Esta estrategia combina el seguimiento de tendencias de las bandas de Brin y el juicio de sobrecompra y sobreventa del RSI, lo que permite una mejor comprensión del punto de partida de la tendencia. Al mismo tiempo, las estrategias de stop y stop loss también son más claras, lo que ayuda a la gestión del riesgo.
En comparación con el uso de un solo indicador como el Brin’s Band o el RSI, la estrategia utiliza una combinación de varios indicadores y parámetros para mejorar la precisión de la toma de decisiones. El rendimiento de las operaciones es más estable cuando los parámetros se ajustan adecuadamente.
La estrategia depende principalmente de la optimización de los parámetros, y si los parámetros se establecen incorrectamente, se enfrenta a un mayor riesgo. Por ejemplo, si los parámetros de los períodos de la banda de Bryn no coinciden, se puede perder la tendencia o generar una falsa señal. Además, el punto de parada de la parada también debe evaluarse cuidadosamente.
La estrategia también tiene una cierta dependencia en las variedades de comercio. Para las variedades con mayor volatilidad, se requiere ajustar los parámetros de las bandas de Bryn. Para las variedades con una tendencia no evidente, el efecto también se rebaja. Además, la estrategia también se ve afectada por los costos de comercio, los puntos de deslizamiento y las situaciones extremas.
Se recomienda realizar pruebas de optimización de parámetros, evaluar el nivel de stop loss y probar el rendimiento en diferentes variedades y entornos de mercado. Al mismo tiempo, reservar fondos para la gestión de riesgos.
Se puede seguir optimizando la estrategia en las siguientes direcciones:
Evaluar y optimizar los parámetros de las bandas de Brin y el RSI para que coincidan mejor con las características de las variedades que se negocian
Añadir otros indicadores de juicio, como KDJ, MACD, etc., para formar un modelo multifactorial
Evaluar las estrategias de stop loss y establecer un stop float o un stop batch
Optimización dinámica de los parámetros en función de la variedad y el entorno comercial específicos
Aumentar los modelos de aprendizaje automático para determinar la calidad de la señal y el nivel de riesgo
Esta estrategia integra las bandas de Brin y el indicador RSI, diseñando un conjunto más completo de estrategias de seguimiento de tendencias. Hay espacio para mejorar aún más su eficacia y estabilidad a través de la optimización de parámetros y la gestión de riesgos. Se recomienda ajustar y optimizar según sus propias necesidades y preferencias de riesgo con el fin de obtener un mejor rendimiento.
/*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)