
No campo do trading quantitativo, muitas vezes enfrentamos uma questão central: como manter a estabilidade de um portfólio em meio à volatilidade do mercado? As estratégias de compra e posse tradicionais, embora simples, muitas vezes não têm flexibilidade em face de fortes flutuações.
A ideia central desta estratégia é: ajustar dinamicamente a proporção de posições, para que a carteira de investimento funcione sempre em torno da posição de alvo, capturando oportunidades de alta no mercado e controlando o risco na queda.
Mecanismos de definição de posições-alvo
A estratégia começa por definir uma proporção de posições-alvo (default 50%), o que significa que queremos investir 50% do capital total nos ativos indicados. A escolha dessa proporção é crucial:
Condições de desencadeamento do reequilíbrio dinâmico
A estratégia estabelece um limiar de reequilíbrio de 5%, um intervalo razoável comprovado pela prática. Quando o posicionamento real se desvia mais de 5% do posicionamento alvo, o sistema dispara automaticamente a operação de deslocamento:
Mecanismo de controle de frequência de transação
Para evitar o excesso de negociação, a estratégia introduziu uma restrição de intervalo mínimo de negociação (cinco ciclos). Este design é muito inteligente, porque:
Modelagem matemática
Do ponto de vista matemático, esta estratégia é, na verdade, um sistema de controle de feedback. A proporção de posição alvo é o valor definido, a proporção de posição real é o valor de feedback, e o movimento de controle é acionado quando o desvio excede o valor de limite.
偏差 = 实际仓位% - 目标仓位%
当|偏差| > 阈值时,执行调仓操作
Mecanismo de equilíbrio de risco-receita
A estratégia é executada através de uma taxa fixa de capital de 2,5% para cada deslocação, com o seguinte design:
A vantagem de um mercado em turbulência
A estratégia tem se mostrado especialmente eficaz em mercados de baixa volatilidade, devido a:
Desempenho no mercado de tendência
Em mercados de alta tendência, a estratégia é relativamente conservadora:
Mas essa estratégia “conservadora” foi concebida com o intuito de obter ganhos sólidos, e não radicais.
A importância do ajuste de parâmetros
Considerações na execução
Em aplicações práticas, também é necessário considerar:
A inovação desta estratégia de equilíbrio dinâmico, em comparação com a estratégia tradicional de aposta fixa ou grelha, é que:
Na minha experiência prática, este tipo de estratégia é especialmente adequado para investidores que desejam participar do mercado, mas não querem assumir riscos elevados. Ela mantém a sensibilidade às oportunidades de mercado e evita a interferência de decisões emocionais por meio de mecanismos sistemáticos de controle de risco.
Em geral, as estratégias de equilíbrio dinâmico representam a concretização típica da ideia de “saudável crescimento” em negociações quantitativas, onde um ponto de equilíbrio relativamente ideal é encontrado entre o controle de risco e a obtenção de lucro por meio de um mecanismo de gerenciamento de posição sofisticado.
//@version=4
strategy("Dynamic Balance Strategy")
// === 策略参数 ===
target_position_pct = input(50, "目标仓位百分比", minval=10, maxval=90)
rebalance_threshold = input(5, "再平衡阈值(%)", minval=1, maxval=20)
trade_size = input(2.5, "交易比例(%)", minval=0.5, maxval=10, step=0.5)
min_trade_interval = input(5, "最小交易间隔(K线)", minval=1)
// === 核心变量 ===
// 目标仓位价值
target_position_value = strategy.equity * target_position_pct / 100
// 当前仓位价值
current_position_value = strategy.position_size * close
// 当前仓位百分比
current_position_pct = current_position_value / strategy.equity * 100
// 仓位偏差
position_deviation = current_position_pct - target_position_pct
// === 交易条件 ===
// 防止过于频繁交易
bars_since_trade = barssince(strategy.position_size != strategy.position_size[1])
can_trade = na(bars_since_trade) or bars_since_trade >= min_trade_interval
// 初始建仓条件
need_initial_position = strategy.position_size == 0
// 加仓条件:当前仓位低于目标仓位超过阈值
need_add_position = current_position_pct < (target_position_pct - rebalance_threshold)
// 减仓条件:当前仓位高于目标仓位超过阈值
need_reduce_position = current_position_pct > (target_position_pct + rebalance_threshold)
// === 交易逻辑 ===
// 初始建仓
if need_initial_position and can_trade
qty = target_position_value / close
strategy.order("Initial", strategy.long, qty=qty, comment="初始建仓")
// 动态平衡加仓
if need_add_position and can_trade and strategy.position_size > 0
add_value = strategy.equity * trade_size / 100
qty = add_value / close
strategy.order("Add", strategy.long, qty=qty, comment="平衡加仓")
// 动态平衡减仓
if need_reduce_position and can_trade and strategy.position_size > 0
reduce_value = strategy.equity * trade_size / 100
qty = reduce_value / close
strategy.order("Reduce", strategy.short, qty=qty, comment="平衡减仓")
// === 画图显示 ===
// 1. 目标仓位百分比(蓝色线)
plot(target_position_pct, color=color.blue, linewidth=2, title="目标仓位%")
// 2. 当前仓位百分比(橙色线)
plot(current_position_pct, color=color.orange, linewidth=2, title="当前仓位%")
// 3. 两者差值(绿红色柱状图)
deviation_color = position_deviation > 0 ? color.red : color.green
plot(position_deviation, color=deviation_color, style=plot.style_columns, linewidth=3, title="仓位偏差%")