
Visão geral
A estratégia é um sistema de negociação de escolha de tempo dinâmico baseado na volatilidade, combinando a tração de tendências e o gerenciamento de risco. O núcleo da estratégia é identificar mudanças na tendência do mercado através do canal de volatilidade, ao mesmo tempo em que introduz um mecanismo de gerenciamento de posição dinâmico baseado em ATR, que permite um controle preciso do risco de negociação.
Princípio da estratégia
A lógica central da estratégia é baseada nos seguintes componentes principais:
- Cálculo do canal de flutuação: usa o indicador ATR (Average True Range) para medir a flutuação do mercado e constrói um canal de flutuação dinâmico. A largura do canal é determinada pelo valor do ATR e pelo fator multiplicador e pode ser ajustada de forma flexível de acordo com as características do mercado.
- Mecanismo de determinação de tendência: determina a direção da tendência através da posição relativa do preço e do canal de taxa de flutuação. Quando o preço atravessa o canal acima, é considerado uma tendência ascendente, quando o preço atravessa o canal abaixo, é considerado uma tendência descendente.
- Sistema de gerenciamento de posições: baseado no capital inicial e proporção de risco por transação predefinida, combinado com o cálculo dinâmico do número de posições abertas em tempo real de stop loss distance, garantindo a exposição de risco de cada transação.
- Mecanismo de controle de risco: configuração de stop loss dinâmico baseado em canais de volatilidade, que automaticamente liquida a posição quando o preço toca o ponto de parada e obriga a liquidação da posição antes do fechamento, evitando o risco durante a noite.
Vantagens estratégicas
- Adaptabilidade: A estratégia é capaz de ajustar automaticamente os parâmetros de negociação de acordo com a variação da taxa de flutuação do mercado, adaptando-se a diferentes condições de mercado.
- Risco controlado: Gerenciamento de posições dinâmico e mecanismo de stop loss para garantir que a exposição ao risco de cada transação esteja dentro do limite predeterminado.
- Precificação de tendências: o uso de canais de flutuação permite filtrar efetivamente brechas falsas e aumentar a precisão do julgamento de tendências.
- Normalização operacional: as condições de entrada e saída da estratégia são claras, reduzindo a incerteza causada pelo julgamento subjetivo.
- Ciência de gestão de fundos: introdução de uma abordagem de gestão de posições baseada no risco, evitando o risco excessivo que as posições fixas podem trazer.
Risco estratégico
- Risco de mercado de turbulência: pode ser negociado com frequência em mercados de turbulência horizontal, gerando pequenos perdas consecutivas.
- Efeitos de deslizamento: durante os períodos de alta volatilidade, pode haver um maior risco de deslizamento, afetando o desempenho da estratégia.
- Sensibilidade de parâmetros: os efeitos da estratégia são mais sensíveis à seleção do ATR e do fator multiplicador. A seleção indevida de parâmetros pode afetar o desempenho da estratégia.
- Requisitos de capital: a gestão de posições dinâmicas pode exigir um capital inicial elevado para assegurar um controlo eficaz do risco.
Direção de otimização da estratégia
- Filtragem do cenário de mercado: pode ser adicionado um indicador de intensidade de tendência, suspensão de negociação em mercados horizontais e redução de perdas em mercados de turbulência.
- Análise de períodos de tempo múltiplos: determinação de tendências em combinação com períodos mais longos, aumentando a precisão da direção do negócio.
- Otimização do mecanismo de suspensão: pode projetar condições de suspensão dinâmicas com base na volatilidade, aumentando a capacidade de gerenciamento de lucro.
- Otimização do tempo de entrada: pode ser adicionado um padrão de preço ou um indicador de dinâmica como indicador auxiliar para melhorar a precisão do tempo de entrada.
- Controle de retirada: Aumente o mecanismo de controle de risco dinâmico baseado no valor líquido da conta, reduzindo a posição ou suspendendo a negociação em caso de perdas consecutivas.
Resumir
Trata-se de um sistema de negociação completo que combina volatilidade, rastreamento de tendências e gerenciamento de risco. A estratégia capta as mudanças de tendência através do canal de volatilidade, enquanto controla o risco usando métodos científicos de gerenciamento de fundos. Embora o desempenho possa ser fraco em mercados turbulentos, a estratégia pode operar de forma estável na maioria dos cenários de mercado, com otimização de parâmetros razoáveis e mecanismos de filtragem adicionais.
Código-fonte da estratégia
/*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()