A estratégia de seguimento de tendência de média móvel dupla calcula as médias móveis exponenciais duplas do preço para formar linhas rápidas e lentas. Identifica tendências de preço baseadas no cruzamento das duas linhas para implementar a estratégia de seguimento de tendência.
A estratégia primeiro calcula as médias móveis exponenciais duplas do preço, incluindo linhas rápidas e lentas. A linha rápida tem um período de 4, e a linha lenta tem um período de 8. Os sinais de negociação são gerados quando as duas linhas se cruzam. Quando a linha rápida cruza acima da linha lenta, um sinal de compra é gerado. Quando a linha rápida cruza abaixo da linha lenta, um sinal de venda é acionado. Além disso, a estratégia também calcula o indicador MACD para fornecer sinais de negociação adicionais. As barras vermelhas MACD divergentes são sinais de venda, enquanto as barras verdes convergentes são sinais de compra. Combinando o cruzamento de médias móveis duplas e o indicador MACD, a estratégia combina direções de tendência de preço para seguir a tendência da negociação.
Em primeiro lugar, esta estratégia negocia ao longo da tendência de preços para evitar custos de transação. Em segundo lugar, as médias móveis duplas filtram alguns ruídos de preços e capturam a tendência de preços sem problemas. Além disso, a otimização de parâmetros flexíveis das médias móveis e do MACD torna a estratégia adaptável a diferentes produtos e ambientes. Finalmente, a lógica simples e clara torna esta estratégia fácil de entender e implementar, adequada para o design de algoritmos de negociação quantitativos.
A estratégia depende fortemente da otimização de parâmetros. Configurações inadequadas de parâmetros podem gerar muitos sinais falsos. Além disso, a natureza atrasada das médias móveis duplas pode causar pontos de virada perdidos. As estratégias de tendência também são propensas a perseguir tendências de alta e matar tendências de baixa, o que representa certos riscos. Além disso, a liquidez dos produtos de negociação e os custos de transação também afetarão a lucratividade da estratégia. Para mitigar os riscos, os parâmetros podem ser otimizados, filtros adicionais podem ser adicionados e o dimensionamento da posição pode ser controlado.
Os seguintes aspectos da estratégia podem ser melhorados:
Otimizar os períodos das médias móveis duplas para encontrar a combinação ideal.
Adicionar outros indicadores como RSI e KD para filtrar sinais e melhorar a qualidade.
Incorporar estratégias de stop loss para sair das negociações em inversões de tendência.
Ajustar dinamicamente o tamanho das posições com base nas condições de mercado para controlar o risco.
Otimizar os parâmetros para diferentes produtos comerciais.
Incorporar estratégias avançadas como aprendizagem de máquina para melhorar o desempenho.
Em resumo, esta é uma estratégia simples de seguir uma tendência de média móvel dupla. A lógica da estratégia é direta e fácil de implementar. O ajuste flexível dos parâmetros torna-a adequada como uma estratégia de negociação quantitativa introdutória. No entanto, os riscos de perseguir tendências e atraso no sinal precisam ser abordados através de melhorias adicionais para melhorar a estabilidade e o controle de riscos.
/*backtest start: 2023-10-14 00:00:00 end: 2023-11-13 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 12/11/2017 // The SMI Ergodic Indicator is the same as the True Strength Index (TSI) developed by // William Blau, except the SMI includes a signal line. The SMI uses double moving averages // of price minus previous price over 2 time frames. The signal line, which is an EMA of the // SMI, is plotted to help trigger trading signals. Adjustable guides are also given to fine // tune these signals. The user may change the input (close), method (EMA), period lengths // and guide values. // You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect... // // WARNING: // - For purpose educate only //////////////////////////////////////////////////////////// strategy(title="SMI Ergodic Oscillator") fastPeriod = input(4, minval=1) slowPeriod = input(8, minval=1) SmthLen = input(3, minval=1) TopBand = input(0.5, step=0.1) LowBand = input(-0.5, step=0.1) reverse = input(false, title="Trade reverse") // hline(0, color=gray, linestyle=dashed) // hline(TopBand, color=red, linestyle=line) // hline(LowBand, color=green, linestyle=line) xPrice = close xPrice1 = xPrice - xPrice[1] xPrice2 = abs(xPrice - xPrice[1]) xSMA_R = ema(ema(xPrice1,fastPeriod),slowPeriod) xSMA_aR = ema(ema(xPrice2, fastPeriod),slowPeriod) xSMI = xSMA_R / xSMA_aR xEMA_SMI = ema(xSMI, SmthLen) pos = iff(xEMA_SMI < xSMI, -1, iff(xEMA_SMI > xSMI, 1, nz(pos[1], 0))) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) barcolor(possig == -1 ? red: possig == 1 ? green : blue ) plot(xSMI, color=green, title="Ergotic SMI") plot(xEMA_SMI, color=red, title="SigLin")