Estratégia de rompimento/reversão ponderada por volume com base em pontos de pivô

Pivot VOLUME SMA BREAKOUT Reversal STOP LOSS TAKE PROFIT
Data de criação: 2025-04-24 17:08:39 última modificação: 2025-04-24 17:08:39
cópia: 0 Cliques: 353
2
focar em
319
Seguidores

Estratégia de rompimento/reversão ponderada por volume com base em pontos de pivô Estratégia de rompimento/reversão ponderada por volume com base em pontos de pivô

Visão geral

A estratégia combina suporte/resistência (S/R), breakout/reversão, filtragem de volume de transação e sistema de alerta para capturar pontos de inflexão importantes no mercado. A estratégia identifica breakouts ou reversões de preços e combina a confirmação de volume de transação anormal para aumentar a confiabilidade dos sinais de negociação. A estratégia usa um stop loss fixo de 2% e um stop loss ajustável (default de 3%) para gerenciar o risco.

Princípio da estratégia

  1. Identificação de suporte/resistênciaUtilização:ta.pivothigh()eta.pivotlow()A função identifica os níveis críticos de preços dentro de um período de tempo especificado (pivot Len). A função dispara um sinal quando o preço quebra a resistência (aumento de 1%) ou rebota a partir do suporte (retirada após a pesquisa).
  2. Filtro de quantidade de entregaO volume de transação calculado é considerado uma confirmação válida quando o volume de transação atual excede o volume multiplicador do SMA (o padrão é 1,5 vezes).
  3. Lógica multivariada
    • Condições de múltiplos cabeçalhosPreço ultrapassa resistência*1.01) e acompanhado de alto volume de transação, ou o preço está perto da zona de suporte (<±1%), ocorre um “falso declínio” (<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    • Condições de cabeça vazia“O preço caiu abaixo da zona de suporte.*0.99) e acompanhado de alto volume de transação, ou o preço está perto da zona de resistência (dentro de ± 1%) “falso rompimento” (high ≥ resZone, mas o fechamento recuou) e volume de transação aumentou.
  4. Gestão de Riscos: 2% de stop loss fixo e um parâmetro ajustável (default 3%)strategy.exit()concluir.

Análise de vantagens

  1. Verificação multifatorialA combinação de estrutura de preços (S/R), volume de transações e comportamento de mercado (falso breakout/falso breakout) reduz significativamente a probabilidade de falsos sinais.
  2. Adaptação dinâmica: Atualização automática de suporte/resistência, adaptando-se às mudanças do mercado.
  3. Controle de risco rigorosoO Stop-Loss é fixo para evitar perdas excessivas em uma única transação, e o Stop-Loss pode ser ajustado para adaptar-se a diferentes mercados voláteis.
  4. Visualização forteA linha de suporte/resistência é traçada em tempo real e os sinais de negociação são claros.
  5. Integração de AlertaSistema de negociação automática emparelhado, adaptado a diferentes cenários de negociação.

Análise de Riscos

  1. Riscos de uma cidade em choqueSolução: Aumentar os indicadores de filtragem de tendências, como o ADX ou a EMA.
  2. Parâmetros sensíveis:pivotLen e volMultiplier precisam ser ajustados de acordo com o mercado.
  3. Atraso na entregaO volume de transações anormais pode ocorrer após a flutuação dos preços. Solução: Combinação de dados de negociação ou abreviação volSmaLength.
  4. O risco de saltar do aviãoA solução: Use a lista de preços limite ou evite os períodos de alta volatilidade.

Direção de otimização

  1. Filtragem de tendênciasAdicionar filtro de direção ADX> 25 condicional ou 200 EMA, evitando negociação de contrapartida.
  2. Parâmetros dinâmicos: Ajusta automaticamente o pivotLen e o volMultiplier de acordo com a volatilidade do mercado (como o ATR).
  3. Paragem de escalaO que você pode fazer: Configurar dois paradas (por exemplo, 2% para equilibrar a posição e o restante para rastrear o prejuízo), aumentar a taxa de ganho e perda.
  4. Otimização de aprendizagem de máquina: Optimizar o modelo de treinamento com dados históricos usando os parâmetros volMultiplier e tpPerc.
  5. Verificação transversalIntrodução de confirmação S/R em um período de tempo mais longo, aumentando a qualidade do sinal.

