Estratégia de Negociação com Média Móvel Dinâmica
Visão Geral
Esta estratégia calcula uma média móvel dinâmica e a utiliza como sinal de negociação, abrindo posições longas quando o preço das ações sobe e fechando posições quando cai. Combina as vantagens dos indicadores de momentum e médias móveis, com o objetivo de acompanhar a tendência de médio prazo dos preços das ações e obter retornos estáveis.
Princípio
A estratégia baseia-se principalmente em três variantes da Média Móvel Hull (Hull Moving Average – HMA), incluindo a Média Móvel Hull comum (HMA), a Média Móvel Hull Ponderada (WHMA) e a Média Móvel Hull Exponencial (EHMA). De acordo com o código, a estratégia permite ao utilizador alternar entre estes três tipos de Hull MA.
A fórmula de cálculo do HMA é:
HMA = WMA(2 * WMA(fecho, n/2) – WMA(fecho, n), sqrt(n))
Onde WMA representa a Média Móvel Ponderada e n representa o parâmetro de período. Comparado com a SMA (Média Móvel Simples), o HMA responde mais rapidamente às variações de preço.
As fórmulas de cálculo do WHMA e EHMA são semelhantes às do HMA. Por defeito, a estratégia utiliza o HMA.
Após calcular o HMA, a estratégia utiliza o valor da linha central do HMA como sinal de negociação. Quando o preço cruza para cima da linha central do HMA, abre-se uma posição longa; quando o preço cruza para baixo da linha central do HMA, fecha-se a posição. Desta forma, aproveita-se a linha central do HMA para acompanhar a tendência de médio prazo dos preços e obter lucros.
Vantagens
Comparada com estratégias tradicionais de médias móveis, esta estratégia apresenta as seguintes vantagens:
- Resposta mais rápida, maior capacidade de acompanhamento de tendência, permitindo entradas e stops oportunos.
- Reduz a frequência de negociações desnecessárias, evitando comprar na alta e vender na baixa.
- Configuração flexível dos parâmetros da Hull MA, adaptando-se a um leque mais amplo de condições de mercado.
- Possibilidade de alternar entre HMA, WHMA e EHMA, alargando o âmbito de aplicação.
Riscos
A estratégia também apresenta alguns riscos:
- Em mercados laterais, pode gerar múltiplos sinais inválidos, aumentando a frequência de negociação e os custos de slippage.
- Parâmetros inadequados da Hull MA podem levar à perda de pontos de reversão de tendência, aumentando o risco de perdas.
- A seleção inadequada de ações de baixa liquidez pode enfrentar elevado slippage.
Contramedidas:
- Otimizar os parâmetros da Hull MA para encontrar os melhores valores.
- Combinar com outros indicadores para identificar pontos de reversão de tendência.
- Selecionar ações de elevada liquidez e com grande volume médio diário de negociação.
Direções de Otimização
A estratégia pode ainda ser otimizada nos seguintes aspetos:
- Adicionar filtros de volume ou de outros indicadores para garantir a fiabilidade dos sinais de negociação.
- Combinar MACD, KDJ e outros indicadores para determinar o momento de entrada, aumentando a taxa de sucesso.
- Ajustar o parâmetro do período da Hull MA com base em dados de backtest em tempo real.
- Alternar para WHMA ou EHMA para testar qual a variante Hull com melhor desempenho em ações específicas.
- Adicionar uma estratégia de stop loss para controlar perdas por operação.
Resumo
Esta estratégia de negociação baseada em média móvel dinâmica integra a vantagem de resposta rápida da Hull MA, permitindo acompanhar eficazmente a tendência de médio prazo dos preços das ações, abrindo posições longas em momentos oportunos e saindo com stop loss. Os resultados históricos de backtest são favoráveis. Através de otimizações adicionais nos parâmetros e no universo de ações, esta estratégia pode gerar retornos excedentários mais estáveis. Trata-se de uma estratégia quantitativa de fácil implementação e com risco controlável.
/*backtest
start: 2022-12-14 00:00:00
end: 2023-12-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('Position Investing by SirSeff', overlay=true, pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0)
strat_dir_input = input.string(title='Strategy Direction', defval='long', options=['long', 'short', 'all'])
strat_dir_value = strat_dir_input == 'long' ? strategy.direction.long : strat_dir_input == 'short' ? strategy.direction.short : strategy.direction.all- 1

