Esta estratégia julga a tendência com base nos pontos de virada da linha da média móvel para ir longo no ponto de virada da tendência de alta da MA e curto no ponto de virada da tendência de baixa da MA.
A estratégia usa o preço=segurança (tickerid, período, fechamento) para obter o preço de fechamento como o preço para análise de estratégia, em seguida, calcula a SMA ou EMA com base na seleção de entrada de comprimento de linha ma1 para obter o primeiro preço médio1. roc1 é então definido como a taxa de mudança de um dia do preço1. Pela tendência de limiarStrength1, ele julga se a linha média tem uma alta ou queda significativa. Quando roc1 excede a tendênciaStrength1, ma1up é definido como verdadeiro, indicando que a linha média está subindo. Quando roc1 está abaixo da tendência negativaStrength1, ma1down é definido como verdadeiro, indicando que a linha média está caindo. Um sinal longo é emitido quando a linha média sobe e o dia anterior estava caindo. Um sinal curto é emitido quando a linha média cai e o dia anterior estava subindo.
Assim, a estratégia utiliza os pontos de virada da linha média móvel para capturar a mudança de tendência do preço das ações, que pertence a uma estratégia típica de tendência.
A maior vantagem desta estratégia é que utiliza os pontos de virada da linha média móvel para julgar a tendência, que é um método de análise técnica relativamente maduro e confiável na negociação quantitativa.
Usar médias móveis para filtrar o ruído e capturar com precisão os pontos de virada da tendência.
Esta estratégia não só detecta pontos de virada, mas também define um limiar para o gradiente de taxa de mudança, para que possa evitar negociações desnecessárias causadas por falsos breakouts na média móvel.
Esta estratégia tem apenas uma média móvel e alguns parâmetros que são fáceis de entender e dominar pelos usuários.
Os principais riscos desta estratégia são:
Esta estratégia é uma estratégia de tendência que só pode seguir tendências e não pode prever tops e tops do mercado, facilmente perdendo oportunidades de reversão instantânea.
Problemas de atraso da média móvel: as médias móveis têm um certo atraso em refletir os movimentos de preços, o que pode afetar a puntualidade de identificar inversões de tendência.
A configuração de parâmetros desta estratégia, como o número de períodos da linha média e o limiar de gradiente de taxa de mudança, afetará diretamente o lucro, o drawdown etc. da estratégia e precisa ser cuidadosamente testado e otimizado.
As soluções correspondentes são:
Combine de forma adequada outros indicadores para prever grandes pontos de virada.
Teste a EMA e outras médias móveis mais rápidas em vez da SMA.
Recomenda-se a otimização múltipla para encontrar as melhores definições de parâmetros.
Esta estratégia pode ser melhorada nas seguintes direcções:
Adicione uma segunda linha de média móvel para formar uma estratégia de cruz de ouro e cruz morta.
Adicionar análise de volume. Observando mudanças de volume nos pontos de viragem da média móvel, pode verificar ainda mais a confiabilidade dos pontos de viragem.
Testar os papéis auxiliares de outros indicadores técnicos, como RSI e MACD. Estes indicadores também podem ajudar a determinar tendências e formar estratégias de combinação com pontos de virada da média móvel.
Optimização e triagem de parâmetros de condições de mercado múltiplos.
Usar métodos de aprendizagem de máquina para otimizar dinamicamente parâmetros em diferentes ambientes de mercado e avaliar a robustez dos parâmetros para otimização dinâmica.
Em resumo, esta é uma estratégia de tendência relativamente madura com algum valor prático. A ideia da estratégia é simples e clara, com poucos parâmetros ajustáveis, o que é fácil de entender e testar. Ao mesmo tempo, também há problemas como o atraso da tendência. Recomenda-se combinar com outros indicadores, testar e otimizar em todas as situações, ou introduzir mecanismos para ajuste dinâmico de parâmetros para melhorar ainda mais a estabilidade e o efeito prático da estratégia.
/*backtest start: 2023-01-10 00:00:00 end: 2024-01-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("MA Turning Point Strategy", overlay=true) src = input(close, title="Source") price = request.security(syminfo.tickerid, timeframe.period, src) ma1 = input(25, title="1st MA Length") type1 = input("SMA", "1st MA Type", options=["SMA", "EMA"]) price1 = if (type1 == "SMA") sma(price, ma1) else ema(price, ma1) plot(series=price1, style=line, title="1st MA", color=blue, linewidth=2, transp=0) lookback1 = input(1, "Lookback 1") roc1 = roc(price1, lookback1) ma1up = false ma1down = false ma2up = false ma2down = false ma1up := nz(ma1up[1]) ma1down := nz(ma1down[1]) ma2up := nz(ma2up[1]) ma2down := nz(ma2down[1]) trendStrength1 = input(2.5, title="Minimum slope magnitude * 100", type=float) * 0.01 if crossover(roc1, trendStrength1) ma1up := true ma1down := false if crossunder(roc1, -trendStrength1) ma1up := false ma1down := true longCondition = ma1up and ma1down[1] if (longCondition) strategy.entry("Long", strategy.long) shortCondition = ma1down and ma1up[1] if (shortCondition) strategy.entry("Short", strategy.short)