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.
Tipo: Biblioteca (library)
Categoria: Indicadores Técnicos
Fonte: TradingView Script
Visão geral
Adaptive_Length resolve um problema clássico de análise técnica: períodos fixos não funcionam bem em todos os regimes de mercado. Uma EMA(20) que funciona em tendência pode ser lenta demais em alta volatilidade e rápida demais em lateralização.
Esta biblioteca calcula comprimentos dinâmicos que se adaptam automaticamente às condições atuais do mercado.
Por que comprimentos adaptativos?
Mercado em tendência forte (baixa volatilidade relativa):
→ Período longo: MA suave, menos ruído, sinal mais claro
Mercado volátil / lateral (alta volatilidade relativa):
→ Período curto: MA reativa, captura mudanças rápidas de direção
Adaptive_Length faz essa escolha automaticamente.Métodos de adaptação disponíveis
| Método | Base | Comportamento |
|---|---|---|
volatility | ATR normalizado | Período inversamente proporcional à volatilidade |
efficiency | Kaufman ER (Efficiency Ratio) | Período mínimo em tendência, máximo em lateral |
cycle | Ciclos de Hilbert | Período baseado no ciclo dominante do mercado |
range | High-Low range | Semelhante ao ATR mas mais simples |
API / Funções
| Função | Parâmetros | Retorno | Descrição |
|---|---|---|---|
byVolatility() | minLen, maxLen, atrPeriod | int | Comprimento baseado em ATR |
byEfficiency() | minLen, maxLen, erPeriod | int | Comprimento pelo Efficiency Ratio |
byCycle() | minLen, maxLen | int | Comprimento pelo ciclo dominante |
byRange() | minLen, maxLen, lookback | int | Comprimento por range de preços |
Exemplo de uso
//@version=6
indicator("Adaptive MA", overlay=true)
import author/Adaptive_Length/1 as al
import Cometreon/Cometreon_Public/1 as ct
// Comprimento adaptativo (mínimo 5, máximo 50, baseado em ATR)
len = al.byVolatility(minLen=5, maxLen=50, atrPeriod=14)
// Usar com qualquer MA
adaptiveEMA = ct.ma(close, len, "EMA")
plot(adaptiveEMA, title="EMA Adaptativa", color=color.blue)
plot(len, title="Comprimento Atual", display=display.none)
// Alertar quando o comprimento muda muito
alertcondition(math.abs(len - len[1]) > 5, "Comprimento mudou", "Período ajustado: " + str.tostring(len))Diagrama de comportamento
Alta volatilidade:
ATR alto → len pequeno (ex: 8) → MA reativa
↓
Volatilidade normaliza
↓
Baixa volatilidade:
ATR baixo → len grande (ex: 35) → MA suave
Transição:
len se move gradualmente entre minLen e maxLenIntegrações
| Script | Como combinar |
|---|---|
| Cometreon_Public | Qualquer tipo de MA com comprimento adaptativo |
| obvFilter | OBV com suavização de comprimento variável |
| Bjorgum MTF MA | Complementar MTF MA com períodos adaptativos |
Limitações
| Limitação | Impacto |
|---|---|
| O comprimento muda a cada barra | Dificulta comparação com backtest de período fixo |
Método cycle (Hilbert) é instável em dados ruidosos | Pode oscilar entre extremos em alguns mercados |
| Período mínimo e máximo precisam de calibração | Definir mal os limites invalida a adaptação |
Aviso Legal: Conteúdo educativo. Não constitui recomendação de investimento. Resultados passados não garantem resultados futuros.
Cometreon_Public
Biblioteca Pine Script com 15 tipos de médias móveis, RSI, MACD e Alligator de Williams em funções reutilizáveis para uso em estratégias e indicadores customizados.
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.