Estratégia de risco adaptável baseada em cruzamento de tendência de média móvel dupla combinada com filtro de momentum ADX

EMA ADX ATR DMI RR
Data de criação: 2025-02-18 16:21:02 última modificação: 2025-02-18 16:21:02
cópia: 0 Cliques: 389
1
focar em
1617
Seguidores

Estratégia de risco adaptável baseada em cruzamento de tendência de média móvel dupla combinada com filtro de momentum ADX

Visão geral

A estratégia é um sistema de negociação que combina julgamento de tendência de dupla equilíbrio, filtragem de volume ADX e gerenciamento de risco adaptativo. A estratégia usa a média móvel indexada de 50 e 200 ciclos (EMA) como base para julgamento de tendência, confirma a dinâmica através dos indicadores ADX e DMI e ajusta os objetivos de parada e ganho de acordo com a dinâmica ATR.

Princípio da estratégia

A lógica central da estratégia é dividida em três partes:

  1. Julgamento de tendência: Use a relação de posição dos EMAs de 50 e 200 para determinar a direção da tendência atual, sendo o EMA50 uma tendência ascendente acima do EMA200, ao contrário da tendência descendente.
  2. Confirmação de dinâmica: Confirmação da força da tendência usando os indicadores ADX e DMI, exigindo que o ADX seja maior do que o limiar definido (default 25) e que o DI+ seja maior do que o DI- para confirmar a tendência ascendente e, ao contrário, a tendência descendente.
  3. Tempo de entrada: após a confirmação da tendência, o preço cruza com o EMA50 como sinal de entrada específico, o cruzamento para cima faz mais, o cruzamento para baixo faz menos.

Vantagens estratégicas

  1. Mecanismos de confirmação múltipla: reduzir os sinais falsos através da confirmação múltipla de tendências e dinâmicas.
  2. Gerenciamento de risco adaptativo: o uso do ATR para ajustar dinamicamente as posições de parada para que o gerenciamento de risco seja mais adequado às características de flutuação do mercado.
  3. Otimização do risco-benefício: assegure que as expectativas de lucro de cada transação sejam razoáveis através do risco-benefício previsto.
  4. Suporte de visualização: A estratégia fornece uma visualização gráfica completa, incluindo linhas de tendência, posições de stop loss e sinais de negociação.

Risco estratégico

  1. Atraso na reversão de tendência: devido ao uso de linhas médias de períodos mais longos, pode haver um certo atraso na reversão de tendência.
  2. Mercado de vibração não é válido: em mercados de vibração horizontal, pode haver frequentes falsos sinais.
  3. Sensibilidade dos parâmetros: a eficácia da estratégia é sensível às configurações dos parâmetros, e os parâmetros podem precisar ser ajustados em diferentes ambientes de mercado.

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

  1. Adaptação ao ambiente de mercado: pode ser adicionada lógica de julgamento do ambiente de mercado, ajustando dinamicamente os parâmetros em diferentes ambientes de flutuação.
  2. Aumento de filtragem de sinais: pode ser introduzido o volume de tráfego ou outros indicadores técnicos como condição de filtragem auxiliar.
  3. Optimização de stop loss: pode ser considerado o uso de estratégias de stop loss de rastreamento ou de stop loss combinado, aumentando a flexibilidade de gerenciamento de risco.
  4. Construção de armazéns por lotes: pode implementar mecanismos de entrada e saída por lotes, otimizando a gestão de fundos.

Resumir

Trata-se de uma estratégia de acompanhamento de tendências de estrutura completa e lógica clara, que permite a geração de sinais de negociação e controle de risco mais confiáveis através da utilização de múltiplos indicadores técnicos. A estratégia é altamente escalável e tem um grande espaço de otimização.

Código-fonte da estratégia
/*backtest
start: 2025-02-10 00:00:00
end: 2025-02-17 00:00:00
period: 3m
basePeriod: 3m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("XAUUSD 15m Trend Strategy", overlay=true, margin_long=100, margin_short=100)

// Input parameters
emaFast = input.int(50, "Fast EMA Period", minval=1)
emaSlow = input.int(200, "Slow EMA Period", minval=1)
adxThreshold = input.int(25, "ADX Threshold", minval=1)
lookback = input.int(5, "Swing Lookback Period", minval=1)
riskReward = input.float(1.5, "Risk Reward Ratio", minval=1.0)

// Calculate indicators
ema50 = ta.ema(close, emaFast)
ema200 = ta.ema(close, emaSlow)
[diPlus, diMinus, adx] = ta.dmi(14, 14)
atr = ta.atr(14)

// Trend conditions
uptrend = ema50 > ema200 and adx >= adxThreshold and diPlus > diMinus
downtrend = ema50 < ema200 and adx >= adxThreshold and diMinus > diPlus

// Entry conditions
longCondition = uptrend and ta.crossover(close, ema50)
shortCondition = downtrend and ta.crossunder(close, ema50)

// Calculate risk levels
longStop = ta.lowest(low, lookback) - atr * 0.5
longProfit = close + (close - longStop) * riskReward
shortStop = ta.highest(high, lookback) + atr * 0.5
shortProfit = close - (shortStop - close) * riskReward

// Execute trades
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("Exit Long", "Long", stop=longStop, limit=longProfit)

if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("Exit Short", "Short", stop=shortStop, limit=shortProfit)

// Plotting
plot(ema50, "EMA 50", color=color.blue)
plot(ema200, "EMA 200", color=color.orange)
plot(strategy.position_size > 0 ? longStop : na, "Long Stop", color=color.red, style=plot.style_linebr)
plot(strategy.position_size > 0 ? longProfit : na, "Long Target", color=color.green, style=plot.style_linebr)
plot(strategy.position_size < 0 ? shortStop : na, "Short Stop", color=color.red, style=plot.style_linebr)
plot(strategy.position_size < 0 ? shortProfit : na, "Short Target", color=color.green, style=plot.style_linebr)

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