
A estratégia é um sistema de negociação integrado que combina retração de Fibonacci, acompanhamento de tendências e gerenciamento de risco. Baseia-se principalmente no nível de retração de Fibonacci de 0,65 como ponto de referência de preço crítico e combina a média móvel para confirmar a tendência do mercado, enquanto integra um mecanismo de parada de perda dinâmica baseado no ATR. A estratégia opera em um período de 15 minutos e visa capturar oportunidades de negociação de alta probabilidade que correspondam à tendência atual do mercado.
A lógica central da estratégia é baseada nos seguintes componentes principais:
Trata-se de uma estratégia de seguimento de tendências de médio prazo razoavelmente concebida, que combina a teoria de Fibonacci, o acompanhamento de tendências e a gestão de riscos para construir um sistema de negociação completo. A principal característica da estratégia é a identificação de tendências de mercado, a geração de sinais de negociação com base em preços que ultrapassam níveis críticos e a gestão de riscos por meio de um mecanismo de parada de perda dinâmico. Embora existam alguns pontos que precisam ser otimizados, no geral, é uma estrutura de estratégia com valor prático.
/*backtest
start: 2024-11-26 00:00:00
end: 2024-12-25 08:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Refined Fibonacci Strategy - Enhanced Risk Management", overlay=true)
// Input parameters
fibonacci_lookback = input.int(38, minval=2, title="Fibonacci Lookback Period")
atr_multiplier = input.float(1.8, title="ATR Multiplier for Stop Loss and Take Profit")
sma_length = input.int(181, title="SMA Length")
// Calculating Fibonacci levels
var float high_level = na
var float low_level = na
if (ta.change(ta.highest(high, fibonacci_lookback)))
high_level := ta.highest(high, fibonacci_lookback)
if (ta.change(ta.lowest(low, fibonacci_lookback)))
low_level := ta.lowest(low, fibonacci_lookback)
fib_level_0_65 = high_level - ((high_level - low_level) * 0.65)
// Trend Filter using SMA
sma = ta.sma(close, sma_length)
in_uptrend = close > sma
in_downtrend = close < sma
// ATR for Risk Management
atr = ta.atr(12)
long_stop_loss = close - (atr * atr_multiplier)
long_take_profit = close + (atr * atr_multiplier)
short_stop_loss = close + (atr * atr_multiplier)
short_take_profit = close - (atr * atr_multiplier)
// Entry Conditions
buy_signal = close > fib_level_0_65 and close[1] <= fib_level_0_65 and in_uptrend
sell_signal = close < fib_level_0_65 and close[1] >= fib_level_0_65 and in_downtrend
// Execute Trades
if (buy_signal)
strategy.entry("Buy", strategy.long)
if (sell_signal)
strategy.entry("Sell", strategy.short)
// Exit Conditions
if (strategy.position_size > 0)
strategy.exit("Exit Long", "Buy", stop=long_stop_loss, limit=long_take_profit)
if (strategy.position_size < 0)
strategy.exit("Exit Short", "Sell", stop=short_stop_loss, limit=short_take_profit)
// Plotting
plot(fib_level_0_65, color=color.blue, title="Fibonacci 0.65 Level")
plot(sma, color=color.orange, title="SMA")