
A estratégia é baseada em retrações de Fibonacci e em médias móveis, e tem como objetivo capturar oportunidades de retração em tendências de mercado. Ela determina os níveis de retração de Fibonacci calculando os preços mais altos e mais baixos de diferentes períodos e usa médias móveis para confirmar a direção da tendência. A estratégia só considera a entrada em posições múltiplas quando os preços estão acima das médias móveis de longo e médio prazo e negocia quando os preços retrocederam para níveis críticos de Fibonacci.
O princípio central da estratégia é usar os níveis de retração de Fibonacci e as médias móveis para identificar potenciais pontos de entrada. Primeiro, calcula-se uma média móvel simples (SMA) de longo prazo (de 200 ciclos) e médio prazo (de 50 ciclos) para determinar a direção da tendência geral. Em seguida, são calculados os preços mais altos e mais baixos de 21 ciclos, 50 ciclos e 9 ciclos e, com base nesses preços, são calculados os níveis de retração de Fibonacci correspondentes.
A estratégia só entra em uma posição de multiponto se as seguintes condições forem atendidas: o preço está acima da média móvel de 200 e 50 ciclos e o preço está abaixo do nível de retração igual a 50%. Uma vez entrado, a posição de parada é definida como o preço médio de abertura da posição mais a diferença entre o preço médio de abertura da posição e o nível de retração de 78.6% multiplicado pela taxa de retorno do risco. A posição de parada é definida como o nível de retração de 78.6%.
Confirmação de tendências: a estratégia usa médias móveis de longo e médio prazo para confirmar a direção da tendência geral, ajudando a evitar a negociação em mercados adversos.
Níveis de retração dinâmicos: ao calcular os preços máximos e mínimos de diferentes períodos ((21 ciclos, 50 ciclos e 9 ciclos), a estratégia é capaz de ajustar dinamicamente os níveis de retração de Fibonacci para adaptar-se a diferentes condições de mercado.
Gerenciamento de risco: a estratégia usa um risco-retorno predefinido para determinar os níveis de parada e perda, ajudando a gerenciar o risco de negociação e otimizar o retorno potencial.
Auxílio Visual: A estratégia traça as médias móveis e os principais níveis de retração de Fibonacci em um gráfico, fornecendo aos comerciantes uma referência visual clara que ajuda a tomar decisões comerciais sensatas.
Entradas atrasadas: Em condições de mercado em rápida mudança, esperar que o preço se recule para o nível Fibonacci crítico pode levar a perder as melhores oportunidades de entrada.
Falso sinal: Em alguns casos, o preço pode romper brevemente o nível Fibonacci crítico, mas logo se recupera, causando um falso sinal de negociação.
Reversão de tendência: a estratégia funciona melhor em um mercado em tendência. Se a tendência se inverter, a estratégia pode sofrer perdas.
Sensibilidade de parâmetros: o desempenho da estratégia depende em grande parte dos parâmetros escolhidos, como o comprimento da média móvel e o ciclo de retração de Fibonacci. A escolha inadequada de parâmetros pode levar a resultados sub-ótimos.
Otimização de parâmetros dinâmicos: implementação de mecanismos de adaptação para ajustar dinamicamente os parâmetros da estratégia, como o comprimento da média móvel e o ciclo de retração de Fibonacci, para se adaptar a condições de mercado em constante mudança.
Análise de múltiplos períodos de tempo: combina análise de vários períodos de tempo para obter uma visão mais abrangente do mercado e confirmar sinais de negociação.
Melhoria do gerenciamento de risco: introdução de técnicas de gerenciamento de risco mais avançadas, como o ajuste de posição baseado na volatilidade ou o rastreamento de stop loss, para melhor proteger o capital e gerenciar o risco de transação.
Combinação de indicadores: Combinação de outros indicadores técnicos (como índices de força relativa ou osciladores aleatórios) com as médias móveis e os níveis de retração de Fibonacci existentes para aumentar a precisão e a confiabilidade dos sinais de negociação.
A estratégia de retorno dinâmico de Fibonacci é uma estratégia de negociação baseada em análise técnica que visa identificar oportunidades potenciais de entrada em mercados de tendência usando níveis de retorno de Fibonacci e médias móveis. A estratégia fornece aos comerciantes uma maneira estruturada de gerenciar o risco e otimizar o retorno através do cálculo dinâmico dos níveis de retorno críticos e da confirmação da direção da tendência.
/*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")