Estratégia de Rastreamento de Equilíbrio Long-Short (MACD)
Visão Geral
Esta estratégia é uma estratégia de acompanhamento de tendência que utiliza o indicador MACD para identificar direções de alta e baixa. Ela calcula a diferença entre uma média móvel rápida e uma média móvel lenta, gerando a linha principal do MACD. A estratégia utiliza o cruzamento de ouro (golden cross) entre a linha principal do MACD e a linha de sinal para gerar sinais de compra, e o cruzamento da morte (death cross) para gerar sinais de venda, realizando um acompanhamento equilibrado entre posições longas e curtas.
Princípio da Estratégia
O código primeiro define o período de início e fim do backtest para testar o desempenho histórico da estratégia.
Em seguida, vem o cálculo do indicador MACD, incluindo as configurações dos comprimentos da média móvel rápida, da média móvel lenta e da média do MACD. A linha rápida reage de forma mais sensível, enquanto a linha lenta reage de forma mais estável. A diferença entre elas forma a linha principal do MACD, que, através de uma média, forma a linha de sinal do MACD. Quando a diferença cruza acima do eixo zero, é gerado um sinal de alta; quando cruza abaixo do eixo zero, é gerado um sinal de baixa.
Com base nos sinais de alta e baixa, o tempo da última ocorrência do sinal é registrado. Quando as linhas rápida e lenta se cruzam, o sinal de compra/venda é confirmado e registrado, permitindo então a abertura de posição.
Após a entrada, a estratégia monitora continuamente o preço máximo e mínimo da posição. É definido um percentual de stop loss; quando a perda atinge esse percentual, a posição é encerrada.
Vantagens da Estratégia
-
O indicador MACD consegue identificar tendências de forma eficaz, sendo um dos indicadores clássicos da análise técnica.
-
O design da diferença entre as médias rápida e lenta permite capturar antecipadamente o momentum e a direção das mudanças de preço.
-
O uso do efeito de filtragem das médias pode eliminar parte dos sinais falsos.
-
A estratégia incorpora um mecanismo de stop loss para controlar o risco.
Riscos da Estratégia
-
O indicador MACD é propenso a gerar sinais falsos, e o próprio indicador tem espaço limitado para otimização.
-
A configuração inadequada do ponto de stop loss pode resultar em paradas excessivamente ativas ou conservadoras, exigindo otimização individual para diferentes ativos.
-
O uso de um tamanho de posição fixo pode levar a uma alavancagem excessiva; considerar o dimensionamento do risco com base no tamanho do capital.
-
A escolha do período de backtest precisa ser validada quanto à razoabilidade, para evitar overfitting.
Otimizações da Estratégia
-
Otimizar a combinação dos parâmetros das médias rápida e lenta para encontrar os melhores parâmetros que se ajustem a diferentes ativos.
-
Adicionar outros indicadores como filtros, como padrões de candlestick, Bandas de Bollinger, RSI, etc., para validar os sinais.
-
Avaliar a eficácia de diferentes pontos de stop loss com base em métricas como drawdown e Índice de Sharpe.
-
Otimizar a estratégia de stop loss, como stop loss móvel, stop loss com ordens pendentes, etc.
-
Tentar definir posições dinâmicas com base em variações de capital, volatilidade, etc.
Resumo
A estratégia de equilíbrio entre altas e baixas do MACD é uma estratégia de acompanhamento de tendência baseada em um indicador técnico clássico. Ela possui uma capacidade sensível de capturar o momentum das mudanças de preço e pode se adaptar bem a diferentes ativos por meio da otimização de parâmetros. Combinando mais indicadores de filtragem, métodos de stop loss e gerenciamento dinâmico de posições, é possível continuar melhorando a estabilidade e a lucratividade da estratégia.
/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("MACD BF", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.0)
/////////////// Component Code Start ///////////////- 1

