
A estratégia de negociação quantitativa de modelo de retorno triplo baseada no ATR é um sistema de negociação quantitativa projetado especificamente para identificar sinais de esgotamento de mercado em curto prazo. A ideia central da estratégia é capturar sinais de retorno após três linhas de retorno consecutivas e proteger o lucro por meio de um mecanismo de parada de rastreamento dinâmico baseado na amplitude real média (ATR). A estratégia é especialmente adequada para períodos de tempo de curto prazo, como 15 minutos, 1 hora e 4 horas, podendo se adaptar automaticamente às características de variação de diferentes ambientes de mercado, sem a necessidade de definir um stop loss fixo, mas sim controlar o risco por meio de um mecanismo de parada dinâmico.
A lógica de entrada da estratégia baseia-se na identificação de padrões de preços claros:
Três linhas de orientação consecutivas formam a confirmação direcional:
O fio de retorno deve ter uma entidade suficientemente grande, definida no código como um tamanho de volume de pelo menos 3%, para garantir que o sinal de retorno seja suficientemente forte
Entrada de negociação no fechamento da linha de retorno
A lógica de saída da estratégia usa um mecanismo de bloqueio de rastreamento dinâmico baseado no ATR:
A análise do código mostra que a estratégia não estabelece um stop loss fixo, mas depende de um mecanismo de proteção após a obtenção de lucros para gerenciar o risco. A estratégia permite até 5 acréscimos de pirâmide, com 50% de juros de conta em cada transação e com uma comissão de negociação de 0,05%.
Mecanismo de identificação de reversão de precisão: através de um modelo de combinação de três reversões consecutivas de reversão de ignição de ignição de ignição de ignição, aumenta a precisão de identificação de uma reversão verdadeira e reduz a ocorrência de falsos sinais.
Adaptação dinâmica à volatilidade do mercado: o uso do ATR como um indicador de volatilidade permite que a estratégia se adapte automaticamente às características de flutuação de diferentes mercados e diferentes períodos, sem a necessidade de ajustar manualmente os parâmetros.
Mecanismos inteligentes de proteção de fundos: o mecanismo de proteção é ativado somente após a obtenção de um determinado lucro na negociação, evitando a saída prematura causada por pequenas perturbações no mercado, além de bloquear os lucros em tempo hábil quando os lucros são retirados.
Gerenciamento de posições flexível: suporte a acréscimo de posições em forma de pirâmide, que pode aumentar as posições após a confirmação da tendência, aumentando o potencial de lucro.
Ampliação da aplicabilidade: a estratégia é especialmente eficaz em mercados de turbulência e pontos de reversão de tendências, sendo aplicada a mercados com maior volatilidade, como criptomoedas, ouro e divisas.
Parâmetros simples e facilmente ajustáveis: basta definir a porcentagem mínima de volume, a duração do ciclo ATR e os parâmetros de parada de rastreamento para otimização e adaptação a diferentes ambientes de mercado.
Risco de parada sem fixação: a estratégia não estabelece um ponto de parada no sentido tradicional, podendo causar grandes perdas se o mercado continuar em movimentos adversos antes da ativação do stop tracking. Para esse risco, é recomendado que os comerciantes considerem adicionar um mecanismo de parada de emergência baseado no tempo ou na proporção de perda máxima.
Risco de sobre-negociação: Como as condições de entrada são relativamente relaxadas (apenas 3 linhas de arbitragem covalente e 1 linha de arbitragem inversa), pode haver excesso de sinais de negociação em mercados de turbulência. Pode-se reduzir as negociações desnecessárias adicionando condições de filtragem adicionais, como a combinação de indicadores de tendência ou de resistência de suporte.
Risco de aquisição de posição em pirâmide: a estratégia suporta até 5 aquisições de posição, o que pode levar a grandes perdas acumuladas se o mercado mudar de repente. Recomenda-se uma redução apropriada do número de aquisições de posição ou a criação de condições mais rigorosas de aquisição de posição, de acordo com a tolerância ao risco individual.
Dependência de condições de mercado: a estratégia funciona melhor em mercados com visíveis turbulências ou no final de uma tendência, mas pode desencadear sinais errados com frequência em mercados de forte tendência. Deve-se considerar a adição de filtros de tendência e aplicar a estratégia apenas no ambiente de mercado apropriado.
Sensibilidade de parâmetros: pequenas mudanças nos parâmetros do ATR podem afetar significativamente a performance da estratégia, necessitando de otimização e retomada de parâmetros abrangentes para diferentes mercados e períodos de tempo.
// 趋势过滤器示例
ema200 = ta.ema(close, 200)
adx = ta.adx(14)
inUptrend = close > ema200 and adx > 25
inDowntrend = close < ema200 and adx > 25
// 初始止损示例
initialStopLoss = strategy.position_size > 0 ? longEntry - 2 * atr :
strategy.position_size < 0 ? shortEntry + 2 * atr : na
Aumentar o filtro de período de negociação: alguns mercados podem ter muita ou pouca volatilidade em determinados períodos de tempo, afetando o desempenho da estratégia. Pode ser adicionado um filtro de período de negociação, apenas para negociar no melhor período de tempo.
Optimizar as condições de confirmação de reversão: pode-se considerar a combinação de indicadores de massa ou de potência para reforçar a confiabilidade do sinal de reversão. O sinal de reversão deve, idealmente, ser acompanhado de aumento de massa ou de desvio do indicador de massa.
Parâmetros de ajuste dinâmico: um mecanismo pode ser projetado para ajustar automaticamente os parâmetros do múltiplo ATR com base no estado do mercado, para se adaptar a diferentes fases do mercado. Por exemplo, aumentar a distância de rastreamento durante a alta volatilidade e reduzir a distância de rastreamento durante a baixa volatilidade.
Aumentar a meta de lucro: Além de rastrear o stop loss, pode-se configurar um lucro parcial baseado em resistência de suporte ou reajuste de Fibonacci para alcançar lucro parcialmente bloqueado em preços importantes.
Optimização do gerenciamento de risco: limitar o risco de uma única transação a uma porcentagem fixa da conta, em vez de usar 50% de juros fixos, pode ser feito da seguinte forma:
// 动态仓位大小计算
riskPerTrade = 1 // 风险1%账户
posSize = (strategy.equity * riskPerTrade / 100) / (atr * 2)
A estratégia de negociação quantitativa do modelo de retorno triplo baseada no ATR Dynamic Tracking Stop é um sistema de negociação de retorno de curto prazo elaborado para capturar os pontos de inflexão do mercado através da identificação de três padrões de retorno consecutivos após o mesmo fio de orientação. Sua principal característica é a adoção de um mecanismo de tracking stop dinâmico baseado no ATR, que permite que a estratégia se adapte às características de flutuação em diferentes condições de mercado, mantendo espaço suficiente para o lucro e bloqueando os lucros obtidos em tempo hábil.
A estratégia é especialmente adequada para aplicações em mercados turbulentos e ambientes de mercado com grande volatilidade, como os mercados de criptomoedas, ouro e FX. Ao adicionar as recomendações de otimização apresentadas neste artigo, como filtragem de tendências, stop loss inteligente e ajuste de parâmetros dinâmicos, os comerciantes podem melhorar ainda mais a estabilidade e a lucratividade da estratégia.
Note-se que, apesar da capacidade da estratégia de se adaptar automaticamente às mudanças no mercado, os operadores ainda precisam de otimizar e ajustar os parâmetros de acordo com as características específicas do mercado e as preferências de risco pessoais. Antes da aplicação em campo, recomenda-se um bom histórico de retrospectiva e simulação de negociação para verificar o desempenho da estratégia em diferentes ambientes de mercado.
/*backtest
start: 2024-05-19 00:00:00
end: 2025-04-11 00:00:00
period: 5d
basePeriod: 5d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDC"}]
*/
//@version=5
// ========================================================================
// 📌 CMA Technologies – 3-Bar Reversal Detection Bot (ATR Trailing TP)
// 🌐 Developed by CMA Technologies | Visit: cmatech.co
// 🔄 Short-term reversal entry with dynamic ATR-based trailing TP
// 🔍 Strategy by @CMATechnologies
// ========================================================================
strategy("CMA Technologies – 3-Bar Reversal Detection Bot", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=1, pyramiding=5, commission_type=strategy.commission.percent, commission_value=0.05)
// === INPUTS ===
minBodyPct = input.float(3, title="Minimum Body Size (%)")
atrLen = input.int(14, title="ATR Length")
trailStartATR = input.float(1.5, title="Start Trailing After (x ATR)")
trailOffsetATR = input.float(1.0, title="Trailing Offset (x ATR)")
// === ATR ===
atr = ta.atr(atrLen)
// === FUNCTION ===
isBearish(closeVal, openVal) =>
closeVal < openVal
isBullish(closeVal, openVal) =>
closeVal > openVal
bodyPct(closeVal, openVal) =>
math.abs(closeVal - openVal) / openVal * 100
// === CONDITIONS ===
bullishReversal = isBearish(close[3], open[3]) and isBearish(close[2], open[2]) and isBearish(close[1], open[1]) and isBullish(close, open) and bodyPct(close, open) > minBodyPct
bearishReversal = isBullish(close[3], open[3]) and isBullish(close[2], open[2]) and isBullish(close[1], open[1]) and isBearish(close, open) and bodyPct(close, open) > minBodyPct
// === ENTRY ===
if (bullishReversal)// and strategy.position_size == 0)
strategy.entry("3Bar Long", strategy.long)
if (bearishReversal)// and strategy.position_size == 0)
strategy.entry("3Bar Short", strategy.short)
// === ATR-BASED TRAILING TP ===
longEntry = strategy.opentrades.entry_price(0)
shortEntry = strategy.opentrades.entry_price(0)
maxHigh = ta.highest(close, 20)
minLow = ta.lowest(close, 20)
startTrailLong = longEntry + trailStartATR * atr
startTrailShort = shortEntry - trailStartATR * atr
longTrailExit = close < (maxHigh - trailOffsetATR * atr) and close > startTrailLong
shortTrailExit = close > (minLow + trailOffsetATR * atr) and close < startTrailShort
if (strategy.position_size > 0 and longTrailExit)
strategy.close("3Bar Long", comment="ATR Trailing TP Hit")
if (strategy.position_size < 0 and shortTrailExit)
strategy.close("3Bar Short", comment="ATR Trailing TP Hit")
// === PLOTS ===
plotshape(bullishReversal, title="3-Bar Bull Reversal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.tiny)
plotshape(bearishReversal, title="3-Bar Bear Reversal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.tiny)