Calculadora de média móvel exponencial
Cinco leituras que começam em 10 e sobem de um em um, suavizadas com fator 0,5, terminam numa EMA de 13,0625: os valores recentes pesam mais e os antigos perdem peso de forma geométrica. Você recebe a trajetória completa. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Série
- 10, 11, 12, 13, 14
- Fator
- 0,5
- N
- 5
- Ema
- 10, 10,5, 11,25, 12,125, 13,0625
- Última EMA
- 13,0625
Uma média móvel exponencial (EMA) é um suavizador recursivo que multiplica a observação mais recente por um fator de suavização α e a combina com a EMA anterior com peso (1 − α). Diferente de uma média móvel simples que dá peso igual a cada ponto dentro de uma janela fixa e zero fora dela, a EMA lembra de todo o histórico com influência que decai geometricamente, de modo que leituras recentes movem o resultado mais do que as distantes.
O que é uma média móvel exponencial e por que difere de uma média simples
Comece pela média móvel simples (SMA): escolha um comprimento de janela N, some a média dos últimos N pontos e deslize a janela para frente. Cada ponto dentro da janela tem peso 1/N; cada ponto mais antigo que N tem peso zero. Esse corte abrupto é fácil de explicar, mas cria saltos quando um pico grande entra ou sai da janela e ignora por completo informação antiga útil.
A média móvel exponencial substitui a janela rígida por um único fator de suavização α entre zero e um. Ao desenrolar a recorrência, o peso de uma observação k passos atrás é α · (1 − α)^k, uma série geométrica que nunca chega totalmente a zero e decai rápido quando α é grande. Quando α é pequeno a trajetória é suave e com muito atraso; quando α se aproxima de um a EMA gruda no valor mais recente.
Operadores costumam definir α = 2 / (N + 1) para que uma «EMA de N períodos» tenha meia-vida comparável a uma SMA de N períodos, mas o objeto matemático só precisa de α. Analistas usam EMA em preços, volumes, fluxos de sensores, métricas web e ruído residual porque a atualização é O(1) por tick após a semente, exige só o estado EMA anterior e não olha para o futuro se aplicada online.
Uma média aritmética simples de toda a série é outra estatística: trata a primeira e a última observação de forma igual e não é um filtro no tempo. Esta ferramenta é especificamente o filtro EMA recursivo com um α explícito, não uma média de janela deslizante nem a média e variância de uma distribuição de probabilidade exponencial.
Casos de uso
Suavizadores de preço e retorno em cadernos de trading
Quantitativos e estudantes calculam trajetórias EMA em preços de fechamento com um α explícito (ou α a partir do span N) para comparar atraso, ruído e regras de cruzamento sem fórmulas de planilha.
Métricas de sensores e operações
Engenheiros suavizam fluxos de temperatura, latência ou taxa de erro com um α reativo para que painéis destaquem mudanças de regime recentes e amorteçam picos de uma única amostra.
Perguntas frequentes
Qual fórmula a EMA usa?
Um α maior dá mais peso aos pontos recentes.
Como converter um span de EMA de N períodos em α?
Uma convenção comum é α = 2 / (N + 1). Passe o α resultante como factor; esta ferramenta não aceita só o span.
A calculadora de média móvel exponencial é gratuita?
A ferramenta do navegador roda grátis no seu dispositivo.
Que fator de suavização devo escolher?
Filtros curtos e reativos costumam usar valores perto de 0,3 a 0,5, e filtros lentos de tendência, valores perto de 0,05 a 0,1. Um fator alto acompanha de perto o último valor; um baixo dá uma curva mais suave, porém com mais atraso.
Qual a diferença entre uma EMA e uma média móvel simples?
A média móvel simples dá o mesmo peso a cada ponto de uma janela fixa e ignora os anteriores, o que causa saltos quando um pico entra ou sai. A EMA guarda todo o histórico com pesos que diminuem geometricamente.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/stat/exponential-moving-average \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"series":[10,11,12,13,14],"factor":0.5}'const res = await fetch("https://api.kit.forhosting.com/stat/exponential-moving-average", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"series": [
10,
11,
12,
13,
14
],
"factor": 0.5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/exponential-moving-average",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"series": [
10,
11,
12,
13,
14
],
"factor": 0.5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/exponential-moving-average", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"series":[10,11,12,13,14],"factor":0.5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"series":[10,11,12,13,14],"factor":0.5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/exponential-moving-average", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"series": [
10,
11,
12,
13,
14
],
"factor": 0.5
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.exponential_moving_average",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Esta calculadora recebe uma série cronológica de números finitos e um fator α no intervalo semiaberto (0, 1], inicializa a trajetória com a primeira observação e aplica EMA_t = α · x_t + (1 − α) · EMA_{t−1} em cada índice posterior. A resposta devolve o array completo de EMA, o last_ema final, o comprimento n da série, o fator usado e uma string compacta de fórmula. Séries vazias, entradas não finitas e fatores fora de (0, 1] falham com invalid_input para que quem chama nunca receba um NaN silencioso. A aritmética é plenamente determinística, roda grátis no seu navegador e está disponível pela API a US$ 0,002 por requisição bem-sucedida, sem modelo de linguagem e sem serviço externo de dados de mercado no caminho crítico.
O que é uma média móvel exponencial e por que difere de uma média simples
Em cada passo temporal a nova estimativa é uma combinação convexa da nova observação e da estimativa anterior: EMA_t vale α vezes x_t mais (1 − α) vezes EMA_{t−1}.
Como esta calculadora valida a entrada e constrói a trajetória EMA
Chame a capacidade com dois campos obrigatórios: series (um array não vazio de números finitos em ordem cronológica, o mais antigo primeiro) e factor (o coeficiente de suavização α). A validação rejeita campo ausente, série que não é array, série vazia, listas maiores que o máximo publicado, qualquer entrada que não seja número finito e qualquer fator que não seja número finito estritamente maior que zero e no máximo um. O motor também aceita os aliases values, data, x e prices para a série, e alpha, smoothing e smoothing_factor para o fator, de modo que scripts que já falam nesses termos não precisam de um passo de renomeação. Quando o fator está fora da faixa a mensagem de erro diz isso de forma explícita sob invalid_input, e falhas de validação não consomem saldo pré-pago. Após a validação o núcleo inicializa EMA_0 com o primeiro valor da série e avança uma única passagem: em cada índice t define EMA_t = α · x_t + (1 − α) · EMA_{t−1}, arredonda resultados intermediários a doze casas decimais para JSON estável entre runtimes e armazena a trajetória completa. A resposta devolve n, factor, series, ema, last_ema e formula para que o código a jusante possa plotar a trajetória, afirmar o nível final ou recalcular passos intermediários sem reenviar a requisição.
Uso prático, escolha do fator, preços e entrega
Use a ferramenta do navegador quando quiser uma EMA imediata ao revisar um caderno de trading, suavizar um sensor de laboratório ruidoso ou explicar pesos geométricos em uma aula de estatística sem instalar um pacote. Escolha α conforme a convenção do domínio: filtros curtos e reativos usam valores perto de 0.3–0.5; filtros de tendência lentos, perto de 0.05–0.1; o mapeamento habitual de span α = 2 / (N + 1) transforma uma EMA de 9 períodos em α = 0.2 e uma de 19 períodos em α = 0.1. Se você já armazena o span N em vez de α, converta uma vez antes de chamar. Não há modelo de linguagem, nem feed de mercado externo nem aleatoriedade, de modo que a capacidade é segura para fixar em checagens de integração contínua e materiais de aula reproduzíveis. Use a API quando um script, plataforma de aprendizagem, harness de backtest ou painel precisar de JSON estável para muitas séries sob um único contrato. Cada requisição bem-sucedida é um item faturável a US$ 0,002; validação falha não consome saldo. Séries aceitas permanecem limitadas para isolados Worker: até cem mil pontos cobrem tabelas de aula, históricos diários de preços e extratos analíticos típicos e ainda terminam com rapidez. Os resultados são plenamente determinísticos: a mesma série e o mesmo fator sempre produzem o mesmo array ema e o mesmo last_ema. Conecte o endpoint a ajudantes de gráficos, tutoriais quantitativos, painéis de controle de qualidade, sandboxes de entrevista de código ou etapas de pré-processamento em que você já prefere uma recorrência EMA em forma fechada a suavizadores opacos de caixa-preta que escondem a regra de semente ou cortam α em silêncio.
Casos de integração
Ensino de filtros recursivos e pesos geométricos
Instrutores e corretores de lição mostram como os pesos EMA decaem como (1 − α)^k e verificam implementações de alunos contra um last_ema golden estável.
Perguntas técnicas
Como calcular uma média móvel exponencial com esta ferramenta?
Envie JSON com series (array de números, o mais antigo primeiro) e factor (α em (0, 1]) para stat.exponential_moving_average. A resposta devolve ema, last_ema, n, factor, series e formula.
O que acontece se o fator de suavização estiver fora da faixa?
A requisição falha com invalid_input. α deve ser um número finito estritamente maior que 0 e no máximo 1; valores fora dessa faixa são rejeitados.