Estratégia de negociação de momentum de quebra de tendência múltipla

EMA ATR VOLUME SMA BREAKOUT Consolidation
Data de criação: 2025-02-20 13:14:39 última modificação: 2025-02-20 14:53:56
cópia: 1 Cliques: 398
2
focar em
319
Seguidores

Estratégia de negociação de momentum de quebra de tendência múltipla Estratégia de negociação de momentum de quebra de tendência múltipla

Visão geral

A estratégia é um sistema de rastreamento de tendências que combina múltiplos indicadores, principalmente para capturar oportunidades de tendências de mercado através da identificação de brechas de preços, confirmação de volume de transação e combinação de sistemas de linha média. A estratégia determina sinais de negociação monitorando brechas de preços em altos/baixos recentes, aumento significativo de volume de transação e uma classificação de médias móveis de múltiplos índices (EMA).

Princípio da estratégia

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

  1. Sistema de ruptura de preços: monitoramento de rupturas de preços nos últimos 20 ciclos de alta/baixa
  2. Confirmação de volume de transações: requer que o volume de transações na época da ruptura seja pelo menos o dobro da média de transações nos últimos 20 ciclos
  3. Sistema de linha média: construção de um sistema de confirmação de tendência usando um EMA de 30/50/200
  4. Multi-condições: o preço atingiu uma nova alta, o volume de transações aumentou, o preço parou em 200 EMA, a média curta está acima da média média e a média média está acima da média longa
  5. O acesso é gratuito e inclui dois mecanismos de acesso:
    • Breakout tradicional: preço quebra novo baixo, volume de transação aumentado, linha média de cabeça vazia e inclinação para baixo de 200 EMA
    • Resolução estreita: Preços formam uma resolução estreita abaixo da linha média de médio prazo, com uma resolução menor que 0,5 vezes a ATR

Vantagens estratégicas

  1. Mecanismo de confirmação múltipla: aumentar a confiabilidade do sinal por meio da tripla confirmação de breakouts de preço, volume de transação e linha média
  2. Mecanismos flexíveis de co-locação: oferece duas entradas de co-locação independentes, aumentando as oportunidades de negociação
  3. Adaptabilidade: definição de um fechamento estreito através do ATR, permitindo que a estratégia se adapte a diferentes ambientes de flutuação do mercado
  4. Controle de risco perfeito: 200 EMA como referência de stop loss para fornecer um mecanismo de saída claro
  5. Ajustabilidade dos parâmetros: os parâmetros-chave podem ser otimizados de acordo com diferentes características do mercado

Risco estratégico

  1. Risco de Falsa Breakout: Mercado pode ter Falsa Breakout e causar sinais errados
  2. Risco de deslizamento: um deslizamento maior pode ocorrer no momento da ruptura com o aumento do volume de transações
  3. Risco de reversão de tendência: no mercado de tendência forte, o uso de um stop loss médio pode levar a uma saída prematura
  4. Sensibilidade de parâmetros: a performance da estratégia é sensível às configurações de parâmetros e precisa de otimização cuidadosa
  5. Dependência do cenário do mercado: Falso sinal frequente em mercados turbulentos

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

  1. Introdução de filtros de intensidade de tendência: pode ser adicionado um indicador de intensidade de tendência, como o ADX, para filtrar sinais em ambientes de tendência fraca
  2. Mecanismos de parada de perda otimizados: pode-se introduzir parada de perda dinâmica baseada em ATR, aumentando a flexibilidade da parada de perda
  3. Melhorar o gerenciamento de posições: ajustar o tamanho das posições de acordo com a força da ruptura e a dinâmica de volatilidade do mercado
  4. Aumento do filtro de tempo: adição do filtro de tempo do dia para evitar a negociação em períodos de abertura e fechamento com maior volatilidade
  5. Introdução à classificação de cenários de mercado: Parâmetros de estratégia de ajuste dinâmico de acordo com diferentes cenários de mercado (trends / oscilações)

Resumir

A estratégia de negociação de volume de ruptura de tendência múltipla é um sistema integrado de rastreamento de tendências, que oferece oportunidades de negociação flexíveis, garantindo a confiabilidade do sinal, através da utilização conjunta de vários indicadores técnicos. A inovação da estratégia consiste na combinação de métodos de negociação de ruptura tradicionais e um novo mecanismo de identificação de classificação estreita, permitindo-lhe adaptar-se a diferentes ambientes de mercado.

