
A estratégia de negociação de ruptura de volume de tendência de filtragem de múltiplos quadros temporais é um sistema de negociação quantitativa que combina a análise de múltiplos quadros temporais e o princípio de ruptura de volume. A estratégia busca oportunidades de ruptura em gráficos de 3 minutos, e, ao mesmo tempo, usa gráficos de 1 hora para confirmar a tendência, aumentando a taxa de sucesso das negociações. A estratégia usa um método de gerenciamento de posição inteligente, inicialmente criando 2 contratos de posição, reduzindo 1 contrato de posição após atingir o objetivo de lucro baseado em ATR e gerenciando as posições restantes por meio de stop loss ou mecanismo de controle de tempo.
Os princípios centrais da estratégia baseiam-se em duas ideias de negociação: “a tendência é a tendência” e “o impulso é o impulso”. A lógica de implementação é a seguinte:
Filtro de tendências de quadros temporais múltiplos:
A força de um avanço:
Gestão inteligente de armazéns:
Multi-quadros de tempo em conjuntoA estratégia, combinando sinais de gráficos de 1 hora e 3 minutos, filtrou de forma eficaz as transações de baixa qualidade, procurando apenas oportunidades de entrada na direção da grande tendência, aumentando significativamente a taxa de vitória.
Gestão inteligente de armazénsA estratégia de liquidação em lotes permite que parte dos lucros seja bloqueada quando o preço atinge o objetivo inicial, mas também permite que as posições remanescentes sejam capturadas pela tendência através do rastreamento do stop loss, realizando a filosofia de negociação de “deixar os lucros correrem”.
Definição de metas adaptativasA utilização de indicadores ATR para definir metas de lucro de forma adaptativa permite que a estratégia se adapte automaticamente à volatilidade do mercado e funcione efetivamente em ambientes de alta e baixa volatilidade.
Defesa completaO mecanismo de dupla garantia de tracking de stop loss e overtime controla de forma eficaz o máximo de risco de uma única transação, evitando a possibilidade de emboscamento e perdas a longo prazo.
Alta frequência e precisãoA utilização de gráficos de 3 minutos para a negociação permite capturar o movimento do mercado em curto prazo, permitindo uma entrada e saída mais precisas e uma frequência de negociação moderada, evitando o excesso de negociação.
Risco de Falso BreakoutA solução é adicionar indicadores de confirmação, como a confirmação de volume de transação ou a confirmação de disperso de dinâmica.
Risco de mudança de tendência: O uso de indicadores de tendências históricas pode levar a negociações contractuais quando as principais tendências estão prestes a mudar. Recomenda-se a adição de indicadores de reversão de tendências mais sensíveis, como o sistema de dupla EMA ou a análise da estrutura de preços.
Excesso de dependência de tendências históricasOs indicadores: EMA ((200) e MACD são indicadores atrasados e podem não ser suficientemente sensíveis em mercados de mudança rápida. Pode-se considerar a adição de alguns indicadores líderes como auxiliares.
Sensibilidade do parâmetroO desempenho da estratégia pode ser muito sensível a configurações de parâmetros (como período de retorno de ruptura, multiplicação de ATR, rastreamento de pontos de parada). Recomenda-se a otimização completa de parâmetros e testes de robustez.
Risco de características de mercadoA estratégia funciona melhor em mercados com uma tendência visível, mas pode frequentemente desencadear falsos sinais em mercados com oscilações horizontais. Pode-se considerar a adição de um filtro de estado de mercado para ativar a estratégia apenas em mercados em tendência.
Adicionar filtro de estado de mercado: Permite a identificação automática do estado do mercado (trend/vibração) e ajusta os parâmetros da estratégia ou suspende a negociação de acordo com diferentes estados de mercado. Isso pode ser feito por meio da análise do indicador ADX ou da volatilidade, reduzindo efetivamente os falsos sinais em mercados vibratórios.
Otimização do tempo de entradaConsidere procurar um retorno como um ponto de entrada após a confirmação da ruptura, em vez de entrar diretamente no ponto de ruptura. Isso pode ser avaliado pelo indicador RSI ou pela posição da faixa de Brin, aumentando a relação de preços do preço de entrada.
Gestão de posições dinâmicas: Ajustar o tamanho da posição de acordo com a volatilidade do mercado e a dinâmica da taxa de vitória histórica, aumentar a posição quando surgir um sinal de alta confiança e, em vez disso, diminuir. Isso pode melhorar a eficiência do uso do capital e o retorno ajustado ao risco.
Sistema de parâmetros adaptativos: Desenvolver mecanismos de ajuste de parâmetros de adaptação, permitindo que a estratégia ajuste automaticamente o comprimento da ruptura, o ATR e o tracking stop loss distance de acordo com as condições do mercado. Isso pode ser feito através de ajustes de parâmetros dinâmicos baseados na flutuação dos últimos N dias.
Adicionar filtro de tempo de transaçãoAnalisar o desempenho da estratégia em diferentes períodos de negociação, evitando períodos de baixa eficácia ou alto risco, como períodos de divulgação de dados importantes ou falta de liquidez. Isso pode ser realizado através de filtros de tempo, aumentando a estabilidade da estratégia geral.
A estratégia de negociação de ruptura de volume de tendências de múltiplos quadros temporais é um sistema de negociação quantitativa bem estruturado, que aumenta a qualidade do sinal de negociação por meio da análise de múltiplos quadros temporais e atinge o objetivo de negociação de “segurança de lucro” por meio de gerenciamento inteligente de posições. A estratégia é especialmente adequada para ambientes de mercado com características de tendência evidentes e capaz de capturar efetivamente oscilações de preços de curto e médio prazo.
A estratégia pode aumentar ainda mais a adaptabilidade e a estabilidade em diferentes ambientes de mercado, através da implementação de orientações de otimização das recomendações, em particular, a filtragem do estado do mercado e o ajuste dos parâmetros dinâmicos. Antes da aplicação em disco, recomenda-se a realização de uma análise histórica e simulação de negociação adequadas e ajustes específicos de acordo com as características específicas da variedade de negociação.
/*backtest
start: 2024-07-21 00:00:00
end: 2025-07-19 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT","balance":2000000}]
*/
// MNQ 3m Momentum Breakout Strategy with HTF Trend Filter
//@version=5
strategy("MNQ 3m Momentum Breakout", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// === INPUTS ===
trailPoints = input.int(40, "Trailing Stop (Ticks)")
timeoutBars = input.int(30, "Timeout Bars (3m)")
breakoutLength = input.int(20, "Breakout Lookback")
atrLength = input.int(14, "ATR Period")
mult = input.float(1.5, "ATR Multiplier")
// === MULTI-TIMEFRAME TREND FILTER ===
ema200_1h = request.security(syminfo.tickerid, "60", ta.ema(close, 200))
[macdLine_1h, signalLine_1h, macdHist_1h] = request.security(syminfo.tickerid, "60", ta.macd(close, 12, 26, 9))
trendUp = close > ema200_1h and macdHist_1h > 0
trendDown = close < ema200_1h and macdHist_1h < 0
// === BREAKOUT CONDITIONS (3m) ===
highBreakout = close > ta.highest(close[1], breakoutLength)
lowBreakdown = close < ta.lowest(close[1], breakoutLength)
atr = ta.atr(atrLength)
longEntry = trendUp and highBreakout
shortEntry = trendDown and lowBreakdown
// === ENTRY ===
if (longEntry and strategy.position_size == 0)
strategy.entry("Long1", strategy.long, qty=2)
if (shortEntry and strategy.position_size == 0)
strategy.entry("Short1", strategy.short, qty=2)
// === SCALE OUT LOGIC ===
profitTrigger = mult * atr
longScaleOut = strategy.position_size == 2 and close > strategy.position_avg_price + profitTrigger
shortScaleOut = strategy.position_size == -2 and close < strategy.position_avg_price - profitTrigger
if longScaleOut
strategy.close("Long1", qty=1, comment="Scale Out")
if shortScaleOut
strategy.close("Short1", qty=1, comment="Scale Out")
// === EXIT STRATEGY ===
strategy.exit("Exit Long1", from_entry="Long1", trail_points=trailPoints, trail_offset=10)
strategy.exit("Exit Short1", from_entry="Short1", trail_points=trailPoints, trail_offset=10)
// === TIMEOUT EXIT ===
longOpen = strategy.opentrades > 0 and strategy.opentrades.entry_id(0) == "Long1" and bar_index - strategy.opentrades.entry_bar_index(0) >= timeoutBars
shortOpen = strategy.opentrades > 0 and strategy.opentrades.entry_id(0) == "Short1" and bar_index - strategy.opentrades.entry_bar_index(0) >= timeoutBars
if (longOpen)
strategy.close("Long1", comment="Timeout")
if (shortOpen)
strategy.close("Short1", comment="Timeout")
// === VISUALS ===
plot(ema200_1h, color=color.orange, title="EMA 200 (1H)")