Estratégia Golden Cross e Dead Cross MACD e EMA


Data de criação: 2023-12-28 15:22:14 última modificação: 2023-12-28 15:22:14
cópia: 2 Cliques: 972
1
focar em
1621
Seguidores

Estratégia Golden Cross e Dead Cross MACD e EMA

Visão geral

A estratégia julga entradas e saídas por meio do cálculo do cruzamento entre a linha rápida e a linha lenta do indicador MACD. Ao mesmo tempo, o indicador EMA julga a direção da tendência. Faça mais quando a linha rápida quebra a linha lenta por baixo e o valor do MACD é inferior a zero; faça zero quando a linha rápida quebra a linha lenta por cima e o valor do MACD é superior a zero.

Princípio da estratégia

Quando a linha rápida do MACD quebra a linha lenta de baixo e o valor do MACD é inferior a 0, indica que a média móvel de curto prazo do preço da ação começa a subir e o movimento começa a aumentar, pode ser comprado. Quando a linha rápida do MACD quebra a linha lenta de cima e o valor do MACD é superior a 0, indica que a média móvel de curto prazo do preço da ação começa a cair e o movimento começa a enfraquecer e pode ser vendido.

O indicador da EMA determina a direção da tendência geral. Quando o valor da EMA é alto, é uma tendência ascendente, e quando o valor é baixo, é uma tendência descendente. A estratégia é apenas fazer mais quando a EMA é uma tendência ascendente, e abrir espaço quando a EMA é uma tendência descendente, evitando a negociação contracorrente.

O modo de parada é o valor do EMA quando o sinal é produzido. O EMA é um bom juiz de tendências, configurado como um valor do EMA pode reduzir a probabilidade de o stop-loss ser atingido pelo ponto baixo ou alto do período anterior. A parada é configurada como 2 vezes o ponto de entrada, com um risco de ganho de 2%.

Análise de vantagens

Esta estratégia combina o indicador MACD com o indicador EMA, permitindo melhor julgar o momento de entrada e a direção da tendência. O método de parada de perda é razoável, evitando a caça à queda. A relação de risco de ganho é de 2, pertencente a um parâmetro mais conservador. Os parâmetros do indicador MACD são ajustáveis e podem ser adaptados de forma flexível às mudanças do mercado.

Análise de Riscos

Os indicadores MACD apresentam um atraso de avraging, e as reviravoltas dos indicadores geralmente atrasam as reviravoltas dos preços. A estratégia não pode determinar pontos de entrada específicos e há uma certa cegueira. O stop loss é facilmente acionado por situações de choque. O stop loss pode ser acionado antecipadamente ou com atraso.

Direção de otimização

  1. Optimizar os parâmetros do indicador MACD para torná-lo mais sensível ou estável.
  2. Em combinação com outros indicadores para determinar o momento de entrada, determinar pontos de entrada mais precisos.
  3. Ajuste dinâmico do parâmetro de parada de perda.
  4. Optimizar a gestão de fundos e determinar o tamanho de posição mais adequado.

Resumir

A estratégia utiliza o indicador MACD e o indicador EMA para determinar o momento de entrada e a direção da tendência. O método de parada de perda simples e razoável é usado. A estratégia pode ser otimizada ainda mais para o atraso do indicador MACD, o parâmetro de parada de perda, etc., para obter melhores resultados.

Código-fonte da estratégia
/*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=5
strategy("MACD & EMA 200 Strategy", overlay=true)

// MACD Settings
fastLength = input(12, title="Fast Length")
slowLength = input(26, title="Slow Length")
signalLength = input(9, title="Signal Length")
src = close

[macdLine, signalLine, _] = ta.macd(src, fastLength, slowLength, signalLength)

// 200 EMA
ema200 = ta.ema(src, 200)
plot(ema200, title="200 EMA", color=color.red)

// Long Condition
longCondition = ta.crossover(macdLine, signalLine) and macdLine < 0 and close > ema200
if (longCondition and strategy.position_size <= 0)
    strategy.entry("Long", strategy.long)
    longStopLoss = ema200
    longTakeProfit = close + 2 * (close - ema200)
    strategy.exit("Exit Long", "Long", stop=longStopLoss, limit=longTakeProfit)

// Short Condition
shortCondition = ta.crossunder(macdLine, signalLine) and macdLine > 0 and close < ema200
if (shortCondition and strategy.position_size <= 0)
    strategy.entry("Short", strategy.short)
    shortStopLoss = ema200
    shortTakeProfit = close - 2 * (ema200 - close)
    strategy.exit("Exit Short", "Short", stop=shortStopLoss, limit=shortTakeProfit)