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

A estratégia dinâmica de cronograma e gestão de posições baseada na volatilidade

Autora:ChaoZhang, Data: 2024-12-12 15:19:18
Tags:ATR

img

Resumo

Esta estratégia é um sistema de negociação de tempo dinâmico baseado na volatilidade, combinando características de acompanhamento de tendências e gestão de riscos. O núcleo da estratégia usa um canal de volatilidade para identificar mudanças de tendência do mercado, incorporando um mecanismo de gestão de posição dinâmica baseado em ATR para alcançar um controle preciso dos riscos de negociação. Esta estratégia é particularmente adequada para operar em ambientes de mercado altamente voláteis e pode adaptar as participações à volatilidade do mercado.

Princípios de estratégia

A lógica central da estratégia baseia-se nos seguintes componentes essenciais:

  1. Calculo do canal de volatilidade: utiliza o indicador ATR (Average True Range) para medir a volatilidade do mercado e constrói um canal de volatilidade dinâmica.
  2. Mecanismo de Determinação de Tendência: Determina a direção da tendência através da posição relativa do preço para o canal de volatilidade.
  3. Sistema de Gestão de Posições: Calcula dinamicamente o tamanho da posição com base no capital inicial e no risco pré-definido por transação, combinado com a distância de stop-loss em tempo real, garantindo uma exposição ao risco constante para cada transação.
  4. Mecanismo de controlo de risco: Implementa um stop-loss dinâmico baseado no canal de volatilidade, fechando automaticamente as posições quando o preço atinge o nível de stop e forçando o fechamento das posições antes do fechamento do mercado para evitar o risco overnight.

Vantagens da estratégia

  1. Forte adaptabilidade: A estratégia ajusta automaticamente os parâmetros de negociação com base nas alterações na volatilidade do mercado, adaptando-se a diferentes ambientes de mercado.
  2. Risco controlado: garante que a exposição ao risco para cada operação permanece dentro dos limites pré-estabelecidos através de uma gestão dinâmica das posições e mecanismos de stop-loss.
  3. Captura de tendência precisa: Filtra efetivamente falsas rupturas usando o canal de volatilidade, melhorando a precisão do julgamento da tendência.
  4. Operação padronizada: condições claras de entrada e saída reduzem a incerteza do julgamento subjetivo.
  5. Gerenciamento científico de capitais: Incorpora uma gestão de posições baseada no risco, evitando riscos excessivos decorrentes de posições de tamanho fixo.

Riscos estratégicos

  1. Risco de mercado perturbado: pode resultar em negociações frequentes e perdas pequenas consecutivas em mercados variados.
  2. Efeito do deslizamento: pode enfrentar um risco significativo de deslizamento durante períodos de alta volatilidade, afetando o desempenho da estratégia.
  3. Sensibilidade dos parâmetros: a eficácia da estratégia é sensível ao período de ATR e à seleção do fator multiplicador, uma seleção inadequada dos parâmetros pode afetar o desempenho.
  4. Requisitos de capital: a gestão dinâmica de posições pode exigir um capital inicial mais elevado para assegurar um controlo eficaz dos riscos.

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

  1. Filtragem do ambiente do mercado: adicionar indicadores de força da tendência para pausar a negociação em mercados variados, reduzindo as perdas em condições agitadas.
  2. Análise de quadros de tempo múltiplos: Incorporar um julgamento de tendências de quadros de tempo mais longos para melhorar a precisão da direção da negociação.
  3. Optimização da captação de lucros: conceber condições dinâmicas de captação de lucros baseadas na volatilidade para melhorar a captação de lucros.
  4. Optimização do tempo de entrada: adicione padrões de preços ou indicadores de impulso como indicadores auxiliares para melhorar a precisão do tempo de entrada.
  5. Controlo de retirada: adicionar mecanismos dinâmicos de controlo de risco baseados no capital da conta para reduzir o tamanho da posição ou pausar a negociação durante perdas consecutivas.

Resumo

A estratégia é um sistema de negociação completo que combina volatilidade, acompanhamento de tendências e gerenciamento de riscos. A estratégia capta mudanças de tendência por meio de canais de volatilidade, enquanto emprega métodos científicos de gerenciamento de capital para controlar o risco. Embora o desempenho possa ser subóptimo em mercados variados, por meio de otimização adequada de parâmetros e mecanismos de filtragem adicionais, ela pode operar de forma estável na maioria dos ambientes de mercado. As principais vantagens da estratégia estão em sua capacidade de adaptabilidade e controle de risco, tornando-a adequada como uma estrutura de base para expansão e otimização de estratégias de médio a longo prazo.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("BNF FUT 5 min Volatility Strategy", overlay=true)

// Inputs
length = input.int(20, "Length", minval=2)
src = input.source(close, "Source")
factor = input.float(2.0, "Multiplier", minval=0.25, step=0.25)
initial_capital = input.float(100000, "Initial Capital ($)")
risk_per_trade = input.float(1.0, "Risk per Trade (%)", minval=0.1, maxval=10.0)

// Volatility Stop Function
volStop(src, atrlen, atrfactor) =>
    if not na(src)
        var max = src
        var min = src
        var uptrend = true
        var float stop = na
        atrM = nz(ta.atr(atrlen) * atrfactor, ta.tr)
        max := math.max(max, src)
        min := math.min(min, src)
        stop := nz(uptrend ? math.max(stop, max - atrM) : math.min(stop, min + atrM), src)
        uptrend := src - stop >= 0.0
        if uptrend != nz(uptrend[1], true)
            max := src
            min := src
            stop := uptrend ? max - atrM : min + atrM
        [stop, uptrend]

// Calculate Volatility Stop
[vStop, uptrend] = volStop(src, length, factor)

// Plot Volatility Stop
plot(vStop, "Volatility Stop", style=plot.style_cross, color=uptrend ? #009688 : #F44336)

// Risk Management and Position Sizing
atr = ta.atr(length)
stop_distance = math.abs(close - vStop) // Distance to stop level
position_size = (initial_capital * (risk_per_trade / 100)) / stop_distance // Position size based on risk per trade
position_size := math.max(position_size, 1) // Ensure minimum size of 1

// Strategy Logic
if not na(vStop)
    if uptrend and not uptrend[1] // Transition to uptrend
        strategy.close("Short")
        strategy.entry("Long", strategy.long, qty=position_size)
    if not uptrend and uptrend[1] // Transition to downtrend
        strategy.close("Long")
        strategy.entry("Short", strategy.short, qty=position_size)

// Exit on Stop Hit
if strategy.position_size > 0 and low < vStop // Exit long if stop hit
    strategy.close("Long", comment="Stop Hit")
if strategy.position_size < 0 and high > vStop // Exit short if stop hit
    strategy.close("Short", comment="Stop Hit")
if (hour == 15 and minute == 15)
    strategy.close_all()

Relacionados

Mais.