Código-fonte da estratégia
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Breakout Strategy (Long & Short) + Slope of 200 EMA", overlay=true)

// -------------------
// 1. Settings
// -------------------
breakout_candles = input.int(20, title="Number of Candles for Breakout")
range_candles    = input.int(10, title="Number of Candles for Previous Range")

ema_long_period   = input.int(200, title="Long EMA Period")
ema_medium_period = input.int(50,  title="Medium EMA Period")
ema_short_period  = input.int(30,  title="Short EMA Period")

// Checkbox to allow/disallow short positions
allowShort = input.bool(true, title="Allow Short Positions")

// Inputs for the new Narrow Consolidation Short setup
consolidationBars     = input.int(10,   "Consolidation Bars",   minval=1)
narrowThreshInAtr     = input.float(0.5,"Narrowness (ATR Mult.)",minval=0.0)
atrLength             = input.int(14,   "ATR Length for Range")

// -------------------
// 2. Calculations
// -------------------
breakout_up   = close > ta.highest(high, breakout_candles)[1]
breakout_down = close < ta.lowest(low,  breakout_candles)[1]

prev_range_high = ta.highest(high, range_candles)[1]
prev_range_low  = ta.lowest(low,  range_candles)[1]

ema_long   = ta.ema(close, ema_long_period)
ema_medium = ta.ema(close, ema_medium_period)
ema_short  = ta.ema(close, ema_short_period)

average_vol      = ta.sma(volume, breakout_candles)
volume_condition = volume > 2 * average_vol

// 200 EMA sloping down?
ema_long_slope_down = ema_long < ema_long[1]

// For the Narrow Consolidation Short
rangeHigh   = ta.highest(high, consolidationBars)
rangeLow    = ta.lowest(low,  consolidationBars)
rangeSize   = rangeHigh - rangeLow

atrValue    = ta.atr(atrLength)

// Condition: Price range is "narrow" if it's less than (ATR * threshold)
narrowConsolidation = rangeSize < (atrValue * narrowThreshInAtr)

// Condition: All bars under Medium EMA if the highest difference (high - ema_medium) in last N bars is < 0
allBelowMedium = ta.highest(high - ema_medium, consolidationBars) < 0

// -------------------
// 3. Long Entry
// -------------------
breakout_candle_confirmed_long = ta.barssince(breakout_up) <= 3

long_condition = breakout_candle_confirmed_long
     and volume_condition
     and close > prev_range_high
     and close > ema_long
     and ema_short > ema_medium
     and ema_medium > ema_long
     and strategy.opentrades == 0

if long_condition
    strategy.entry("Long", strategy.long)

// -------------------
// 4. Short Entries
// -------------------

// (A) Original breakout-based short logic
breakout_candle_confirmed_short = ta.barssince(breakout_down) <= 3
short_condition_breakout = breakout_candle_confirmed_short
     and volume_condition
     and close < prev_range_low
     and close < ema_long
     and ema_short < ema_medium
     and ema_medium < ema_long
     and ema_long_slope_down
     and strategy.opentrades == 0

// (B) NEW: Narrow Consolidation Short
short_condition_consolidation = narrowConsolidation
     and allBelowMedium
     and strategy.opentrades == 0

// Combine them: if either short scenario is valid, go short
short_condition = (short_condition_breakout or short_condition_consolidation) and allowShort

if short_condition
    // Use a different order ID if you want to distinguish them
    // but "Short" is fine for a single position
    strategy.entry("Short", strategy.short)

// -------------------
// 5. Exits
// -------------------
if strategy.position_size > 0 and close < ema_long
    strategy.close("Long", qty_percent=100)

if strategy.position_size < 0 and close > ema_long
    strategy.close("Short", qty_percent=100)

// ======================================================================
// 5. ADDITIONAL PARTIAL EXITS / STOPS
// ======================================================================
// You can add partial exits for shorts or longs similarly.
// For example:
// if strategy.position_size < 0 and close > stop_level_for_short
//     strategy.close("Short", qty_percent=50)