Resumir

A estratégia usa uma verificação tripla (posição do preço, volume de transação, comportamento do preço) para criar uma estrutura de negociação de alta probabilidade, especialmente adequada para a captura de tendências iniciais. Os principais benefícios são a transparência lógica e o controle do risco, mas observe suas limitações em mercados turbulentos. A otimização futura pode se concentrar na auto-adaptação dos parâmetros e na filtragem de tendências para aumentar ainda mais a estabilidade.

Código-fonte da estratégia
/*backtest
start: 2024-04-24 00:00:00
end: 2024-12-31 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/

//@version=5
strategy("S/R Breakout/Reversal + Volume + Alerts", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// === INPUTS ===
pivotLen       = input.int(10, "Pivot Lookback for S/R")
volSmaLength   = input.int(20, "Volume SMA Length")
volMultiplier  = input.float(1.5, "Volume Multiplier")
tpPerc         = input.float(3.0, "Take Profit %", step=0.1)
slPerc         = 2.0  // Stop Loss fixed at 2%

// === S/R ZONES ===
pivotHigh = ta.pivothigh(high, pivotLen, pivotLen)
pivotLow  = ta.pivotlow(low, pivotLen, pivotLen)

var float resZone = na
var float supZone = na
if not na(pivotHigh)
    resZone := pivotHigh
if not na(pivotLow)
    supZone := pivotLow

plot(supZone, title="Support", color=color.green, linewidth=2, style=plot.style_linebr)
plot(resZone, title="Resistance", color=color.red,   linewidth=2, style=plot.style_linebr)

// === VOLUME FILTER ===
volSma     = ta.sma(volume, volSmaLength)
highVolume = volume > volSma * volMultiplier

// === LONG LOGIC ===
priceAboveRes     = close > resZone * 1.01
nearSupport       = close >= supZone * 0.99 and close <= supZone * 1.01
rejectSupport     = low <= supZone and close > supZone
longBreakoutCond  = priceAboveRes and highVolume
longReversalCond  = nearSupport and rejectSupport and highVolume
longCondition     = longBreakoutCond or longReversalCond

// === SHORT LOGIC ===
priceBelowSup     = close < supZone * 0.99
nearResistance    = close >= resZone * 0.99 and close <= resZone * 1.01
rejectResistance  = high >= resZone and close < resZone
shortBreakoutCond = priceBelowSup and highVolume
shortReversalCond = nearResistance and rejectResistance and highVolume
shortCondition    = shortBreakoutCond or shortReversalCond

// === ENTRIES WITH LABELS ===
if (longCondition)
    strategy.entry("Long", strategy.long)
    label.new(bar_index, low * 0.995, "BUY", style=label.style_label_up, color=color.green, textcolor=color.white)

if (shortCondition)
    strategy.entry("Short", strategy.short)
    label.new(bar_index, high * 1.005, "SELL", style=label.style_label_down, color=color.red, textcolor=color.white)

// === TP/SL ===
longTP  = close * (1 + tpPerc / 100)
longSL  = close * (1 - slPerc / 100)
shortTP = close * (1 - tpPerc / 100)
shortSL = close * (1 + slPerc / 100)

strategy.exit("Long TP/SL",  from_entry="Long",  limit=longTP,  stop=longSL)
strategy.exit("Short TP/SL", from_entry="Short", limit=shortTP, stop=shortSL)

// === ALERT CONDITIONS ===
alertcondition(longCondition,  title="Buy Alert",  message="🔔 BUY signal: S/R + Volume breakout/reversal")
alertcondition(shortCondition, title="Sell Alert", message="🔔 SELL signal: S/R + Volume breakout/reversal")