Kaique Mitsuo Silva Yamamoto
Mercado financeiroAutomação de EstratégiasTradingView / Pine ScriptBibliotecasIndicadores Técnicos

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étodoBaseComportamento
volatilityATR normalizadoPeríodo inversamente proporcional à volatilidade
efficiencyKaufman ER (Efficiency Ratio)Período mínimo em tendência, máximo em lateral
cycleCiclos de HilbertPeríodo baseado no ciclo dominante do mercado
rangeHigh-Low rangeSemelhante ao ATR mas mais simples

API / Funções

FunçãoParâmetrosRetornoDescrição
byVolatility()minLen, maxLen, atrPeriodintComprimento baseado em ATR
byEfficiency()minLen, maxLen, erPeriodintComprimento pelo Efficiency Ratio
byCycle()minLen, maxLenintComprimento pelo ciclo dominante
byRange()minLen, maxLen, lookbackintComprimento 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 maxLen

Integrações

ScriptComo combinar
Cometreon_PublicQualquer tipo de MA com comprimento adaptativo
obvFilterOBV com suavização de comprimento variável
Bjorgum MTF MAComplementar MTF MA com períodos adaptativos

Limitações

LimitaçãoImpacto
O comprimento muda a cada barraDificulta comparação com backtest de período fixo
Método cycle (Hilbert) é instável em dados ruidososPode oscilar entre extremos em alguns mercados
Período mínimo e máximo precisam de calibraçãoDefinir 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.

On this page