A estratégia de tendência cruzada da média móvel

Autora:ChaoZhang, Data: 2024-02-28 17:55:28
Tags:

img

Resumo

A estratégia de tendência de cruzamento de média móvel é uma estratégia de tendência baseada em sinais de cruzamento de média móvel.

Princípios

A estratégia usa o cruzamento do histograma MACD e da linha de sinal para identificar o início e o fim das tendências. Especificamente, ele constrói o histograma MACD com base na EMA rápida de 12 períodos e na EMA lenta de 26 períodos. Quando o histograma cruza acima da linha de sinal, um sinal de compra é gerado, indicando o início de uma tendência de alta. Quando o histograma cruza abaixo da linha de sinal, um sinal de venda é acionado, marcando o início de uma tendência de queda.

Para as entradas, a estratégia só dura quando um sinal de compra é gerado no gráfico de 15 minutos para capitalizar o estágio inicial dos começos da tendência.

Análise das vantagens

A maior vantagem desta estratégia é a sua capacidade de captar o início da tendência em tempo hábil e sair de sinais de reversão, alcançando boas taxas de risco-recompensação.

  1. Usar o MACD para a identificação da tendência é confiável com alta taxa de ganho
  2. A combinação de períodos de tempo de 15 minutos e 4 horas equilibra a frequência e o controlo do risco
  3. A suspensão oportuna das perdas limita efetivamente o levantamento máximo

Análise de riscos

Existem também alguns riscos, principalmente nos seguintes aspectos:

  1. O MACD pode gerar sinais falsos, causando entradas ou paradas desnecessárias
  2. O ponto de stop loss pode ser demasiado bruto para acomodar as flutuações do mercado
  3. A selecção inadequada dos parâmetros pode prejudicar a eficácia da estratégia

Para mitigar os riscos, podem ser realizadas otimizações em:

  1. Adição de filtros com outros indicadores para evitar sinais falsos
  2. Ajustes adaptativos dos pontos de stop loss
  3. Ajuste de parâmetros

Orientações de otimização

Os principais aspetos para otimizar ainda mais a estratégia incluem:

  1. Incorporar outros indicadores como RSI, Bollinger Bands para filtrar sinais
  2. Teste mais combinações de períodos rápidos e lentos para parâmetros ideais
  3. Utilize o aprendizado de máquina para treinar parâmetros ideais
  4. Otimizar as regras de stop loss com trailing ou paralisações parciais
  5. Expandir para mais quadros de tempo para combinações de vários quadros de tempo

Conclusão

Em geral, a estratégia de tendência de cruzamento de média móvel é um sistema simples e prático de acompanhamento de tendências. Capitaliza as tendências identificando começos e finais usando cruzamento do MACD e combinando posições de curto e longo prazo. As vantagens estão em suas entradas oportunas, paradas eficazes e equilíbrio de risco-recompensa.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Moving Average Convergence Divergence", shorttitle="MACD", overlay=true)

// Getting inputs
fast_length = input(title="Fast Length", defval=12)
slow_length = input(title="Slow Length", defval=26)
src = input(title="Source", defval=close)
signal_length = input.int(title="Signal Smoothing", minval=1, maxval=50, defval=9)
sma_source = input.string(title="Oscillator MA Type", defval="EMA", options=["SMA", "EMA"])
sma_signal = input.string(title="Signal Line MA Type", defval="EMA", options=["SMA", "EMA"])

// Calculating MACD
fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length)
macd = fast_ma - slow_ma
signal_line = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)

// Entry conditions
longCondition = macd < 0 and ta.crossover(macd, signal_line) 
shortCondition = ta.crossover(signal_line, macd) 

// Plot signals
plotshape(series=longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")
plotshape(series=shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")

// Strategy
if (longCondition)
    strategy.entry("Long", strategy.long)
if (shortCondition)
    strategy.entry("Short", strategy.short)


Mais.