Estrategia del oscilador estocástico de bandas de Bollinger

SMA
Fecha de creación: 2024-05-09 15:59:11 Última modificación: 2024-05-09 15:59:11
Copiar: 0 Número de Visitas: 836
1
Seguir
1617
Seguidores

Estrategia del oscilador estocástico de bandas de Bollinger

Descripción general

La estrategia es una estrategia de negociación basada en la banda de Brin y el oscilador aleatorio. Utiliza el Brin para determinar el rango de fluctuación del mercado y usa el oscilador aleatorio para juzgar el estado de sobrecompra y sobreventa del mercado.

Principio de estrategia

El núcleo de la estrategia son los dos indicadores técnicos de la banda de Brin y el oscilador aleatorio. La banda de Brin se compone de tres líneas: la media, la media y la media. La media es una media móvil simple de los precios, la media y la media son un múltiplo de la diferencia estándar de precios de la media, más y menos la media.

El oscilador aleatorio está formado por dos líneas: la línea %K y la línea %D. La línea %K mide la posición del precio de cierre entre el precio más alto y el precio más bajo en el período más reciente. La línea %D es la media móvil de la línea %K.

La estrategia combina estos dos indicadores, con una estrategia de reajuste cuando el precio rompe la banda de Brin y cruza la línea de %D con el oscilador %K al azar; y una estrategia de reajuste cuando el precio rompe la banda de Brin y cruza la línea de %D con el oscilador %K al azar. Esta combinación puede capturar de manera efectiva las tendencias del mercado y, al mismo tiempo, evitar el comercio frecuente en mercados con fluctuaciones.

Ventajas estratégicas

  1. La combinación de indicadores de tendencia y de estado de mercado oscilante permite obtener ganancias estables en diferentes entornos de mercado.
  2. La capacidad de Brinbelt para adaptarse de forma dinámica a los cambios en la volatilidad del mercado ha mejorado la adaptabilidad de la estrategia.
  3. Los oscilladores aleatorios pueden filtrar eficazmente algunas de las falsas señales de ruptura, mejorando la precisión de la estrategia.
  4. La lógica de la estrategia es clara, fácil de entender e implementar, y es adecuada para diferentes niveles de comerciantes.

Riesgo estratégico

  1. En el caso de que la tendencia del mercado sea incierta o con mucha volatilidad, la estrategia puede generar más señales falsas, lo que lleva a operaciones frecuentes y pérdidas.
  2. La estrategia se basa en datos históricos, y es posible que se produzca un retiro mayor en caso de eventos inesperados o anomalías en el mercado.
  3. La elección de los parámetros de la estrategia tiene un gran impacto en la performance de la estrategia, y diferentes parámetros pueden dar lugar a resultados completamente diferentes.

Dirección de optimización de la estrategia

  1. Se puede considerar la inclusión de más condiciones de filtrado, como volumen de transacciones, otros indicadores técnicos, etc., para mejorar aún más la fiabilidad de la señal.
  2. Se pueden optimizar los parámetros de las bandas de Bryn y los osciladores aleatorios para encontrar la combinación de parámetros más adecuada para el mercado actual.
  3. Se pueden introducir mecanismos de gestión de riesgos, como stop loss y stop loss móvil, para controlar el riesgo de una sola transacción.
  4. Se puede considerar la combinación de esta estrategia con otras estrategias para formar una combinación de estrategias más sólida.

Resumir

La estrategia es una estrategia de negociación simple y eficaz que, mediante la combinación de los dos indicadores técnicos clásicos de las bandas de Brin y los oscilantes aleatorios, puede obtener ganancias estables en ambos estados de mercado de tendencia y oscilación. Aunque la estrategia también tiene algunos riesgos y limitaciones, con la optimización y mejora adecuadas, se puede mejorar aún más el rendimiento y la adaptabilidad de la estrategia, convirtiéndose en una estrategia de negociación digna de referencia y aprendizaje.

Código Fuente de la Estrategia
/*backtest
start: 2023-05-03 00:00:00
end: 2024-05-08 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Unique Bollinger Bands Strategy", overlay=true)
src = input(close)
length = input.int(34, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50)

basis = ta.sma(src, length)
dev = ta.stdev(src, length)
dev2 = mult * dev

upper1 = basis + dev
lower1 = basis - dev
upper2 = basis + dev2
lower2 = basis - dev2

colorBasis = src >= basis ? color.blue : color.orange

pBasis = plot(basis, linewidth=2, color=colorBasis)
pUpper1 = plot(upper1, color=color.new(color.blue, 0), style=plot.style_circles)
pUpper2 = plot(upper2, color=color.new(color.blue, 0))
pLower1 = plot(lower1, color=color.new(color.orange, 0), style=plot.style_circles)
pLower2 = plot(lower2, color=color.new(color.orange, 0))

fill(pBasis, pUpper2, color=color.new(color.blue, 80))
fill(pUpper1, pUpper2, color=color.new(color.blue, 80))
fill(pBasis, pLower2, color=color.new(color.orange, 80))
fill(pLower1, pLower2, color=color.new(color.orange, 80))




// Parameters
bbLength = input.int(34, title="Length", minval=1)
bbMultiplier = input.float(2.0, title="Multiplier", minval=0.001, maxval=50)

// Source
priceData = close // Unique name for price data source

// Bollinger Bands Calculation
bbBasis = ta.sma(priceData, bbLength)
bbDeviation = ta.stdev(priceData, bbLength)
bbDeviationMultiplied = bbMultiplier * bbDeviation

bbUpperBand = bbBasis + bbDeviationMultiplied
bbLowerBand = bbBasis - bbDeviationMultiplied

// Plot Bollinger Bands
plot(bbBasis, color=color.blue, linewidth=2)
plot(bbUpperBand, color=color.blue)
plot(bbLowerBand, color=color.orange)

// Strategy Logic for Entry and Exit
enterLong = ta.crossover(priceData, bbUpperBand)
enterShort = ta.crossunder(priceData, bbLowerBand)

// Enter Long when price crosses over upper band
if (enterLong)
    strategy.entry("Long", strategy.long)
// Enter Short when price crosses under lower band
if (enterShort)
    strategy.entry("Short", strategy.short)

// Close Long when Short condition is met (i.e., price under lower band)
if (enterShort)
    strategy.close("Long")
// Close Short when Long condition is met (i.e., price over upper band)
if (enterLong)
    strategy.close("Short")