Estratégia de Crossover de Média Móvel Dinâmica e MACD


Data de criação: 2024-02-06 14:29:23 última modificação: 2024-02-06 14:29:23
cópia: 0 Cliques: 747
1
focar em
1617
Seguidores

Estratégia de Crossover de Média Móvel Dinâmica e MACD

Visão geral

A estratégia determina a entrada e a saída do mercado através do cálculo da intersecção entre a linha rápida (EMA), a linha lenta (EMA) e a linha lenta (EMA), em combinação com a intersecção do eixo zero do MACD. É uma estratégia dinâmica que utiliza os indicadores de EMA e MACD para tomar decisões de negociação.

Princípio da estratégia

A estratégia é baseada em dois indicadores de análise técnica:

  1. EMA linha média de cruzamento. Julgar a tendência de cruzamento através da linha rápida EMA (3), EMA (11) e EMA (18) e servir como sinal de entrada e saída.

  2. O indicador MACD e sua cruz zero. O MACD é composto por diferença de desvio ((DIFF) e DEA. O DIFF é a linha rápida (EMA) (3) menos a linha lenta (EMA) (11) composta por DEA (EMA) do MACD (27). O MACD> 0 indica a multiplicação e o MACD < 0 indica a vazia.

De acordo com a combinação de cruzamentos EMA e cruzamentos MACD zero-axial, três chances de entrada e duas chances de saída são definidas:

  1. MACD acima do eixo zero e cruzando para cima pela primeira vez para fazer mais oportunidades
  2. A linha rápida EMA ((3) atravessa a linha lenta EMA ((11) para fazer mais chances pela segunda vez
  3. A linha rápida EMA ((3) atravessa a linha lenta EMA ((18) fazendo mais chances para a terceira posição cheia
  4. Linha rápida EMA ((3) abaixo da linha lenta EMA ((11) para a primeira oportunidade de liquidação
  5. O MACD está abaixo do eixo zero e cruza para baixo para a segunda oportunidade de liquidação

Em geral, a estratégia integra um sistema de duplo cruzamento EMA e indicadores MACD, que pode melhorar a rentabilidade da estratégia através do ajuste dinâmico dos parâmetros da linha média e dos parâmetros MACD.

Vantagens estratégicas

  1. Utilizando as vantagens do cruzamento de linha média da EMA e do indicador MACD, o julgamento de duplo indicador é integrado, aumentando a precisão.

  2. Configure três oportunidades de multiplicação e duas oportunidades de liquidação para aumentar a frequência de negociação da estratégia e expandir o espaço de lucro.

  3. O espaço para otimização de parâmetros dinâmicos é grande. O EMA de linha rápida, o EMA de linha lenta, o EMA de eixo zero e o MACD podem ser ajustados de forma otimizada.

  4. A lógica da estratégia é clara e fácil de entender, facilitando a inicialização e otimização.

Risco estratégico

  1. O cruzamento da EMA com o MACD pode gerar uma certa taxa de falsidade, o que pode levar a perdas desnecessárias.

  2. A frequência de negociação é alta, o stop loss é pequeno e o risco de perda é acumulado.

  3. Os parâmetros são difíceis de otimizar, e se não for otimizado corretamente, pode ser difícil de se ajustar aos dados históricos.

  4. O custo de transação deve ser levado em consideração.

Para os riscos:

  1. Estabelecer um limite razoável de perdas para minimizar perdas individuais.

  2. Ajustar os parâmetros de forma apropriada para evitar a sobre-ajuste.

  3. Considere os impactos de custos, como a redução da frequência das transações.

Direção de otimização da estratégia

  1. Substituição por outros testes de indicadores: como a faixa de Brin, KDJ, etc.

  2. Optimizar os parâmetros do cruzamento da linha média do EMA: alterar os parâmetros de comprimento do EMA de linha rápida e do EMA de linha lenta.

  3. Parâmetros para otimizar o MACD: alterar o DIFF do MACD e o DEA para calcular o EMA.

  4. Aumentar as estratégias de stop loss: como o número de transações de stop loss, o tempo de stop loss, o stop loss móvel, etc.

  5. O custo de transação deve ser levado em consideração e o número de entradas ajustado.

Resumir

Esta estratégia, através da combinação do sistema de cruzamento duplo EMA e indicadores MACD, constrói uma estratégia de parâmetros dinâmicos de alta frequência de negociação e potencial de lucro. Ao mesmo tempo, a lógica da estratégia é simples e clara, fácil de entender e ajustar para otimizar. Mas também há um certo risco de erro de notificação e dificuldade de otimização de parâmetros, o que precisa ser respondido por métodos como parada razoável e prevenção de overfitting.

Código-fonte da estratégia
/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-05 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("MACD+EMA crossovers Strategy custom",initial_capital=10000,max_bars_back=150,commission_type=strategy.commission.percent , commission_value=0.1, shorttitle="MACD+EMAcross",pyramiding = 10,default_qty_type=strategy.percent_of_equity,default_qty_value=33,overlay=false)

short = ema(close,3)
long = ema(close, 11)
long2 = ema(close, 18)
//plot(short, color = red, linewidth = 4)
//plot(long, color = blue, linewidth = 4)
//plot(long2, color = green, linewidth = 4)

isCross1 = crossover(short, long)
isCross2 = crossover(short, long2)
isCrossSell = crossunder(short, long)
//isCross3 = crossover(long, long2)

//plotshape(isCross1 and not isCross2, color=lime, style=shape.arrowup, text="1st in",size = size.tiny, location = location.belowbar)
//plotshape(isCross2 , color=lime, style=shape.arrowup, text="2nd in",size = size.tiny, location = location.belowbar)

//plotshape(isCross3 , color=lime, style=shape.arrowdown, text="All in",size = size.normal, location = location.abovebar)

//plotshape(isCrossSell , color=red, style=shape.arrowdown, text="SELL",size = size.small, location = location.abovebar)

fastLength = input(3)
slowlength = input(11)
MACDLength = input(27)

MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength) //signal
delta = MACD - aMACD // histograma

strategy.entry("MacdLE 1st in", strategy.long, comment="MacdLE 1st in",when=crossover(delta, 0))

strategy.entry("2nd in", strategy.long, comment="2nd in",when=isCross1)

strategy.entry("all in", strategy.long, comment="all in",when=isCross2)

strategy.close("2nd in",when=isCrossSell) 
strategy.close("all in",when=isCrossSell)
//strategy.close("2nd in",when=crossunder(delta, 0)) 
//strategy.close("all in",when=crossunder(delta, 0))
strategy.close("MacdLE 1st in",when=crossunder(delta, 0)) 
    
histColour = (delta > 0) ? green : (delta < 0) ? red :  #4169E1
    
plot(MACD,color=red,linewidth=2)
plot(aMACD,color=blue,linewidth=2)
plot(delta,style=histogram, color=histColour, linewidth=10)
plot(0,color=white)