Uma estratégia de cruzamento de média móvel de inversão de impulso oscilante

Autora:ChaoZhang, Data: 21-12-2023 11:21:49
Tags:

img

Resumo

Esta estratégia é uma estratégia de reversão de momento baseada no indicador MACD. Ela gera o indicador MACD calculando a diferença entre as linhas médias móveis rápidas e lentas. Quando o indicador MACD passa de positivo para negativo, um sinal de venda é gerado. Quando o indicador MACD passa de negativo para positivo, um sinal de compra é gerado. Esta estratégia também incorpora a linha de sinal do indicador MACD para suavização adicional para filtrar alguns sinais de negociação barulhentos.

Princípio da estratégia

O indicador central desta estratégia é o MACD, que consiste em média móvel rápida, média móvel lenta e linha de sinal. Primeiro, a EMA rápida com um período de 12 dias e a EMA lenta com um período de 26 dias são calculadas, em seguida, a diferença entre elas é calculada como o indicador MACD. O indicador MACD reflete a tendência de mudanças de preços com base no conceito de impulso. Quando a EMA rápida sobe mais rápido do que a EMA lenta, indica uma tendência ascendente do preço, e o MACD é positivo.

Para filtrar o ruído, esta estratégia introduz um indicador de linha de sinal para suavizar o MACD adicionalmente. O parâmetro da linha de sinal é definido em EMA de 9 dias. Finalmente, a diferença entre o MACD e a linha de sinal é calculada como sinais de negociação. Quando a diferença muda de positiva para negativa, um sinal de venda é gerado. Quando a diferença muda de negativa para positiva, um sinal de compra é gerado.

Análise das vantagens

As principais vantagens desta estratégia são:

  1. Usando o indicador MACD para determinar pontos de reversão de preços, pode capturar oportunidades de reversão de curto prazo dos preços das ações.

  2. A incorporação de suavização de linha de sinal filtra alguns sinais comerciais ruidosos e reduz os falsos sinais.

  3. As configurações flexíveis dos parâmetros permitem aos operadores ajustar os parâmetros de acordo com as condições reais do mercado.

  4. A lógica é simples e clara, fácil de compreender e implementar, adequada para iniciantes a aprender e a pesquisar.

  5. Diversas combinações de indicadores e sinais proporcionam uma ampla margem de manobra para a otimização da estratégia e uma forte escalabilidade.

Análise de riscos

Esta estratégia apresenta também alguns riscos:

  1. O acompanhamento de reversões de curto prazo pode aumentar a frequência das negociações e os custos de transação.

  2. O indicador MACD pode facilmente gerar falsos sinais durante as subidas ou quedas unilaterais de preços a longo prazo.

  3. A geração de sinal atrasada devido a configurações de parâmetros inadequadas pode perder o melhor ponto de entrada.

  4. Esta estratégia relativamente simples pode ter um desempenho inferior em condições de mercado complexas.

Para mitigar os riscos acima referidos, podem ser realizadas as seguintes melhorias:

  1. Otimizar os parâmetros para reduzir a frequência de negociação, por exemplo, aumentar o ciclo da linha de sinal.

  2. Adicionar condições de filtragem para evitar ser preso durante tendências de longo prazo, por exemplo, combinar outros indicadores de rastreamento para determinar tendências de longo e curto prazo.

  3. Usar ordens de limite para rastrear preços ideais.

  4. Adicionar mais fatores para determinar as condições do mercado e evitar negociações em mercados anormais.

Orientações de otimização

A estratégia pode ser otimizada nos seguintes aspectos:

  1. Otimizar os parâmetros MACD e os parâmetros da linha de sinal para encontrar a melhor combinação de parâmetros.

  2. Adicionar outros indicadores auxiliares para determinar tendências a longo e curto prazo e evitar negociações contra tendências, por exemplo, média móvel, bandas de Bollinger, etc.

  3. Incorporar indicadores de volume de negociação, tais como "On Balance Volume", para evitar falhas.

  4. Estabelecer parâmetros de acordo com diferentes características dos estoques para tornar a estratégia mais adaptável.

  5. Adicionar configurações de preço de stop loss e take profit para controlar os níveis de perda e lucro individuais.

  6. Avaliar os fatores de qualidade das ações, como métricas financeiras, alterações de notação, etc., e selecionar o conjunto de ações ideal.

Estas medidas de otimização podem melhorar a estabilidade, a taxa de ganho e o nível de lucro da estratégia e também estabelecem as bases para o desenvolvimento e melhoria contínuos da estratégia.

Resumo

Esta é uma estratégia de negociação de reversão de curto prazo típica. Ele usa indicadores MACD simples e claros para refletir mudanças no impulso das ações e linhas de sinal para determinar pontos de entrada específicos. Com configurações de parâmetros adequadas, ele pode aproveitar oportunidades de reversão de preços de curto prazo para obter retornos excessivos.

Naturalmente, qualquer indicador único e estratégia simples dificilmente pode se adaptar perfeitamente a várias condições complexas do mercado. Os investidores devem prestar atenção aos riscos e escolher estratégias de acordo com suas próprias condições e apetite pelo risco. Enquanto isso, eles também devem manter um olho nas condições do mercado, otimizar parâmetros de estratégia e regras de negociação. Somente através da aprendizagem e melhoria contínua é possível obter retornos de investimento estáveis a longo prazo.


/*backtest
start: 2023-11-20 00:00:00
end: 2023-12-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//study(title="MACD Strategy by Sedkur", shorttitle="MACD Strategy by Sedkur")
strategy (title="MACD Strategy by Sedkur", shorttitle="MACD Strategy by Sedkur")


// Getting inputs
dyear = input(title="Year", type=input.integer, defval=2017, minval=1950, maxval=2500)
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
buyh = input(title="Buy histogram value", type=input.float, defval=0.0, minval=-1000, maxval=1000, step=0.1)
sellh = input(title="Sell histogram value", type=input.float, defval=0.0, minval=-1000, maxval=1000, step=0.1)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)

// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00

// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal

plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 )
plot(macd, title="MACD", color=col_macd, transp=0)
plot(signal, title="Signal", color=col_signal, transp=0)

strategy.entry("buy", strategy.long, comment="buy", when = hist[1] <= hist and buyh<=hist and year>=dyear)
strategy.entry("sell", strategy.short, comment="sell", when = hist[1] >= hist and sellh>=hist and year>=dyear)


Mais.