O recurso está a ser carregado... Carregamento...

Estratégia de negociação quantitativa baseada no Fibonacci 0.7 Level Trend Breakthrough

Autora:ChaoZhang, Data: 2024-12-27 15:51:13
Tags:SLTP

img

Resumo

Esta estratégia é um sistema de negociação de avanço de tendência baseado no nível de retração Fibonacci 0.7. gerar sinais de negociação quando o preço quebra o nível Fibonacci 0.7, que é calculado usando os preços mais altos e mais baixos dentro de um período de retrospectiva especificado.

Princípio da estratégia

A lógica central da estratégia baseia-se nos seguintes elementos-chave:

  1. Cálculo dinâmico do nível de Fibonacci: acompanha continuamente os preços mais altos e mais baixos no período de retrospecção especificado (períodos padrão 20) e calcula o nível de retração de Fibonacci de 0,7.
  2. Confirmação do sinal de ruptura: gera sinais longos quando o preço de fechamento ultrapassa o nível de 0,7 e sinais curtos quando ultrapassa o nível abaixo.
  3. Gerenciamento de riscos: O sistema implementa condições simétricas de take-profit e stop-loss, com configurações por defeito de 1,8% para take-profit e 1,2% para stop-loss, refletindo uma abordagem de valor esperado positivo.
  4. Dimensão das posições: utiliza uma percentagem fixa do capital da conta para o dimensionamento das posições, facilitando uma gestão dinâmica do dinheiro e um controlo de risco coerente.

Vantagens da estratégia

  1. Seleção de indicadores científicos: o retracement de Fibonacci é uma ferramenta de análise técnica amplamente reconhecida, com o nível 0,7 representando tipicamente um forte suporte ou resistência.
  2. Lógica de sinal clara: usa o avanço do preço como gatilho de negociação, evitando potencial atraso de combinações complexas de sinais.
  3. Relação razoável risco-benefício: as definições do rácio de lucro e de stop-loss reflectem um valor esperado positivo, que conduz a lucros estáveis a longo prazo.
  4. Gestão de fundos flexível: o dimensionamento das posições com base na percentagem da conta ajusta automaticamente o volume de negociação à medida que o tamanho da conta muda.

Riscos estratégicos

  1. Dependência do ambiente de mercado: pode gerar sinais de ruptura falsos frequentes em mercados variados, aumentando os custos de transação.
  2. Sensibilidade dos parâmetros: a escolha do período de retrospectiva, as taxas de take-profit e stop-loss afetam significativamente o desempenho da estratégia.
  3. Impacto do deslizamento: pode enfrentar um risco significativo de deslizamento em mercados com baixo volume de negociação.
  4. Limitações técnicas: é possível que um único indicador técnico não capture integralmente informações de mercado multidimensionais.

Orientações para a otimização da estratégia

  1. Filtragem de sinal: pode introduzir indicadores auxiliares como volume e volatilidade para filtrar falsos sinais de avanço.
  2. Parâmetros dinâmicos: considerar o ajustamento dinâmico do período de revisão e dos rácios lucro/perda com base na volatilidade do mercado.
  3. Filtragem do tempo: adicionar restrições de janela de tempo de negociação para evitar períodos altamente voláteis.
  4. Verificação em vários prazos: adicionar mecanismos de confirmação em vários prazos para melhorar a confiabilidade do sinal.

Resumo

A estratégia combina a teoria clássica de Fibonacci com elementos fundamentais de descoberta de tendências e gerenciamento de riscos. Embora tenha certas limitações, por meio da otimização apropriada de parâmetros e filtragem de sinais, tem o potencial de manter um desempenho estável em várias condições de mercado.


/*backtest
start: 2024-11-26 00:00:00
end: 2024-12-25 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Fibonacci 0.7 Strategy - 60% Win Rate", overlay=true)

// Input parameters
fibonacci_lookback = input.int(20, minval=1, title="Fibonacci Lookback Period")
take_profit_percent = input.float(1.8, title="Take Profit (%)")
stop_loss_percent = input.float(1.2, title="Stop Loss (%)")

// 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_7 = high_level - ((high_level - low_level) * 0.7)

// Entry Conditions
buy_signal = close > fib_level_0_7 and close[1] <= fib_level_0_7
sell_signal = close < fib_level_0_7 and close[1] >= fib_level_0_7

// Risk management
long_take_profit = strategy.position_avg_price * (1 + take_profit_percent / 100)
long_stop_loss = strategy.position_avg_price * (1 - stop_loss_percent / 100)
short_take_profit = strategy.position_avg_price * (1 - take_profit_percent / 100)
short_stop_loss = strategy.position_avg_price * (1 + stop_loss_percent / 100)

// Execute trades
if (buy_signal)
    strategy.entry("Buy", strategy.long)
if (sell_signal)
    strategy.entry("Sell", strategy.short)

// Take Profit and Stop Loss
if (strategy.position_size > 0)
    strategy.exit("Take Profit/Stop Loss", "Buy", stop=long_stop_loss, limit=long_take_profit)
if (strategy.position_size < 0)
    strategy.exit("Take Profit/Stop Loss", "Sell", stop=short_stop_loss, limit=short_take_profit)

// Plot Fibonacci Level
plot(fib_level_0_7, color=color.blue, title="Fibonacci 0.7 Level")


Relacionados

Mais.