Estratégia de negociação de média móvel inteligente com vários filtros de tendências

VWAP EMA RSI ADX ATR HTF SMA
Data de criação: 2024-12-20 15:49:05 última modificação: 2024-12-20 15:49:05
cópia: 0 Cliques: 427
1
focar em
1617
Seguidores

Estratégia de negociação de média móvel inteligente com vários filtros de tendências

Visão geral

Esta estratégia é um sistema de negociação de ruptura de tendência baseado em uma rede de indicadores técnicos múltiplos. Utiliza integralmente vários indicadores técnicos, como a média móvel do índice (EMA), o preço médio ponderado do volume de transação (VWAP), o índice de força relativa (RSI) e o índice de tendência média (ADX), para filtrar as rupturas falsas e melhorar a precisão da negociação por meio da identificação de múltiplos sinais.

Princípio da estratégia

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

  1. Sistema de determinação de tendências: usa um cruzamento de EMAs de 9 e 21 ciclos para capturar mudanças de tendências de curto prazo, enquanto refere-se a EMAs de 50 ciclos em ciclos de 15 minutos para confirmar a direção da tendência maior.
  2. Confirmação de dinâmica de preço: Confirmação de dinâmica usando o indicador RSI, RSI> 55 para a cabeça múltipla e RSI < 45 para a cabeça vazia.
  3. Verificação de força de tendência: introdução do indicador ADX para determinar a força da tendência, exigindo que o ADX seja > 25 para garantir a eficácia da tendência.
  4. Verificação de posição de preço: Use o VWAP como referência para a posição de preço, exigindo que o preço esteja na posição VWAP correta.
  5. Confirmação de volume de transação: exige que o volume de transação seja maior que a média de transação de 1,5 vezes em 10 ciclos, garantindo a participação suficiente no mercado.
  6. Gerenciamento de risco: o tamanho da posição é calculado com base na proporção fixa do valor total da conta e no ATR dinâmico, usando 1,5 vezes o ATR como parada e 3 vezes o ATR como parada.

Vantagens estratégicas

  1. O mecanismo de confirmação de múltiplos sinais reduziu significativamente a interferência de sinais falsos.
  2. Combinado com a análise de períodos de tempo altos e baixos, aumenta a precisão do julgamento de tendências.
  3. Gerenciamento de posição dinâmico e configuração de stop loss para um bom controle de risco.
  4. O uso de brechas de volume como confirmação de transações aumenta a confiabilidade das transações.
  5. Os parâmetros da estratégia são ajustáveis, facilitando a otimização de acordo com as diferentes condições do mercado.

Risco estratégico

  1. A multiplicação das redes pode fazer com que se percam oportunidades de negócio.
  2. Os sinais de negociação podem ser frequentes em mercados turbulentos.
  3. A otimização de parâmetros pode levar a uma superalimentação dos dados históricos.
  4. A perda de ATR em mercados altamente voláteis pode ser excessiva.

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

  1. Introdução de mecanismos de parâmetros de adaptação, ajustando os parâmetros de acordo com a dinâmica do mercado.
  2. Adição de módulos de identificação de cenários de mercado, usando diferentes combinações de parâmetros em diferentes cenários de mercado.
  3. Adicione o filtro de tempo de negociação para evitar os períodos de maior volatilidade.
  4. Otimizar a Stop Loss Stop Loss Ratio, que pode ser considerado para ser ajustado de acordo com a dinâmica de volatilidade do mercado.
  5. Aumentar a graduação da intensidade da tendência, adotando diferentes estratégias de gerenciamento de posições em diferentes intensidades.

Resumir

A estratégia, através da colaboração sincronizada de múltiplos indicadores técnicos, constrói um sistema de negociação relativamente completo. Sua principal vantagem reside na melhoria da precisão das negociações por meio da confirmação de sinais multidimensional, enquanto utiliza métodos científicos de gerenciamento de risco para proteger a segurança dos fundos. Embora tenha algumas limitações, a estratégia espera obter um rendimento estável nas negociações reais por meio de otimização e melhoria contínuas.

Código-fonte da estratégia
/*backtest
start: 2024-11-19 00:00:00
end: 2024-12-18 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Trend-Filtered Scalping Strategy", overlay=true, shorttitle="TFSS")

// Inputs
emaShort     = input.int(9, title="EMA Short", minval=1)
emaLong      = input.int(21, title="EMA Long", minval=1)
rsiLength    = input.int(14, title="RSI Length", minval=1)
atrLength    = input.int(14, title="ATR Length", minval=1)
adxLength    = input.int(20, title="ADX Length", minval=1)
adxSmoothing = input.int(14, title="ADX Smoothing", minval=1)
volMultiplier = input.float(1.5, title="Volume Spike Multiplier", minval=1.0)
riskPercent  = input.float(1, title="Risk % of Equity", minval=0.1, step=0.1)

// Higher Time Frame for Trend Filter
htfTimeframe = input.timeframe("15", title="Higher Time Frame")
ema50HTF     = request.security(syminfo.tickerid, htfTimeframe, ta.ema(close, 50))

// Indicators
ema9  = ta.ema(close, emaShort)
ema21 = ta.ema(close, emaLong)
vwap  = ta.vwap(close)
rsi   = ta.rsi(close, rsiLength)
atr   = ta.atr(atrLength)
volAvg = ta.sma(volume, 10)

// ADX Calculation with Smoothing
[_, _, adx] = ta.dmi(adxLength, adxSmoothing)

// Entry Conditions
longCondition = (ta.crossover(ema9, ema21) and close > vwap and rsi > 55 and adx > 25 and close > ema50HTF and volume > volAvg * volMultiplier)
shortCondition = (ta.crossunder(ema9, ema21) and close < vwap and rsi < 45 and adx > 25 and close < ema50HTF and volume > volAvg * volMultiplier)

// Position Sizing Based on Risk %
capitalPerTrade = (strategy.equity * (riskPercent / 100)) / atr
longStop  = close - 1.5 * atr
longTarget = close + 3 * atr
shortStop = close + 1.5 * atr
shortTarget = close - 3 * atr

// Entry Logic
if longCondition and not strategy.opentrades
    strategy.entry("Long", strategy.long, qty=capitalPerTrade)
    strategy.exit("Exit Long", from_entry="Long", stop=longStop, limit=longTarget)

if shortCondition and not strategy.opentrades
    strategy.entry("Short", strategy.short, qty=capitalPerTrade)
    strategy.exit("Exit Short", from_entry="Short", stop=shortStop, limit=shortTarget)

// Alerts
alertcondition(longCondition, title="Long Entry Alert", message="Long Condition Triggered!")
alertcondition(shortCondition, title="Short Entry Alert", message="Short Condition Triggered!")

// Plot Indicators
plot(ema9, title="EMA 9", color=color.green)
plot(ema21, title="EMA 21", color=color.red)
plot(vwap, title="VWAP", color=color.blue)
plot(ema50HTF, title="HTF EMA 50", color=color.purple)
hline(55, "RSI Long Threshold", color=color.green)
hline(45, "RSI Short Threshold", color=color.red)