
A estratégia é um sistema de negociação baseado em múltiplos períodos de mediana, identificação de tendências e análise quantitativa. A ideia central é identificar a densidade de curto e médio prazo, combinando a direção da tendência com a confirmação da média de longo prazo.
A estratégia baseia-se nos seguintes componentes:
Identificação de área de densidade uniformeA estratégia utiliza a linha média de 20 dias (curto prazo) e 60 dias (médio prazo) para formar uma zona densa, que normalmente representa uma zona de valor consensual entre os participantes do mercado, com um certo apoio ou resistência.
Confirmação da direção da tendência: A direção da tendência geral é determinada pela comparação da posição relativa da linha média de 60 dias (mediano) e 120 dias (longo). Quando a linha média de 60 dias (mediano) está acima da linha média de longo prazo, é identificada como tendência ascendente; ao contrário, é uma tendência descendente.
A primeira jogada foi em casa.A particularidade da estratégia é que, em vez de entrar diretamente no ponto de ruptura, espera-se que o preço volte a entrar na zona de concentração após a ruptura, o que reduz de forma eficaz o risco de falsas rupturas.
Confirmação de entregaO sinal de entrada deve satisfazer a condição de que o volume de transações seja superior a 1,5 vezes a média de transações de 20 dias, garantindo que o mercado tenha participação suficiente para apoiar a movimentação dos preços.
Gestão de RiscosA estratégia utiliza um mecanismo de stop loss dinâmico e de stop stop móvel baseado no indicador ATR, permitindo que o nível de stop loss seja automaticamente ajustado de acordo com a volatilidade do mercado e se adapte a diferentes condições de mercado.
A partir da implementação do código, os requisitos de entrada múltipla são: o preço do dia anterior quebrou a zona densa para cima ((máximo de smaShort e smaMid), o preço retrocedeu no dia, mas ainda está dentro da zona densa ((não abaixo da linha de base), e a tendência de médio prazo para cima ((smaMid > smaLong), enquanto a condição de volume de transação é atendida.
Ao analisar em profundidade a implementação de código da estratégia, podemos concluir os seguintes benefícios:
Mecanismo de confirmação em níveis múltiplosA análise da estratégia considera indicadores de linha média de três períodos de tempo: curto, médio e longo, e combina a ação do preço e o volume de transação para formar um mecanismo de confirmação de sinal em vários níveis, reduzindo efetivamente a taxa de erro.
A redução do risco de reentradaAo contrário da estratégia de breakout tradicional, que é a entrada direta no ponto de breakout, a estratégia de breakout permite obter melhores preços de entrada, reduzindo custos e riscos de transação, esperando para entrar de volta.
Filtragem de tendências aumenta a taxa de vitóriasA tendência é definida através de uma relação de linha média a longo prazo, apenas quando a tendência é clara, evitando os prejuízos causados pela frequência de negociação em mercados turbulentos.
Gestão de Riscos DinâmicosO mecanismo de stop loss e de stop motion baseado no ATR permite ajustar automaticamente a posição de proteção de acordo com a volatilidade do mercado, dando ao preço espaço de respiração suficiente enquanto protege os lucros.
Confirmação de entrega aumenta a confiabilidadeA redução do erro de julgamento em ambientes de baixa liquidez, através da exigência de volume de transações superior a 1,5 vezes o nível médio, assegurando que as transações ocorram em períodos de alta atividade do mercado.
Forte ajustabilidade de parâmetrosA estratégia oferece vários parâmetros ajustáveis, como o ciclo de linha média, o múltiplo ATR, o valor de queda do volume de transação, etc., permitindo que os comerciantes ajusten com flexibilidade de acordo com diferentes cenários de mercado e preferências de negociação.
Apesar de ter sido concebido de forma abrangente, os riscos potenciais são os seguintes:
Retardo médioA linha média é essencialmente um indicador de atraso, que pode não refletir as mudanças de preço em mercados altamente voláteis, resultando em um atraso no sinal de entrada ou saída. A solução é considerar a redução apropriada do ciclo de linha média em mercados altamente voláteis, ou em combinação com outros indicadores de liderança para auxiliar a decisão.
Falsa invasão frequenteEm mercados de volatilidade horizontal, os preços podem frequentemente romper zonas densas e depois regressar, resultando em negociações frequentes e perdas acumuladas. Recomenda-se a adição de condições de filtragem adicionais, como exigir que a amplitude de ruptura atinja uma determinada porcentagem ou em combinação com a análise de pontos de resistência de suporte.
Limitação de riscoO ATR de stop loss com multiplicador fixo pode ser exagerado ou exageradamente apertado em diferentes cenários de mercado. Os parâmetros do ATR de multiplicador devem ser ajustados de acordo com as características de flutuação de cada variedade e com os resultados do histórico de retorno.
Excessiva dependência de transações: Os dados de volume de transação em alguns mercados podem não ser transparentes ou precisos o suficiente, e uma dependência excessiva das condições de volume de transação pode levar a um sinal efetivo perdido. Pode ser considerado a configuração de condições de volume de transação como opcionais, ou em combinação com a análise de comportamento de preços.
Parâmetros de otimização de overfittingOs sistemas de múltiplos parâmetros são propensos a cair na armadilha de superalimento, apresentando um bom desempenho em dados históricos, mas um mau desempenho no disco. Recomenda-se o uso de testes de amostragem (análise de andamento) para verificar a estabilidade da estratégia em diferentes períodos de tempo.
Com base na análise de código, a estratégia pode ser otimizada nas seguintes direções:
Adicionar filtro de tempoConsidere a adição de confirmação de tendências em um período de tempo maior, para garantir que a direção do negócio esteja de acordo com as tendências de ciclo maior. Isso ocorre porque as tendências de ciclo maior geralmente têm maior continuidade e confiabilidade.
Introdução de um mecanismo de adaptação à volatilidade dos preços: Pode ajustar automaticamente o ciclo de linha média e o múltiplo ATR de acordo com a volatilidade recente do mercado, para que a estratégia possa manter um bom desempenho em diferentes ambientes de mercado. Prolongar adequadamente o ciclo de linha média em mercados de alta volatilidade, reduzindo a frequência do sinal; Encurtar adequadamente o ciclo de linha média em mercados de baixa volatilidade, aumentando a sensibilidade.
Adicione filtros sazonais e de tempoEm alguns mercados, onde há uma aparente característica sazonal ou efeito do tempo no dia, pode-se adicionar um filtro de tempo para evitar períodos de mau desempenho histórico.
Optimizar a lógica de confirmação de retorno: A confirmação de reversão atual baseia-se apenas no fato de que o preço está dentro de uma área densa. Pode-se considerar a adição de requisitos de profundidade de reversão mais detalhados, como o pedido de reversão para uma posição proporcional específica da área densa (por exemplo, 38,2% e 50% de retração) ou a confirmação de reversão em combinação com a forma de linha K.
Adição de módulo de gestão de fundosA estratégia atual usa negociações de quantidade fixa e pode ser melhorada para gerenciamento de posições dinâmicas baseadas no tamanho da conta e na proporção de risco, como a proporção de risco fixa ou a fórmula de Kelly, para otimizar a curva de capital e o controle de retirada máxima.
Acompanhar a identificação do contexto de mercadoAumentar a classificação do cenário de mercado (mercado de tendência/mercado de turbulência), usando diferentes configurações de parâmetros ou até mesmo diferentes estratégias de negociação em diferentes cenários de mercado, evitando a frequência de negociação em cenários de mercado inadequados.
O “sistema de negociação de retorno de ruptura de tendência multilinear com parada dinâmica do ATR” é uma estratégia de negociação quantitativa que combina vários conceitos maduros da análise técnica. Identifica os intervalos de valor em áreas densas de equilíbrio, utiliza o sistema de equilíbrio para determinar a direção da tendência, combina o comportamento de preços de ruptura de retorno e confirmação de volume de transação, e constrói um sistema de negociação relativamente completo.
A estratégia tem um grande espaço de melhoria com o aumento do mecanismo de adaptação, identificação do ambiente de mercado e uma lógica de confirmação de retrocesso mais refinada. Além disso, em combinação com um sistema de gestão de fundos mais perfeito, a estabilidade da estratégia e a lucratividade a longo prazo serão aumentadas.
Em geral, é um sistema de negociação concebido de forma racional e lógica, que reflete a filosofia central de negociação de “seguindo a tendência + gerenciamento dinâmico de risco” e é adequado para o uso de comerciantes com alguma experiência em mercados onde a tendência é clara.
/*backtest
start: 2024-03-05 00:00:00
end: 2025-03-03 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("均线密集区交易系统(优化版2)", shorttitle="MA_Zone_Opt2", overlay=true, initial_capital=10000, default_qty_type=strategy.fixed, default_qty_value=1000, commission_value=0.1)
// === 输入参数 ===
smaShortPeriod = input.int(20, title="短期SMA周期", minval=1)
smaMidPeriod = input.int(60, title="中期SMA周期", minval=1)
smaLongPeriod = input.int(120, title="长期SMA周期", minval=1)
atrPeriod = input.int(14, title="ATR周期", minval=1)
atrMultiplierStop = input.float(3.0, title="止损ATR倍数", minval=1.0)
atrMultiplierTrail = input.float(2.0, title="移动止盈ATR倍数", minval=1.0)
volPeriod = input.int(20, title="成交量周期", minval=1)
volThreshold = input.float(1.5, title="成交量倍数", minval=1.0)
// === 计算均线 ===
smaShort = ta.sma(close, smaShortPeriod) // MA20
smaMid = ta.sma(close, smaMidPeriod) // MA60
smaLong = ta.sma(close, smaLongPeriod) // MA120
// === 计算 ATR 和成交量 ===
atrValue = ta.atr(atrPeriod)
volAvg = ta.sma(volume, volPeriod)
volCondition = volume > volAvg * volThreshold // 成交量高于平均值 1.5 倍
// === 定义均线密集区(只用 SMA20 和 SMA60) ===
maMax = math.max(smaShort, smaMid)
maMin = math.min(smaShort, smaMid)
// === 趋势过滤:SMA60 和 SMA120 的相对位置 ===
trendUp = smaMid > smaLong // 60日均线上穿120日均线,上升趋势
trendDown = smaMid < smaLong // 60日均线下穿120日均线,下降趋势
// === 交易信号逻辑 ===
// 涨破密集区:K线收盘价突破 maMax
breakUp = ta.crossover(close, maMax)
// 跌破密集区:K线收盘价跌破 maMin
breakDown = ta.crossunder(close, maMin)
// 回踩条件:
// 买入 - 前一根K线跌至密集区内,当前K线仍在密集区内,且趋势向上
pullbackUp = close[1] <= maMax and close[1] >= maMin and close >= maMin and trendUp and volCondition
// 卖出 - 前一根K线涨至密集区内,当前K线仍在密集区内,且趋势向下
pullbackDown = close[1] >= maMin and close[1] <= maMax and close <= maMax and trendDown and volCondition
// === 买卖逻辑 ===
// 买入(多单):涨破后回踩,且趋势向上
if breakUp[1] and pullbackUp
strategy.entry("Long", strategy.long)
// 动态止损和移动止盈
stopLossPrice = strategy.position_avg_price * (1 - atrMultiplierStop * atrValue / close)
trailStopPrice = close * (1 - atrMultiplierTrail * atrValue / close)
strategy.exit("Long_Exit", "Long", stop=stopLossPrice, trail_points=trailStopPrice, trail_offset=0)
// 卖出(空单):跌破后回踩,且趋势向下
if breakDown[1] and pullbackDown
strategy.entry("Short", strategy.short)
// 动态止损和移动止盈
stopLossPriceShort = strategy.position_avg_price * (1 + atrMultiplierStop * atrValue / close)
trailStopPriceShort = close * (1 + atrMultiplierTrail * atrValue / close)
strategy.exit("Short_Exit", "Short", stop=stopLossPriceShort, trail_points=trailStopPriceShort, trail_offset=0)
// === 绘制信号点 ===
plotshape(breakUp[1] and pullbackUp, title="买入信号", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(breakDown[1] and pullbackDown, title="卖出信号", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)