Estrategia de negociación de retroceso de bandas de Bollinger Fibonacci

El autor:¿ Qué pasa?, Fecha: 2023-09-27 16:52:05
Las etiquetas:

Resumen general

Esta estrategia identifica los canales de precios utilizando las bandas de Bollinger y determina los niveles de soporte / resistencia basados en los ratios de retroceso de Fibonacci para el comercio algorítmico.

Estrategia lógica

  1. Calcular las bandas medias, superiores e inferiores de las bandas de Bollinger

    • La banda media es SMA, las bandas superior/inferior son SMA +/- múltiplos de ATR

    • Las bandas de Bollinger se expanden y contraen según la volatilidad del mercado

  2. Calcular los niveles de retroceso de Fibonacci basados en las relaciones

    • Los ratios de retroceso son múltiplos de los ratios ATR * Fibonacci

    • Los niveles de fibra múltiple se calculan en función de la banda media

  3. Seguimiento de la ruptura de los precios de las bandas de Bollinger

    • Considere ir largo cuando el precio se rompe por encima de la banda superior

    • Considere ir corto cuando el precio se rompe por debajo de la banda inferior

  4. Entrar en operaciones y establecer SL/TP alrededor de las zonas de retroceso de fibra

    • Entrar en operaciones cuando el precio vuelve a la zona Fib

    • Establezca stop loss y tome ganancias en el otro lado de la zona.

Análisis de ventajas

  • Las bandas de Bollinger identifican claramente el rango y las tendencias de volatilidad del mercado

  • Los índices de Fibonacci captan los niveles clave de soporte y resistencia

  • La combinación de indicadores permite la negociación algorítmica

  • Las entradas de retroceso aumentan la probabilidad de éxito y evitan perseguir

  • Los parámetros ajustables se adaptan a los diferentes períodos y productos

Análisis de riesgos

  • Las rupturas de Bollinger Bands pueden ser señales falsas.

  • Es difícil predecir con precisión cuándo el precio volverá a los niveles de Fib

  • La colocación incorrecta de un stop loss podría aumentar las pérdidas

  • La estrategia se ve afectada por una reducción insuficiente o excesiva

  • Los parámetros ineficaces o las tendencias persistentes de los mercados podrían invalidar la estrategia

  • Mejorar la lógica de las bandas de Bollinger, teniendo en cuenta el volumen, el ajuste de la zona dinámica, etc.

Direcciones de optimización

  • Optimización de los parámetros de las bandas de Bollinger para una mejor tendencia y un mejor juicio de la S/R

  • Añadir indicadores de volumen para validar las señales de ruptura

  • Utilice el aprendizaje automático para la predicción de la probabilidad de retroceso

  • Incorporar más indicadores técnicos para la validación de señales

  • Seleccionar parámetros razonables basados en las características del producto y las sesiones de negociación

  • Ajuste oportuno de la fuerza de la zona de retroceso para adaptarse a la volatilidad cambiante

Conclusión

Esta estrategia combina los puntos fuertes de las bandas de Bollinger y los retracements de Fibonacci para identificar tendencias y entrar en niveles de retroceso de alta probabilidad. Los riesgos pueden reducirse y los resultados mejorarse mediante optimización de parámetros, validación adicional de señales, ajuste de zona dinámica, etc. Hay espacio para la expansión mediante la incorporación de volumen, modelos de aprendizaje automático, etc. La estrategia puede refinarse aún más a través de la optimización continua.


/*backtest
start: 2023-08-27 00:00:00
end: 2023-09-26 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(shorttitle="BBands Fibo", title="Bollinger Bands Fibonacci Ratios", overlay=true)

length      =   input(20, minval=1, type=input.integer, title="Length")
src         =   input(close, title="Source")
offset      =   input(0, "Offset", type = input.integer, minval = -500, maxval = 500)
fibo1       =   input(defval=1.618, title="Fibonacci Ratio 1")
fibo2       =   input(defval=2.618, title="Fibonacci Ratio 2")
fibo3       =   input(defval=4.236, title="Fibonacci Ratio 3")

fiboBuyReverse = input(false, title = "Use Reverse Buy?")
fiboBuy       =   input(options = ["Fibo 1", "Fibo 2", "Fibo 3"],defval = "Fibo 1", title="Fibonacci Buy")
fiboSellReverse = input(false, title = "Use Reverse Sell?")
fiboSell       =   input(options = ["Fibo 1", "Fibo 2", "Fibo 3"],defval = "Fibo 1", title="Fibonacci Sell")

sma = sma(src, length)
atr = atr(length)

ratio1 = atr * fibo1
ratio2 = atr * fibo2
ratio3 = atr * fibo3

upper3 = sma + ratio3
upper2 = sma + ratio2
upper1 = sma + ratio1

lower1 = sma - ratio1
lower2 = sma - ratio2
lower3 = sma - ratio3

plot(sma, style=0, title="Basis", color=color.orange, linewidth=2, offset = offset)

upp3 = plot(upper3, transp=90, title="Upper 3", color=color.teal, offset = offset)
upp2 = plot(upper2, transp=60, title="Upper 2", color=color.teal, offset = offset)
upp1 = plot(upper1, transp=30, title="Upper 1", color=color.teal, offset = offset)

low1 = plot(lower1, transp=30, title="Lower 1", color=color.teal, offset = offset)
low2 = plot(lower2, transp=60, title="Lower 2", color=color.teal, offset = offset)
low3 = plot(lower3, transp=90, title="Lower 3", color=color.teal, offset = offset)

fill(upp3, low3, title = "Background", color=color.new(color.teal, 95))

targetBuy = fiboBuy == "Fibo 1" ? upper1 : fiboBuy == "Fibo 2" ? upper2 : upper3
targetBuy := fiboBuyReverse == false ? targetBuy : fiboBuy == "Fibo 1" ? lower1 : fiboBuy == "Fibo 2" ? lower2 : lower3
buy = low < targetBuy and high > targetBuy

targetSell = fiboSell == "Fibo 1" ? lower1 : fiboSell == "Fibo 2" ? lower2 : lower3
targetSell := fiboSellReverse == false ? targetSell : fiboSell == "Fibo 1" ? upper1 : fiboSell == "Fibo 2" ? upper2 : upper3
sell = low < targetSell and high > targetSell

strategy.entry("Buy", true, when = buy)
strategy.entry("Sell", false, when = sell)


Más.