
Trata-se de uma estratégia de negociação de linha curta de dia robusta que combina dois sistemas de supertrend. A estratégia combina o supertrend do eixo central dinâmico (baseado em altos e baixos dinâmicos e banda de ondas ATR) e o supertrend clássico (filtros de rastreamento de tendências baseados em ATR tradicionais), garantindo uma forte confirmação de tendência antes da negociação.
O núcleo da estratégia é a combinação de dois sistemas de tendências super diferentes para obter sinais de negociação mais confiáveis:
Sistema de supertrend de eixo central:
pivotPeriodParâmetros)pivotCenterCalcular o preço atual do centro do eixopivotATRMultCriação de suporte dinâmico e resistênciapivotTrend)Sistema clássico de supertrend:
classicATRMultMultiplicação cria uma faixa de flutuação dinâmicastTrend)Condições de entrada:
Objetivos de perda e ganho:
O código implementa a lógica completa dessa estratégia, incluindo o gerenciamento de pedidos e indicadores visuais, facilitando a sua aplicação em transações reais.
Ao analisar o código em profundidade, a estratégia mostra as seguintes vantagens significativas:
Mecanismo de confirmação de dupla tendênciaA dupla verificação assegura que apenas uma forte mudança de tendência pode desencadear um sinal de negociação.
Parâmetros de adaptação dinâmicaOs objetivos de perda e ganho da estratégia são baseados no cálculo do ATR, permitindo que ele se ajuste automaticamente à volatilidade real do mercado. Isso significa que, em mercados com maior volatilidade, o ponto de parada é ampliado correspondentemente, enquanto que em mercados com menor volatilidade, ele é apertado, adaptando-se efetivamente a diferentes condições de mercado.
Identificação de tendências de pivôA estratégia pode capturar melhor as mudanças reais na estrutura do mercado e os principais pontos de reversão usando pivôes dinâmicos em vez de níveis de preços fixos para determinar tendências.
Visualização de alta velocidadeA estratégia inclui indicadores visuais claros, como linhas de tendência ultra coloridas e sinais de compra e venda, que permitem aos comerciantes identificar facilmente as oportunidades de negociação.
Gerenciamento de riscos completoA plataforma de negociação de criptomoedas do Bitcoin (BTC) foi criada em 2009 para oferecer uma solução de negociação de criptomoedas de criptomoedas, que permite que os investidores de criptomoedas de criptomoedas de criptomoedas de criptomoedas utilizem criptomoedas de criptomoedas.
Optimização de transações de linha curta: Especificamente projetado para negociação de linhas curtas em gráficos de 3-5 minutos, é ideal para ambientes de negociação de alta frequência e captura de flutuações diárias.
Gerenciamento de fundos antecipado: O código já está configurado para usar 10% da conta para negociar, o que ajuda a manter o tamanho apropriado da posição e o controle de risco.
Apesar do bom desenho da estratégia, existem os seguintes riscos e limitações potenciais:
Risco de uma rápida reversão: Em mercados de alta volatilidade, os preços podem reverter rapidamente após o sinal de disparo, levando a que o stop loss seja acionado. Solução: Considere a suspensão de negociação durante a publicação de dados econômicos importantes ou de volatilidade anormal.
Mercado horizontal não está indo bemSolução: adicionar filtros de mercado horizontal adicionais, como o ADX (indice de direção média) ou os valores de volatilidade.
Sensibilidade do parâmetroO desempenho da estratégia é altamente dependente de várias configurações de parâmetros (como o ciclo ATR e a multiplicação). Método de solução: Faça um extenso retrospecto histórico para encontrar a melhor combinação de parâmetros para um determinado mercado e período de tempo.
Dependência de liquidezComo estratégia de curto prazo, pode haver deslizamentos e problemas de execução em mercados ou períodos de baixa liquidez. Como solução: limitar o tempo de negociação em períodos de alta liquidez, ou aumentar o filtro de liquidez.
Risco de perdas contínuasA solução: Implementar o limite máximo de transações por dia e o limite máximo de perdas para evitar o excesso de negociação e a perda de fundos.
Risco de otimização excessiva: A estratégia tem vários parâmetros ajustáveis, o que pode levar a otimização excessiva e curva de ajuste. Solução: Verificar a estabilidade dos parâmetros usando testes fora da amostra e testes de retorno.
Com base na análise do código, a estratégia pode ser otimizada para:
Adicionar filtro de ambiente de mercadoOs mecanismos de identificação de tipos de mercado integrados, como o ADX ou a análise de volatilidade, ajustam automaticamente a estratégia para se adaptar a mercados de tendência ou de lateral. Tal otimização pode reduzir significativamente as operações perdedoras em ambientes de mercado que não são adequados para negociação de linha curta.
Parâmetros de otimização adaptados: Implementação de mecanismos de ajuste dinâmico de parâmetros, otimizando automaticamente o ATR multiplicado e o ciclo de acordo com o desempenho recente do mercado. Isso permitirá que a estratégia se adapte melhor às mudanças nas condições do mercado, sem a necessidade de intervenção manual.
Análise de tráfego integrada: Adicionar um requisito de confirmação de volume de transação aos requisitos de entrada, garantindo que a movimentação de preços tenha suporte suficiente para a participação no mercado. O volume de transação é um indicador de confirmação crucial da ação dos preços, o que pode melhorar significativamente a qualidade do sinal.
Filtro de tempo: Implementação de um mecanismo de filtragem baseado em horários de negociação, apenas para negociar dentro dos horários de mercado mais ativos e lucrativos. Os comentários do código recomendam negociar em horários de alto volume (por exemplo, 9:15 AM versus 2:30 PM), o que pode ser programado diretamente.
Melhorias na estratégia de detenção de perdasA exploração de estratégias de parada mais complexas, como o rastreamento de paradas ou paradas baseadas em níveis de suporte/resistência, pode oferecer melhor gestão de risco do que o simples ATR multiplicado.
Otimização de aprendizagem de máquinaConsidere o uso de algoritmos de aprendizagem de máquina para identificar as condições de mercado que melhor executam a estratégia, ou selecione parâmetros de otimização com base em dados históricos.
Confirmação do Multi-Tempos: Adição de filtros de tendência para quadros de tempo mais elevados, garantindo que as transações em linhas curtas seguem a direção de tendências maiores, aumentando a taxa de ganho e a taxa de retorno do risco.
Essas otimizações tornarão a estratégia mais robusta e mais adaptável a diferentes cenários de mercado, mantendo suas vantagens centrais de dupla identificação de tendências e gestão de risco dinâmica.
A estratégia de parada dinâmica de auto-adaptação do ATR de duplo ultra-trend é um sistema de negociação de linha curta bem projetado que fornece um sinal de negociação altamente confiável através da combinação de dois indicadores de ultra-trend independentes. A principal vantagem da estratégia reside no seu mecanismo de dupla confirmação, que reduz significativamente os sinais errados, ao mesmo tempo em que oferece uma gestão de risco eficaz através de um stop-loss dinâmico e de um objetivo de ganho baseado no ATR.
A estratégia é especialmente adequada para os traders de linha curta diária, que se apresentam melhor em períodos de alta liquidez de negociação em gráficos de 3 a 5 minutos. No entanto, os usuários devem estar atentos às potenciais limitações no mercado horizontal e considerar a otimização de recomendações de implementação, como filtros de ambiente de mercado e confirmação de volume de transação, para melhorar ainda mais a performance da estratégia.
Com um ajuste cuidadoso dos parâmetros e uma gestão adequada do risco, a estratégia pode ser uma ferramenta valiosa no arsenal dos comerciantes, especialmente para os comerciantes ativos que procuram capturar as flutuações do mercado em um curto espaço de tempo. A visualização e a função de alerta incorporadas no código tornam-na fácil de implementar e monitorar, e o design modular da estratégia também fornece uma boa base para futuras personalizações e melhorias.
/*backtest
start: 2024-06-04 00:00:00
end: 2025-06-03 00:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/
//@version=6
strategy("🔥Scalping Fusion Strategy v6", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, initial_capital=10000)
// === INPUTS ===
pivotPeriod = input.int(2, "Pivot Point Period", minval=1)
pivotATRPeriod = input.int(10, "Pivot ATR Period")
pivotATRMult = input.float(3.0, "Pivot ATR Multiplier", step=0.1)
classicATRPeriod = input.int(10, "Classic SuperTrend ATR Period")
classicATRMult = input.float(3.0, "Classic SuperTrend ATR Multiplier", step=0.1)
useClassicATR = input.bool(true, "Use Classic ATR Calculation")
stSource = input.source(hl2, "Classic SuperTrend Source")
slATRMult = input.float(1.5, "Stoploss ATR Multiplier")
tpATRMult = input.float(3.0, "Target ATR Multiplier")
// === PIVOT SUPER TREND LOGIC ===
ph = ta.pivothigh(high, pivotPeriod, pivotPeriod)
pl = ta.pivotlow(low, pivotPeriod, pivotPeriod)
var float pivotCenter = na
pivotPoint = not na(ph) ? ph : not na(pl) ? pl : na
if not na(pivotPoint)
pivotCenter := na(pivotCenter) ? pivotPoint : (pivotCenter * 2 + pivotPoint) / 3
pivotATR = ta.atr(pivotATRPeriod)
pivotUpper = pivotCenter - pivotATRMult * pivotATR
pivotLower = pivotCenter + pivotATRMult * pivotATR
var float trailPivotUp = na
var float trailPivotDown = na
var int pivotTrend = 0
trailPivotUp := close[1] > nz(trailPivotUp[1], pivotUpper) ? math.max(pivotUpper, nz(trailPivotUp[1], pivotUpper)) : pivotUpper
trailPivotDown := close[1] < nz(trailPivotDown[1], pivotLower) ? math.min(pivotLower, nz(trailPivotDown[1], pivotLower)) : pivotLower
pivotTrend := close > nz(trailPivotDown[1]) ? 1 : close < nz(trailPivotUp[1]) ? -1 : nz(pivotTrend[1], 1)
pivotSuperTrend = pivotTrend == 1 ? trailPivotUp : trailPivotDown
// === CLASSIC SUPER TREND LOGIC ===
atrST = useClassicATR ? ta.atr(classicATRPeriod) : ta.sma(ta.tr(true), classicATRPeriod)
stUpper = stSource - classicATRMult * atrST
stLower = stSource + classicATRMult * atrST
stUpper1 = nz(stUpper[1], stUpper)
stLower1 = nz(stLower[1], stLower)
stUpper := close[1] > stUpper1 ? math.max(stUpper, stUpper1) : stUpper
stLower := close[1] < stLower1 ? math.min(stLower, stLower1) : stLower
var int stTrend = 1
stTrend := close > stLower1 ? 1 : close < stUpper1 ? -1 : stTrend
classicSuperTrend = stTrend == 1 ? stUpper : stLower
// === ENTRY CONDITIONS ===
buySignal = pivotTrend == 1 and stTrend == 1 and pivotTrend[1] == -1
sellSignal = pivotTrend == -1 and stTrend == -1 and pivotTrend[1] == 1
// === ATR-BASED SL/TP ===
atrSLTP = ta.atr(14)
longSL = close - slATRMult * atrSLTP
longTP = close + tpATRMult * atrSLTP
shortSL = close + slATRMult * atrSLTP
shortTP = close - tpATRMult * atrSLTP
// === STRATEGY ORDERS ===
if (buySignal and strategy.position_size <= 0)
strategy.entry("Long", strategy.long)
strategy.exit("Exit Long", from_entry="Long", stop=longSL, limit=longTP)
if (sellSignal and strategy.position_size >= 0)
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", from_entry="Short", stop=shortSL, limit=shortTP)
// === VISUALS ===
plot(pivotSuperTrend, title="Pivot SuperTrend", color=pivotTrend == 1 ? color.lime : color.red, linewidth=2)
plot(classicSuperTrend, title="Classic SuperTrend", color=stTrend == 1 ? color.green : color.maroon, linewidth=2, style=plot.style_linebr)
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", textcolor=color.white, size=size.small)
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", textcolor=color.white, size=size.small)
// === ALERTS ===
alertcondition(buySignal, title="Buy Alert", message="🔥 DILL Strategy Buy Signal")
alertcondition(sellSignal, title="Sell Alert", message="🔥 DILL Strategy Sell Signal")