A estratégia de rastreamento de tendências de convergência de médias móveis duplas calcula linhas médias móveis rápidas, lentas e superlentas, combinadas com o indicador MACD para determinar a direção da tendência de preços e implementar transações de rastreamento de tendências.
A estratégia primeiro calcula a média móvel rápida de 12 dias, a média móvel lenta de 26 dias e a média móvel superlenta de 200 dias. Quando a média móvel rápida cruza acima da lenta, ocorre uma cruz de ouro, indicando um mercado de touros. Quando a cruz rápida cruza abaixo da lenta, ocorre uma cruz morta, indicando um mercado de ursos.
A estratégia também usa o indicador MACD para determinar a direção da tendência. O MACD consiste em linhas rápidas, linhas lentas e barras MACD. Quando a linha rápida cruza acima da linha lenta, é um sinal de alta e quando cruza abaixo é de baixa. Combinado com a média móvel de longo prazo para filtrar falsos sinais, somente quando a linha rápida quebra a linha lenta, a barra MACD se transforma de negativa para positiva e o preço fica acima da MA de 200 dias, desencadeando o sinal longo. Somente quando a linha rápida quebra a linha lenta, a barra MACD se transforma de positiva para negativa e o preço cai abaixo da MA de 200 dias, desencadeando o sinal curto.
Com a confirmação dupla do sistema de médias móveis e do indicador MACD, podem evitar-se falhas e garantir-se a entrada no início da tendência.
A confirmação dupla evita falhas, garantindo a entrada no início da tendência.
A MA de 200 dias filtra transacções errôneas durante as flutuações do mercado.
Stop loss definido para limitar a perda máxima.
Parâmetros personalizáveis, como comprimentos MA, nível de stop loss, etc., para se adaptarem a diferentes produtos.
Lógica simples e clara, fácil de entender e otimizar.
O acompanhamento da tendência a longo prazo não consegue captar oportunidades a curto prazo.
O efeito de rastreamento depende das configurações dos parâmetros.
A configuração de stop loss pode ser demasiado frouxa ou demasiado apertada, aumentando a perda ou interrompendo prematuramente.
Os longos períodos de detenção levam a uma certa pressão sobre o capital.
Otimizar o parâmetro de comprimentos MA para a melhor combinação de parâmetros.
Adicionar outros indicadores como KDJ para julgamento auxiliar.
Otimizar as estratégias de stop loss, como paradas de aperto, paradas de atraso, etc.
Ajustar os parâmetros de MA com base no produto e no prazo.
Adicione um filtro de volume para evitar sinais falsos.
A estratégia de rastreamento de tendências de convergência de MA dupla julga a direção da tendência calculando múltiplos sistemas de MA e usa o filtro MACD. Suas vantagens são lógica simples e clara, riscos controláveis, adequados para rastreamento de tendências. Pode ser melhorada por otimização de parâmetros, otimização de stop loss, adição de indicadores auxiliares, etc. Uma estratégia de rastreamento de tendências recomendada.
/*backtest start: 2022-12-21 00:00:00 end: 2023-12-27 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Trend Strategy", shorttitle="TSTrend Strategy", overlay=true) // Trend Strategy // If the inverse logic is true, the strategy // goes short. For the worst case there is a // max intraday equity loss of 50% filter. // Input source = input(close) fastLength = input(12, minval=1, title="MACD fast moving average") slowLength=input(26,minval=1, title="MACD slow moving average") signalLength=input(9,minval=1, title="MACD signal line moving average") veryslowLength=input(200,minval=1, title="Very slow moving average") switch1=input(true, title="Enable Bar Color?") switch2=input(true, title="Enable Moving Averages?") switch3=input(true, title="Enable Background Color?") // Calculation fastMA = sma(source, fastLength) slowMA = sma(source, slowLength) veryslowMA = sma(source, veryslowLength) macd = fastMA - slowMA signal = sma(macd, signalLength) hist = macd - signal // Colors MAtrendcolor = change(veryslowMA) > 0 ? green : red trendcolor = fastMA > slowMA and change(veryslowMA) > 0 and close > slowMA ? green : fastMA < slowMA and change(veryslowMA) < 0 and close < slowMA ? red : blue bartrendcolor = close > fastMA and close > slowMA and close > veryslowMA and change(slowMA) > 0 ? green : close < fastMA and close < slowMA and close < veryslowMA and change(slowMA) < 0 ? red : blue backgroundcolor = slowMA > veryslowMA and crossover(hist, 0) and macd > 0 and fastMA > slowMA and close[slowLength] > veryslowMA ? green : slowMA < veryslowMA and crossunder(hist, 0) and macd < 0 and fastMA < slowMA and close[slowLength] < veryslowMA ? red : na bgcolor(switch3?backgroundcolor:na,transp=80) barcolor(switch1?bartrendcolor:na) // Output F=plot(switch2?fastMA:na,color=trendcolor) S=plot(switch2?slowMA:na,color=trendcolor,linewidth=2) V=plot(switch2?veryslowMA:na,color=MAtrendcolor,linewidth=4) fill(F,V,color=gray) // Strategy buyprice = low sellprice = high cancelLong = slowMA < veryslowMA cancelShort = slowMA > veryslowMA if (cancelLong) strategy.cancel("MACDLE") if crossover(hist, 0) and macd > 0 and fastMA > slowMA and close[slowLength] > veryslowMA strategy.entry("MACDLE", strategy.long, stop=buyprice, comment="Bullish") if (cancelShort) strategy.cancel("MACDSE") if crossunder(hist, 0) and macd < 0 and fastMA < slowMA and close[slowLength] < veryslowMA strategy.entry("MACDSE", strategy.short, stop=sellprice, comment="Bearish") // maxIdLossPcnt = input(50, "Max Intraday Loss(%)", type=float) // strategy.risk.max_intraday_loss(maxIdLossPcnt, strategy.percent_of_equity) //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)