Esta é uma estratégia de negociação baseada em sinais cruzados de média móvel.
Quando o preço sobe e rompe acima da linha média móvel de 45 dias, um sinal de compra é gerado. Depois de manter a posição por 8 dias, um sinal de venda é gerado.
Os princípios lógicos específicos são:
O que precede constitui a lógica de negociação central desta estratégia.
Esta estratégia tem as seguintes vantagens:
Há alguns riscos com esta estratégia:
Soluções:
As principais áreas de reforço são:
Otimizar os parâmetros de MA para encontrar as melhores combinações, por exemplo, MA de 15 dias, 30 dias, 60 dias.
Otimizar o período de retenção para determinar a duração ideal, por exemplo, 5 dias, 10 dias, 15 dias.
Adicionar paradas de atraso para acompanhar as tendências e controlar os riscos, por exemplo, paradas de ensaio ou paradas de ATR.
Adicione filtros usando outros indicadores como MACD, KDJ para reduzir falsos sinais.
Refinar as regras de reentrada para evitar o excesso de negociação, por exemplo, impor períodos de reflexão.
Eficiência dos testes em diferentes mercados e instrumentos.
Em resumo, esta estratégia de cruzamento de MA é um sistema simples e prático de acompanhamento de tendências. Ele aproveita a capacidade de rastreamento de tendências de MA e combina quebras de preço para gerar sinais comerciais. Os prós são fáceis de implementar, enquanto os contras são whipssaws ocasionais. A estratégia pode ser melhorada através da otimização de parâmetros e adicionando outros indicadores como filtros.
/*backtest start: 2023-01-16 00:00:00 end: 2024-01-22 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Moving Average Crossover Strategy", overlay=true) // Calculate the 45-day moving average ma_length = 45 ma = ta.sma(close, ma_length) // Track position entry and entry bar var bool in_long_position = na var int entry_bar = na var int exit_bar = na // Entry condition: Close price crosses above the 45-day moving average to enter the position if (not in_long_position and ta.crossover(close, ma) and not na(ma[1]) and close > ma and close[1] < ma[1]) in_long_position := true entry_bar := bar_index // Exit condition: Close the position after holding for 8 trading days if (in_long_position and bar_index - entry_bar >= 8) in_long_position := false exit_bar := bar_index // Re-entry condition: Wait for price to cross over the 45-day moving average again if (not in_long_position and ta.crossover(close, ma) and not na(ma[1]) and close > ma and close[1] > ma[1] and (na(exit_bar) or bar_index - exit_bar >= 8)) in_long_position := true entry_bar := bar_index // Execute long entry and exit if (in_long_position) strategy.entry("Long", strategy.long) if (not in_long_position) strategy.close("Long")