
Visão geral
A estratégia de posicionamento dinâmico de dupla equilíbrio é uma estratégia de negociação quantitativa baseada em dois sinais de cruzamento de médias móveis simples (SMA) de períodos diferentes. A estratégia usa o cruzamento de médias móveis de curto e longo prazo para determinar a tendência do mercado e ajusta a direção da posição de acordo com o sinal de cruzamento e a dinâmica do preço em relação à equilíbrio de longo prazo.
Princípio da estratégia
- Média móvel calculada: a estratégia usa duas médias móveis simples (SMA) em 9 e 21 dias.
- Geração de sinais de transação:
- Sinais de compra: média curta (SMA de 9 dias) sobre média longa (SMA de 21 dias)
- Sinais de venda: média de curto prazo abaixo da média de longo prazo
- Gestão de Depósitos:
- Abrir posições: abrir posições múltiplas quando surge um sinal de compra; abrir posições vazias quando surge um sinal de venda
- A posição de equilíbrio e de reversão:
a) Quando se detém uma posição de multiples, se o preço de abertura estiver abaixo da média de longo prazo ou se surgir um sinal de venda, o multiplo deve ser liquidado e a posição deve ser aberta
b) Quando se detém uma posição em aberto, se o preço de abertura for superior à média de longo prazo ou se surgir um sinal de compra, se esvazie o branco e se abre um multi-cabeça
- Controle de risco: a estratégia não estabelece um stop loss fixo, mas controla o risco ajustando dinamicamente a direção da posição
Vantagens estratégicas
- Acompanhamento de tendências: captação de tendências de mercado com a utilização de cruzamentos de equilíbrio, o que ajuda a obter ganhos significativos em grandes tendências
- Manutenção dinâmica: Manutenção flexível de acordo com a relação entre o preço e a linha média de longo prazo, aumentando a flexibilidade e adaptabilidade da estratégia
- Simples e fácil de entender: a lógica da estratégia é clara, fácil de entender e implementar
- Parâmetros ajustáveis: pode ser adaptado a diferentes ambientes de mercado e variedades de negociação, ajustando o ciclo de linha média
- Negociação 24 horas por dia: a estratégia pode operar continuamente em diferentes condições de mercado, sem restrições de estado de mercado
- Execução automática: estratégias que podem ser programadas para realizar transações totalmente automatizadas, reduzindo a interferência emocional humana
- Gerenciamento de risco: evita a perda de ponto de deslizamento que pode ser causada por um stop loss fixo, ajustando dinamicamente a direção da posição
Risco estratégico
- Desvantagens de mercados de turbulência: em mercados de liquidação horizontal ou de turbulência, a frequência de negociação pode levar a perdas
- Retraso: a média móvel é essencialmente um indicador de atraso, podendo perder a fase inicial de uma aceleração
- Risco de Falso Breakout: Os movimentos de preços de curto prazo podem levar a uma Falso Breakout da linha média, gerando um sinal de negociação errado.
- Falta de stop loss: a estratégia não tem um stop loss fixo, podendo sofrer grandes perdas em situações extremas
- Transações excessivas: frequentes ajustes de posições podem acarretar custos de transação mais elevados
- Sensibilidade a parâmetros: a performance da estratégia é sensível à seleção de parâmetros de linha média, e diferentes parâmetros podem levar a resultados muito diferentes
- Limites de um único indicador: confiar apenas em cruzamentos lineares pode ignorar outras informações importantes do mercado
Direção de otimização da estratégia
- Introdução de indicadores adicionais: combinação de indicadores como RSI, MACD e outros para aumentar a confiabilidade do sinal
- Otimizar o tempo de entrada: aumentar o volume de transações, oscilações e outras condições de filtragem, reduzindo as falsas brechas
- Adicionar um mecanismo de stop loss: configure um stop loss fixo ou um stop loss de acompanhamento para controlar o risco de uma única transação
- Ajustar o tamanho das posições de acordo com a dinâmica da volatilidade do mercado e otimizar a gestão de fundos
- Aumentar o julgamento do estado do mercado: identificar tendências e mercados de turbulência, adotar estratégias diferentes em diferentes estados de mercado
- Optimizar a seleção de parâmetros: usar a retroalimentação de dados históricos para encontrar a combinação ideal de parâmetros de linha média
- Adição de filtro de intensidade de tendência: introdução de indicadores como o ADX, para negociar apenas em mercados de forte tendência
- Parâmetros de auto-adaptação: ajuste automático do ciclo da linha média de acordo com a volatilidade do mercado, aumentando a adaptabilidade da estratégia
Resumir
A estratégia de posicionamento dinâmico de duplo equilíbrio é um método de negociação quantitativa clássico e prático para entender a tendência do mercado, capturando sinais de posicionamento de equilíbrio e ajustando a direção dinâmica da posição. A estratégia é simples, fácil de entender, totalmente automatizada e tem uma melhor capacidade de acompanhamento de tendências e flexibilidade. No entanto, a estratégia também apresenta riscos potenciais, como mau desempenho no mercado de turbulência, atraso de sinais.
Código-fonte da estratégia
/*backtest
start: 2024-06-29 00:00:00
end: 2024-07-29 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="MA Cross Backtest", overlay=true, default_qty_type=strategy.cash, default_qty_value=10)
// Parâmetros das Médias Móveis
shortlen = input.int(9, "Short MA Length", minval=1)
longlen = input.int(21, "Long MA Length", minval=1)
// Cálculo das Médias Móveis
short = ta.sma(close, shortlen)
long = ta.sma(close, longlen)
// Plotagem das Médias Móveis
plot(short, color=color.orange, title="Short MA")
plot(long, color=color.green, title="Long MA")
// Sinal de Compra baseado no cruzamento das médias móveis
buySignal = ta.crossover(short, long)
// Sinal de Venda (Short) baseado no cruzamento das médias móveis
sellSignal = ta.crossunder(short, long)
// Plotagem dos Sinais de Compra e Venda
plotshape(series=buySignal, location=location.belowbar, color=color.blue, style=shape.labelup, text="Buy", title="Buy Signal")
plotshape(series=sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell", title="Sell Signal")
// Condições para alertas
alertcondition(buySignal, title="Buy Signal", message="MA Cross Buy Signal")
alertcondition(sellSignal, title="Sell Signal", message="MA Cross Sell Signal")
// Lógica da Estratégia de Backtest
if (buySignal)
// Se não há posição aberta ou se a posição atual é curta, feche a posição curta antes de abrir uma nova posição longa
if (strategy.position_size < 0)
strategy.close("Short", comment="Closing Short Position before Long Entry")
strategy.entry("Long", strategy.long)
// Alerta de compra
alert("MA Cross Buy Signal", alert.freq_once_per_bar_close)
if (strategy.position_size > 0)
// Se o preço abrir abaixo da média longa
if (open < long)
strategy.close("Long", comment="Price Opened Below Long MA")
strategy.entry("Short", strategy.short, comment="Switched to Short")
// Alerta de venda
alert("Price Opened Below Long MA - Switched to Short", alert.freq_once_per_bar_close)
// Se a média móvel curta cruzar abaixo da média móvel longa
else if (sellSignal)
strategy.close("Long", comment="Short MA Crossed Below Long MA")
strategy.entry("Short", strategy.short, comment="Switched to Short")
// Alerta de venda
alert("Short MA Crossed Below Long MA - Switched to Short", alert.freq_once_per_bar_close)
if (strategy.position_size < 0)
// Se o preço abrir acima da média longa
if (open > long)
strategy.close("Short", comment="Price Opened Above Long MA")
strategy.entry("Long", strategy.long, comment="Switched to Long")
// Alerta de compra
alert("Price Opened Above Long MA - Switched to Long", alert.freq_once_per_bar_close)