Como a Frama é Calculada
Resposta direta: o que significa o cálculo da “Frama”
FRAMA (frequentemente escrita como “Frama”) significa FRactal Adaptive Moving Average (Média Móvel Adaptativa Fractal). Ela é calculada para produzir uma média móvel cuja força de suavização se adapta a quão “complexa” ou “tendenciosa” a ação recente do preço parece. A adaptação vem da estimativa de uma dimensão fractal a partir das amplitudes de preço em múltiplas janelas de lookback e, em seguida, da conversão dessa estimativa em um fator de suavização efetivo.
Um ponto-chave é que o valor da Frama não é produzido por uma única fórmula usando apenas um parâmetro. Ele depende de:
- os comprimentos de lookback escolhidos,
- a definição dos dados de preço (por exemplo, usando amplitudes de alta/baixa derivadas de OHLC),
- e o mapeamento da dimensão fractal para o fator de suavização.
A mecânica: entradas e etapas principais do cálculo
1) Defina os dados e a “amplitude” usada
A maioria das implementações da Frama usa a amplitude do preço em uma janela, tipicamente derivada dos valores de alta e baixa. Um conceito padrão de amplitude é:
- Amplitude em uma janela: uma medida como (máxima mais alta − mínima mais baixa) dentro dessa janela.
Se você está verificando um cálculo por conta própria, a primeira tarefa é fixar a definição exata de “amplitude” que sua fonte usa, porque mudar a definição de amplitude muda a série resultante da Frama.
2) Divida o lookback principal em subjanelas
Um design típico da Frama usa um comprimento de janela principal (chame-o de N). Para estimar o comportamento fractal, o algoritmo considera:
- uma amplitude sobre as últimas N barras, e
- amplitudes sobre duas subjanelas consecutivas de comprimento N/2 (quando N é par).
Isso significa que, para uma barra no tempo t, você conceitualmente calcula:
- Amplitude1: amplitude sobre a primeira subjanela,
- Amplitude2: amplitude sobre a segunda subjanela,
- AmplitudeTotal: amplitude sobre a janela completa.
3) Calcule uma estimativa de dimensão fractal
A dimensão fractal (no sentido da Frama) é estimada a partir de como a AmplitudeTotal se compara à Amplitude1 e à Amplitude2. Uma abordagem comum é converter a razão em um valor de dimensão que aumenta quando o movimento do preço parece mais irregular e diminui quando parece mais uma tendência suave.
Como existem múltiplas versões na prática, a verificação exige checar sua referência escolhida para o mapeamento exato das razões de amplitude para a dimensão fractal.
4) Converta a dimensão fractal em um fator de suavização adaptativo
Uma vez que uma estimativa de dimensão fractal está disponível, a Frama a transforma em um fator de suavização. A ideia é:
- quando a complexidade estimada sugere “mais ruído”, a suavização se torna mais forte (resposta mais lenta),
- quando sugere “mais estrutura de tendência”, a suavização se torna mais fraca (resposta mais rápida).
Novamente, a conversão exata depende da implementação. Muitas variantes usam parâmetros como limites mínimos/máximos de suavização para manter o fator de suavização em uma faixa prática.
5) Aplique uma atualização de suavização exponencial
Finalmente, a Frama atualiza recursivamente no estilo de uma média móvel:
- o novo valor da Frama no tempo t é uma combinação do preço atual (ou um proxy escolhido, como um preço médio) e do valor anterior da Frama,
- onde o peso da combinação é o fator de suavização adaptativo calculado nas etapas 2–4.
Portanto, mesmo quando a matemática da dimensão fractal está correta, você ainda precisa verificar:
- qual “preço atual” é usado na atualização (fechamento vs. preço médio), e
- como o primeiro valor da Frama é inicializado.
Evidência ou exemplo: como verificar um cálculo da Frama sem suposições de negociação
Como a fórmula exata pode variar entre fontes, a maneira mais confiável de verificar “como é calculada” é reproduzi-la a partir de suposições fixas em um pequeno conjunto de dados.
Um procedimento de autoverificação
- Escolha um trecho histórico curto e uma definição fixa de barra (por exemplo, OHLC com alta/baixa e fechamento).
- Escolha N e a regra de divisão das subjanelas (por exemplo, N/2 em cada lado, exigindo um N par).
- Calcule Amplitude1, Amplitude2 e AmplitudeTotal usando a mesma definição de amplitude da sua fonte alvo.
- Aplique o mapeamento de dimensão fractal exatamente como declarado nessa fonte.
- Calcule o fator de suavização adaptativo e, em seguida, a atualização recursiva da Frama.
- Compare os valores finais da sua série com a saída alvo para as mesmas entradas.
Suposição material a declarar explicitamente
Declare suas suposições em suas anotações:
- se você usou (máxima mais alta − mínima mais baixa) como amplitude,
- se você usou fechamento ou preço médio na atualização final,
- como você lida com as primeiras N barras (sem saída, aquecimento ou inicialização),
- e se você usa apenas N par ou arredondamento para as subjanelas.
Se você mudar qualquer uma dessas coisas, deve esperar que os valores da Frama mudem—mesmo se você mantiver a mesma “ideia central” de adaptação fractal.
Limitações e modos de falha
1) Diferenças de implementação são comuns
“Frama” é um conceito algorítmico, mas diferentes plataformas e artigos podem usar detalhes diferentes para:
- o mapeamento da dimensão fractal,
- os limites de suavização,
- o proxy de preço na atualização,
- e a inicialização.
Portanto, você não pode comparar com segurança os valores da Frama entre provedores, a menos que os detalhes do cálculo coincidam.
2) Entradas baseadas em amplitude podem ser sensíveis a ruído
Usar amplitudes de alta/baixa significa que o indicador pode reagir fortemente a extremos intrabarra. Em condições instáveis, oscilações aleatórias podem mudar as razões de amplitude e, portanto, o fator de suavização adaptativo, mesmo quando a “tendência” subjacente não é clara.
3) As escolhas de parâmetros podem dominar o comportamento
O comprimento do lookback e quaisquer limites de suavização afetam fortemente a rapidez com que a Frama se adapta. Uma janela curta tende a ser mais responsiva, mas também pode ser mais instável. Uma janela mais longa tende a ser mais suave, mas pode atrasar. Isso é uma troca matemática e estatística, não uma garantia de correção.
4) Indicadores recursivos dependem das condições iniciais
Como a Frama é tipicamente recursiva, decisões de inicialização precoce e o tratamento do aquecimento podem afetar valores posteriores. Em históricos longos, a influência pode diminuir, mas em amostras mais curtas pode importar.
Verificação e próxima pergunta a fazer
Para explicar a Frama com precisão a outra pessoa, produza três coisas:
- Os detalhes exatos da fórmula que você está usando, incluindo como amplitude, dimensão fractal, fator de suavização e atualização recursiva são definidos.
- Uma lista de entradas necessárias (pelo menos alta/baixa e um preço para a etapa de atualização) e os parâmetros necessários (por exemplo, N e quaisquer limites de suavização).
- Uma declaração de limitação com base nas escolhas de implementação que você assumiu (por exemplo, sensibilidade ao ruído de alta/baixa ou dependência da inicialização).
Uma próxima pergunta útil é: como as configurações que você escolhe mudam o equilíbrio entre responsividade e suavização? Se você compartilhar os nomes específicos dos parâmetros e as definições de preço/amplitude da fonte que está usando, o cálculo da Frama pode ser verificado passo a passo em relação ao seu conjunto de dados.