Estratégia de persistência de crossover MACD de vários fusos horários combinada com filtro de tendência EMA

MACD EMA
Data de criação: 2025-02-21 10:11:34 última modificação: 2025-02-27 17:17:57
cópia: 1 Cliques: 366
2
focar em
319
Seguidores

Estratégia de persistência de crossover MACD de vários fusos horários combinada com filtro de tendência EMA Estratégia de persistência de crossover MACD de vários fusos horários combinada com filtro de tendência EMA

Visão geral

A estratégia é um sistema de negociação multi-zona de tempo baseado no MACD e nas médias móveis. Combina o MACD com dois períodos de tempo de 1 minuto e 3 minutos, enquanto usa o EMA de 200 ciclos como um filtro de tendência para negociar, capturando a continuidade das tendências do mercado. A estratégia contém um mecanismo de gerenciamento de risco, incluindo a configuração de stop loss e a função de ajuste dinâmico do movimento para o ponto de referência.

Princípio da estratégia

A lógica central da estratégia é baseada nos seguintes elementos-chave:

  1. O indicador MACD, com dois períodos de tempo de 1 minuto e 3 minutos, é usado para confirmar a continuidade da tendência
  2. EMA de 200 ciclos como base para a principal tendência
  3. Filtração de sinais de negociação em combinação com a relação entre preço e posição da linha média
  4. Negociação com base no filtro do período de negociação

As regras específicas de geração de sinais de negociação são as seguintes:

  • Sinais de múltiplas cabeças: a linha MACD está acima da linha zero e atravessa a linha de sinal para cima, enquanto a MACD confirma a tendência por 3 minutos, com o preço acima da EMA200
  • Sinal de cabeça vazia: a linha MACD está abaixo da linha zero e atravessa a linha de sinal para baixo, ao mesmo tempo em que o MACD confirma a tendência por 3 minutos, com o preço abaixo da EMA200

Vantagens estratégicas

  1. Confirmação de múltiplos períodos de tempo aumenta a precisão das transações
  2. Combinação de filtros de tendências para reduzir os falsos sinais
  3. Inclui mecanismos de controlo de riscos
  4. O uso de filtros de tempo evita transações em períodos de inatividade
  5. O ajustamento dinâmico do ponto de garantia protege os lucros obtidos
  6. Uma lógica de estratégia clara para ajuste e otimização

Risco estratégico

  1. Risco de deslizamento em mercados altamente voláteis
  2. O mecanismo de confirmação múltipla pode levar a oportunidades de negociação perdidas
  3. O ponto de parada fixo pode não ser suficientemente flexível em certos cenários de mercado
  4. É preciso considerar o impacto dos custos de transação nos retornos da estratégia
  5. A tendência é de que os investidores se encontrem em um momento de forte volatilidade nos mercados.

Sugestões de controle de risco:

  • Ajustar a distância de parada de acordo com as flutuações do mercado
  • Considere aumentar as metas de lucro para garantir lucro
  • Suspensão de transações durante a divulgação de dados econômicos importantes
  • Avaliação periódica e ajuste dos parâmetros da estratégia

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

  1. Parâmetros MACD de ajuste dinâmico:
  • Adaptação à volatilidade do mercado
  • Considere usar uma média móvel adaptativa
  1. Melhorias no filtro de tempo:
  • Divisão do tempo para refinar a transação
  • Combinação de análise de volume para otimizar o tempo de negociação
  1. Mecanismo de stop loss otimizado:
  • Introdução do stop loss dinâmico
  • Distância de parada baseada em ATR
  1. Filtragem de tendências:
  • Adicionar mais confirmação de indicadores técnicos
  • Considerar a introdução de análise de comportamento de preços

Resumir

A estratégia, através da combinação de indicadores MACD de períodos múltiplos e filtros de tendência EMA, constrói um sistema de negociação relativamente perfeito. Sua vantagem reside na integridade do mecanismo de confirmação múltipla e da gestão de risco, mas também precisa prestar atenção às questões de adaptabilidade em diferentes ambientes de mercado. Através da orientação de otimização recomendada, a estratégia espera aumentar ainda mais a capacidade de rendimento, mantendo sua estabilidade.

Código-fonte da estratégia
/*backtest
start: 2025-02-13 00:00:00
end: 2025-02-15 02:00:00
period: 5m
basePeriod: 5m
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("NQ MACD Continuation Backtest", overlay=true)

// MACD Settings
fastLength = 12
slowLength = 26
signalLength = 9

// 1-minute MACD
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalLength)

// 3-minute MACD for trend filter
[htfMacd, htfSignal, _] = request.security(syminfo.tickerid, "3", ta.macd(close, fastLength, slowLength, signalLength), lookahead=barmerge.lookahead_on)

// 200 EMA
ema200 = ta.ema(close, 200)

// Time Filters
inSession = (hour(time, "America/New_York") >= 9 and (hour(time, "America/New_York") > 9 or minute(time, "America/New_York") >= 45)) and (hour(time, "America/New_York") < 22 or (hour(time, "America/New_York") == 22 and minute(time, "America/New_York") == 30))
notRestricted = (hour(time, "America/New_York") >= 6 and hour(time, "America/New_York") < 22)

// Track Previous MACD Crosses
var bool bullishCrossed = false
var bool bearishCrossed = false
if (ta.crossover(macdLine, signalLine) and macdLine > 0)
    bullishCrossed := true
if (ta.crossunder(macdLine, signalLine) and macdLine < 0)
    bearishCrossed := true

// Define Continuation Signals with EMA and 3-Min MACD Filter
bullishContinuation = (ta.crossover(macdLine, signalLine) and macdLine > 0 and signalLine > 0 and htfMacd > htfSignal and bullishCrossed and close > ema200)
bearishContinuation = (ta.crossunder(macdLine, signalLine) and macdLine < 0 and signalLine < 0 and htfMacd < htfSignal and bearishCrossed and close < ema200)

// Entry Conditions with SL and 10 Contracts
if (bullishContinuation and inSession and notRestricted)
    strategy.entry("Long", strategy.long, qty=10, stop=close - 7 * syminfo.mintick)
if (bearishContinuation and inSession and notRestricted)
    strategy.entry("Short", strategy.short, qty=10, stop=close + 7 * syminfo.mintick)

// Break-Even Adjustment
if (strategy.position_size > 0 and close >= strategy.position_avg_price + 5 * syminfo.mintick)
    strategy.exit("BreakEvenLong", from_entry="Long", stop=strategy.position_avg_price)
if (strategy.position_size < 0 and close <= strategy.position_avg_price - 5 * syminfo.mintick)
    strategy.exit("BreakEvenShort", from_entry="Short", stop=strategy.position_avg_price)

// Display Indicators on Chart
plot(macdLine, color=color.blue, title="MACD Line")
plot(signalLine, color=color.orange, title="Signal Line")
plot(ema200, color=color.red, title="200 EMA")