obvFilter
Biblioteca Pine Script que implementa o OBV (On-Balance Volume) com suavização por múltiplos tipos de médias móveis (fast/slow) para filtrar ruído e identificar divergências.
Tipo: Biblioteca (library)
Categoria: Indicadores Técnicos
Fonte: TradingView Script
Visão geral
obvFilter implementa o OBV (On-Balance Volume) com uma camada de suavização configurável — em vez do OBV bruto (que pode ser muito ruidoso), a biblioteca aplica dois tipos de MA (rápida e lenta) sobre o OBV para gerar sinais mais claros.
O que é OBV?
OBV (On-Balance Volume):
Se close > close[1] → OBV += volume (compradores controlaram o candle)
Se close < close[1] → OBV -= volume (vendedores controlaram o candle)
Se close = close[1] → OBV inalterado
OBV crescente com preço crescente → confirmação de alta
OBV decrescente com preço crescente → divergência bearish ⚠️Como funciona
Duas médias sobre o OBV
OBV bruto ──────────────────────────────────────────────
OBV Fast MA ── ──────────── (período curto, ex: EMA 5)
OBV Slow MA ──────────────── (período longo, ex: EMA 20)
Sinal bullish: Fast MA cruza ACIMA de Slow MA
Sinal bearish: Fast MA cruza ABAIXO de Slow MAAPI / Funções
| Função | Parâmetros | Retorno | Descrição |
|---|---|---|---|
calculate() | source, volume | float | OBV bruto |
fastMA() | obv, len, type | float | MA rápida sobre o OBV |
slowMA() | obv, len, type | float | MA lenta sobre o OBV |
isBullish() | fast, slow | bool | Fast MA > Slow MA |
isBearish() | fast, slow | bool | Fast MA < Slow MA |
divergence() | obv, price, lookback | string | "bullish", "bearish" ou "none" |
Exemplo de uso
//@version=6
indicator("OBV Filter", overlay=false)
import author/obvFilter/1 as of
// Calcular OBV
obv = of.calculate(close, volume)
// Suavizar com duas MAs
fastLen = input.int(5, "Fast MA Length")
slowLen = input.int(20, "Slow MA Length")
maType = input.string("EMA", "MA Type", options=["SMA","EMA","WMA","HMA","VWMA"])
fastObv = of.fastMA(obv, fastLen, maType)
slowObv = of.slowMA(obv, slowLen, maType)
// Plotar
plot(obv, title="OBV", color=color.gray, linewidth=1)
plot(fastObv, title="OBV Fast", color=color.blue, linewidth=2)
plot(slowObv, title="OBV Slow", color=color.orange, linewidth=2)
// Colorir fundo por sinal
bgcolor(of.isBullish(fastObv, slowObv) ? color.new(color.green, 90) : na)
bgcolor(of.isBearish(fastObv, slowObv) ? color.new(color.red, 90) : na)
// Verificar divergência
div = of.divergence(obv, close, 20)
if div == "bearish"
label.new(bar_index, obv, "⚠️ Div Bearish", color=color.red)Integrações
| Script | Como combinar |
|---|---|
| Cometreon_Public | Usar tipos de MA avançados (HMA, T3) sobre o OBV |
| Three Moving Average | OBV como filtro de volume para sinais de MA |
| SharelineCore | Combinar OBV com CVD para análise de fluxo completa |
Limitações
| Limitação | Impacto |
|---|---|
| OBV assume que todo volume de um candle foi compra ou venda | Oversimplificação — na realidade, volume é misto |
| Divergências podem durar muito tempo | Sinal antecipado demais sem gestão de risco |
| Volume não disponível em todos os instrumentos | Índices sintéticos e alguns CFDs não têm volume real |
Aviso Legal: Conteúdo educativo. Não constitui recomendação de investimento. Resultados passados não garantem resultados futuros.
Adaptive_Length
Biblioteca Pine Script para cálculo de comprimentos dinâmicos de indicadores, adaptando o período de qualquer MA ou oscilador com base na volatilidade ou ciclos de mercado.
BjCandlePatterns
Biblioteca Pine Script do autor Bjorgum com detecção automática de padrões de candles: Doji, Engulfing, Hammer, Morning/Evening Star, Harami e outros padrões clássicos.