Estratégia de acompanhamento da tendência de convergência da média móvel dupla

Autora:ChaoZhang, Data: 2023-12-28 17:24:53
Tags:

img

Resumo

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.

Princípio

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.

Vantagens

  1. A confirmação dupla evita falhas, garantindo a entrada no início da tendência.

  2. A MA de 200 dias filtra transacções errôneas durante as flutuações do mercado.

  3. Stop loss definido para limitar a perda máxima.

  4. Parâmetros personalizáveis, como comprimentos MA, nível de stop loss, etc., para se adaptarem a diferentes produtos.

  5. Lógica simples e clara, fácil de entender e otimizar.

Riscos

  1. O acompanhamento da tendência a longo prazo não consegue captar oportunidades a curto prazo.

  2. O efeito de rastreamento depende das configurações dos parâmetros.

  3. A configuração de stop loss pode ser demasiado frouxa ou demasiado apertada, aumentando a perda ou interrompendo prematuramente.

  4. Os longos períodos de detenção levam a uma certa pressão sobre o capital.

Optimização

  1. Otimizar o parâmetro de comprimentos MA para a melhor combinação de parâmetros.

  2. Adicionar outros indicadores como KDJ para julgamento auxiliar.

  3. Otimizar as estratégias de stop loss, como paradas de aperto, paradas de atraso, etc.

  4. Ajustar os parâmetros de MA com base no produto e no prazo.

  5. Adicione um filtro de volume para evitar sinais falsos.

Conclusão

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)

Mais.