
Esta estrategia utiliza el indicador de la banda de Brin y el indicador aleatorio para identificar el exceso de compra y venta en el mercado y encontrar oportunidades de negociación cerca de la banda de Brin. Al mismo tiempo, utiliza el indicador de rango de fluctuación real promedio para rastrear el stop loss.
Esta estrategia utiliza una banda de Brin de longitud 20, con una diferencia estándar de 2, para identificar si el precio está tocando el carril superior o inferior. Tocar el carril inferior indica que puede estar sobrevendido, y tocar el carril superior puede estar sobrecomprado. Además, la estrategia utiliza un indicador aleatorio de sobreventa y sobreventa con un ciclo de línea K de 14, un ciclo de suavizado de D de 3. Cuando el precio de cierre está por debajo de la banda de Brin, y el indicador aleatorio de K es inferior a 20, se dice que está sobrevendido; cuando el precio de cierre está por encima de la banda de Brin y el indicador aleatorio de K es superior a 80, se dice que está sobrecomprado.
Después de la entrada, la estrategia utiliza un indicador de rango de fluctuación real promedio para rastrear los paros. El punto de parada es 1.5 veces el ancho de fluctuación real promedio, y puede establecer un rango de parada en función de la volatilidad del mercado, evitando que el punto de parada esté demasiado cerca o demasiado relajado.
Esta estrategia tiene las siguientes ventajas:
El uso combinado de bandas de Brin y indicadores aleatorios para determinar sobrecompras y sobreventas mejora la precisión de la determinación del momento de la operación
Punto de parada de ajuste dinámico, que permite establecer un punto de parada razonable en función de la volatilidad del mercado
El método de seguimiento de los estancamientos evita que los estancamientos estén demasiado cerca y sean demasiado susceptibles a ser estancados.
Las reglas de la estrategia son claras, sencillas y fáciles de entender y ejecutar.
La estrategia también tiene sus riesgos:
La banda de Brin no está 100% segura de una reversión de los precios, y es posible que haya una ruptura para continuar operando
La configuración incorrecta de los parámetros del indicador aleatorio puede generar una señal errónea
La suspensión del seguimiento puede provocar un alto nivel de pérdidas que exceda el rango de fluctuación razonable del mercado.
addDynamic trailing stop podría ser mejor, ajustando el trailing stop en función de las fluctuaciones del mercado
Esta estrategia también puede ser optimizada en las siguientes direcciones:
Prueba de los efectos de los diferentes parámetros de la banda de Bryn sobre los resultados para encontrar la combinación óptima de parámetros
Prueba de diferentes parámetros de indicadores aleatorios para mejorar la eficacia de los indicadores
Ajuste dinámico de la distancia de parada en función de la cantidad de veces que se activa el stop y la situación de ganancias
En combinación con otros indicadores de filtración de señales de entrada, mejora la tasa de éxito de la operación
Agregando un mecanismo de reingreso con pérdidas para aprovechar las oportunidades de las tendencias del mercado
Esta estrategia se basa en la identificación de sobrecompra y sobreventa en la banda de Brin, con la confirmación auxiliada por el indicador estocástico. Tiene la ventaja de que las reglas de la estrategia son claras y el método de parada de pérdidas es razonablemente flexible.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Bollinger y Estocástico con Trailing Stop", overlay=true)
// Parámetros de entrada
lengthBB = input(20, title="Longitud BB")
stdDevBB = input(2, title="Desviación Estándar BB")
kLength = input(14, title="Longitud K Estocástico")
dLength = input(3, title="Longitud D Estocástico")
smooth = input(3, title="Suavizado Estocástico")
atrLength = input(14, title="Longitud ATR")
trailStopATRMultiple = input(1.5, title="Multiplicador ATR para Trailing Stop")
// Cálculos
[upperBB, basisBB, lowerBB] = ta.bb(close, lengthBB, stdDevBB)
stochK = ta.sma(ta.stoch(close, high, low, kLength), smooth)
atr = ta.atr(atrLength)
// Condiciones de trading
longCondition = close < lowerBB and stochK < 20
shortCondition = close > upperBB and stochK > 80
// Ejecutar operaciones
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Trailing Stop
strategy.exit("Exit Long", from_entry="Long", trail_points=atr * trailStopATRMultiple, trail_offset=atr * trailStopATRMultiple)
strategy.exit("Exit Short", from_entry="Short", trail_points=atr * trailStopATRMultiple, trail_offset=atr * trailStopATRMultiple)