Esta estrategia combina el indicador de las bandas de Brin y el indicador de las retracciones de Fibonacci para realizar una combinación de múltiples indicadores. Se trata de un tipo típico de estrategia de indicadores combinados. La estrategia determina la dirección de la tendencia a través de las bandas de Brin y las retracciones de Fibonacci para determinar los niveles de resistencia de soporte clave y, por lo tanto, generar una señal de comercio.
La estrategia se basa principalmente en los siguientes dos indicadores:
Calcular las trayectorias de subida, media y bajada en la banda de Brin. Cuando el precio se rompe en la trayectoria de bajada, se hace una señal de más, y cuando se rompe en la trayectoria de subida, se hace una señal de falta.
Se calculan el 0% y el 100% en base a los máximos y mínimos históricos, dos importantes puntos de retracción de Fibonacci. Estos dos puntos pueden servir como puntos clave de soporte y resistencia.
La lógica de la transacción es la siguiente:
Haga más señales: los precios están en la banda de Brin y están por encima del 0% de soporte de Fibonacci
Señales de vacío: precios por debajo de la banda de Brin y por debajo del 100% de la resistencia de Fibonacci
La posición plana se utiliza como referencia en la vía media, y se detiene o se pierde cerca de la vía media.
Los siguientes pasos pueden ayudar a reducir el riesgo:
La estrategia puede ser optimizada en los siguientes aspectos:
Buscar la proporción de los parámetros óptimos para calcular el ascenso y el descenso
Los diferentes parámetros de ciclo de retracción calculados para la prueba
Por ejemplo, observa la forma de la línea K en la ruptura de la banda de Bryn.
Considere la posibilidad de detener la pérdida con la función de seguimiento
Los parámetros de las diferentes variedades no siempre son los mismos y necesitan ser ajustados.
Esta estrategia utiliza la combinación de los indicadores de retiro de Fibonacci y de Brinz para aprovechar sus ventajas técnicas y mejorar la calidad de las señales comerciales. Sin embargo, también existe la dificultad de optimizar los parámetros, los requisitos de entrada son demasiado estrictos.
/*backtest
start: 2023-09-13 00:00:00
end: 2023-09-20 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Bollinger Bands & Fibonacci Strategy", shorttitle="BB & Fib Strategy", overlay=true)
// Initialize position variables
var bool long_position = false
var bool short_position = false
// Bollinger Bands settings
length = input.int(20, title="Bollinger Bands Length")
src = input(close, title="Source")
mult = input.float(2.0, title="Standard Deviation Multiplier")
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper_band = basis + dev
lower_band = basis - dev
// Fibonacci retracement levels
fib_0 = input.float(0.0, title="Fibonacci 0% Level", minval=-100, maxval=100) / 100
fib_100 = input.float(1.0, title="Fibonacci 100% Level", minval=-100, maxval=100) / 100
// Plotting Bollinger Bands
plot(upper_band, color=color.red, title="Upper Bollinger Band")
plot(lower_band, color=color.green, title="Lower Bollinger Band")
// Calculate Fibonacci levels
fib_range = ta.highest(high, 50) - ta.lowest(low, 50)
fib_high = ta.highest(high, 50) - fib_range * fib_0
fib_low = ta.lowest(low, 50) + fib_range * fib_100
// Plot Fibonacci retracement levels
plot(fib_high, color=color.blue, title="Fibonacci High")
plot(fib_low, color=color.orange, title="Fibonacci Low")
// Entry conditions
long_condition = ta.crossover(close, upper_band) and low > fib_low
short_condition = ta.crossunder(close, lower_band) and high < fib_high
// Plot arrows on the chart
plotshape(series=long_condition, title="Long Entry", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=short_condition, title="Short Entry", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
// Entry and exit logic
if long_condition and not short_position
strategy.entry("Long", strategy.long)
long_position := true
short_position := false
if short_condition and not long_position
strategy.entry("Short", strategy.short)
short_position := true
long_position := false
// Exit conditions (you can customize these)
long_exit_condition = ta.crossunder(close, basis)
short_exit_condition = ta.crossover(close, basis)
if long_exit_condition
strategy.close("Long")
long_position := false
if short_exit_condition
strategy.close("Short")
short_position := false