
La estrategia se basa en retracciones de Fibonacci y en promedios móviles para capturar oportunidades de retracción en las tendencias del mercado. Determina el nivel de retracción de Fibonacci calculando los máximos y mínimos de los diferentes períodos y utiliza las medias móviles para confirmar la dirección de la tendencia. La estrategia solo considera entrar en posiciones de más de un extremo cuando el precio está por encima de las medias móviles de largo y mediano plazo y opera cuando el precio retrocede a los niveles clave de Fibonacci.
El principio central de la estrategia es utilizar los niveles de retracción de Fibonacci y las medias móviles para identificar posibles puntos de entrada. Primero, se calcula el promedio móvil simple (SMA) a largo plazo (de 200 ciclos) y medio plazo (de 50 ciclos) para determinar la dirección de la tendencia general. Luego, se calculan los precios máximos y mínimos de los ciclos 21, 50 y 9, y se calcula el nivel de retracción de Fibonacci correspondiente a estos precios. El nivel de retracción del 50% se determina calculando el promedio de los puntos medios de retracción de estos tres ciclos.
La estrategia solo entra en una posición de multiples cuando se cumplen las siguientes condiciones: el precio es superior a la media móvil de 200 y 50 ciclos, y el precio es menor que el nivel de retracción equivalente al 50%. Una vez en la entrada, la posición de parada se define como el precio promedio de apertura de la posición más la diferencia entre el precio promedio de apertura de la posición y el nivel de retracción del 78.6% multiplicado por el riesgo de retorno. La posición de parada se define como el nivel de retracción del 78.6% .
Confirmación de tendencias: la estrategia utiliza promedios móviles a largo y mediano plazo para confirmar la dirección de la tendencia general, lo que ayuda a evitar la negociación en mercados adversos.
Niveles de retroceso dinámicos: mediante el cálculo de los máximos y mínimos de los diferentes períodos (periodos 21, 50 y 9) la estrategia permite ajustar dinámicamente los niveles de retroceso de Fibonacci clave para adaptarse a las diferentes condiciones del mercado.
Gestión de riesgos: La estrategia utiliza un riesgo-beneficio predefinido para determinar los niveles de stop y stop loss, lo que ayuda a administrar el riesgo de las operaciones y optimizar los beneficios potenciales.
Ayuda visual: la estrategia traza las medias móviles y los niveles clave de retroceso de Fibonacci en un gráfico, proporcionando a los operadores una referencia visual clara que les ayuda a tomar decisiones comerciales inteligentes.
La entrada tardía: En condiciones de mercado rápidamente cambiantes, esperar a que el precio retroceda a los niveles críticos de Fibonacci puede hacer que se pierda la mejor oportunidad de entrada.
Falsa señal: En algunos casos, los precios pueden romper brevemente los niveles críticos de Fibonacci, pero se recuperan rápidamente, lo que lleva a una falsa señal de negociación.
Reversión de tendencia: la estrategia funciona mejor en un mercado de tendencia. Si la tendencia se revierten, la estrategia puede sufrir pérdidas.
Sensibilidad a los parámetros: el rendimiento de la estrategia depende en gran medida de los parámetros seleccionados, como la longitud de las medias móviles y el ciclo de regresión de Fibonacci. La elección inadecuada de los parámetros puede causar resultados subótimos.
Optimización de parámetros dinámicos: Implementa un mecanismo de adaptación para ajustar dinámicamente los parámetros de la estrategia, como la longitud de las medias móviles y los ciclos de retracción de Fibonacci, para adaptarse a las condiciones cambiantes del mercado.
Análisis de múltiples marcos de tiempo: combina el análisis de varios marcos de tiempo para obtener una visión más completa del mercado y confirmar las señales de negociación.
Mejoramiento de la gestión de riesgos: introducción de técnicas de gestión de riesgos más avanzadas, como el ajuste de posiciones basado en la volatilidad o el seguimiento de las pérdidas, para proteger mejor el capital y administrar el riesgo de las transacciones.
Combinación de indicadores: combinación de otros indicadores técnicos (como el índice de fuerza relativa o el oscilador aleatorio) con las medias móviles y los niveles de retroceso de Fibonacci existentes para mejorar la precisión y la fiabilidad de las señales de negociación.
La estrategia de retracción dinámica de Fibonacci es un método de negociación basado en análisis técnico que utiliza el nivel de retracción de Fibonacci y las medias móviles para identificar oportunidades potenciales de entrada en mercados de tendencia. La estrategia proporciona a los operadores una forma estructurada de administrar el riesgo y optimizar los retornos mediante el cálculo dinámico de los niveles de retracción clave y la confirmación de la dirección de la tendencia.
/*backtest
start: 2023-06-11 00:00:00
end: 2024-06-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("50% Retracement Strategy", overlay=true)
// Input Parameters
len_200 = input.int(200, title="200-period Moving Average")
len_50 = input.int(50, title="50-period Moving Average")
len_21 = input.int(21, title="21-candle Retracement")
len_9 = input.int(9, title="9-candle Retracement")
risk_reward_ratio = input.float(2.0, title="Risk/Reward Ratio")
// Moving Averages
ma_200 = ta.sma(close, len_200)
ma_50 = ta.sma(close, len_50)
// Fibonacci Retracement Levels
var float fib_50_level = na
var float fib_786_level = na
if (close > ma_200 and close > ma_50)
// Calculate retracements for different periods
retrace_21_high = ta.highest(high, len_21)
retrace_21_low = ta.lowest(low, len_21)
retrace_21_mid = (retrace_21_high + retrace_21_low) / 2
retrace_50_high = ta.highest(high, len_50)
retrace_50_low = ta.lowest(low, len_50)
retrace_50_mid = (retrace_50_high + retrace_50_low) / 2
retrace_9_high = ta.highest(high, len_9)
retrace_9_low = ta.lowest(low, len_9)
retrace_9_mid = (retrace_9_high + retrace_9_low) / 2
// Choose the retracement to use (you can adjust this logic)
fib_50_level := (retrace_21_mid + retrace_50_mid + retrace_9_mid) / 3
fib_786_level := (retrace_21_high + retrace_50_high + retrace_9_high) / 3 - ((retrace_21_high + retrace_50_high + retrace_9_high - (retrace_21_low + retrace_50_low + retrace_9_low)) * 0.786)
// Strategy Entry
longCondition = close > ma_200 and close > ma_50 and close <= fib_50_level
if (longCondition)
strategy.entry("Long", strategy.long)
// Strategy Exit
takeProfitLevel = strategy.position_avg_price + (strategy.position_avg_price - fib_786_level) * risk_reward_ratio
stopLossLevel = fib_786_level
strategy.exit("Take Profit", "Long", limit=takeProfitLevel, stop=stopLossLevel)
// Plotting
plot(ma_200, color=color.blue, title="200-period MA")
plot(ma_50, color=color.red, title="50-period MA")
plot(fib_50_level, color=color.green, title="50% Retracement Level")
plot(fib_786_level, color=color.orange, title="78.6% Retracement Level")