
La estrategia es un sistema de seguimiento de tendencias avanzado basado en el principio de la reversión de Fibonacci. Identifica las áreas de apoyo y resistencia potenciales mediante el cálculo dinámico de los niveles de reversión de Fibonacci importantes: [23.6%, 38.2%, 50%, 61.8%, 78.6%]. El sistema utiliza una ventana de retroceso de 100 ciclos para determinar los máximos y mínimos y, sobre esta base, calcular los niveles de reversión.
La lógica central de la estrategia se basa en la teoría de que los precios se revierten en las principales tendencias cerca de los niveles críticos de retracción de Fibonacci. En concreto:
Es una estrategia de negociación sistematizada basada en la teoría clásica del análisis técnico. La implementación programática la hace objetiva y repetible. La ventaja central de la estrategia es que combina la teoría de Fibonacci con un control estricto del riesgo, adecuada para su aplicación en mercados de tendencia.
/*backtest
start: 2024-11-11 00:00:00
end: 2024-12-10 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Fibonacci Retracement Strategy", overlay=true)
// Inputs
lookback_period = input.int(100, title="Lookback Period")
level_1 = input.float(0.236, title="Fibonacci Level 1")
level_2 = input.float(0.382, title="Fibonacci Level 2")
level_3 = input.float(0.5, title="Fibonacci Level 3")
level_4 = input.float(0.618, title="Fibonacci Level 4")
level_5 = input.float(0.786, title="Fibonacci Level 5")
// Calculate highest high and lowest low over the lookback period
high_level = ta.highest(high, lookback_period)
low_level = ta.lowest(low, lookback_period)
// Calculate Fibonacci retracement levels
fib_236 = low_level + (high_level - low_level) * level_1
fib_382 = low_level + (high_level - low_level) * level_2
fib_50 = low_level + (high_level - low_level) * level_3
fib_618 = low_level + (high_level - low_level) * level_4
fib_786 = low_level + (high_level - low_level) * level_5
// Plot Fibonacci levels on the chart
plot(fib_236, color=color.green, title="Fib 23.6%")
plot(fib_382, color=color.blue, title="Fib 38.2%")
plot(fib_50, color=color.orange, title="Fib 50%")
plot(fib_618, color=color.red, title="Fib 61.8%")
plot(fib_786, color=color.purple, title="Fib 78.6%")
// Entry and Exit Conditions
buy_signal = ta.crossover(close, fib_618)
sell_signal = ta.crossunder(close, fib_382)
// Strategy Orders
if buy_signal
strategy.entry("Buy", strategy.long)
// Exit based on stop-loss and take-profit conditions
take_profit = high_level // Exit at the highest Fibonacci level (100%)
stop_loss = low_level // Exit at the lowest Fibonacci level (0%)
strategy.exit("Sell", from_entry="Buy", limit=take_profit, stop=stop_loss)
// Visualization of Signals
plotshape(series=buy_signal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sell_signal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")