- Quadrado
- Estratégia de negociação quantitativa baseada no Fibonacci 0.7 Level Trend Breakthrough
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
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:
- 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.
- 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.
- 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.
- 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
- 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.
- 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.
- 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.
- 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
- Dependência do ambiente de mercado: pode gerar sinais de ruptura falsos frequentes em mercados variados, aumentando os custos de transação.
- 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.
- Impacto do deslizamento: pode enfrentar um risco significativo de deslizamento em mercados com baixo volume de negociação.
- 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
- Filtragem de sinal: pode introduzir indicadores auxiliares como volume e volatilidade para filtrar falsos sinais de avanço.
- 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.
- Filtragem do tempo: adicionar restrições de janela de tempo de negociação para evitar períodos altamente voláteis.
- 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.