Calculadora de media móvil exponencial
Cinco lecturas que empiezan en 10 y suben de uno en uno, suavizadas con un factor de 0,5, terminan en una EMA de 13,0625: los valores recientes pesan más y los antiguos se desvanecen de forma geométrica. Obtendrá la trayectoria completa. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Serie
- 10, 11, 12, 13, 14
- Factor
- 0,5
- N
- 5
- Ema
- 10, 10,5, 11,25, 12,125, 13,0625
- Última EMA
- 13,0625
Una media móvil exponencial (EMA) es un suavizador recursivo que multiplica la última observación por un factor de suavizado α y la combina con la EMA anterior con peso (1 − α). A diferencia de una media móvil simple que da el mismo peso a cada punto de una ventana fija y cero fuera de ella, la EMA recuerda toda la historia con influencia que decae de forma geométrica, de modo que las lecturas recientes mueven el resultado más que las lejanas.
Qué es una media móvil exponencial y por qué difiere de un promedio simple
Parta de la media móvil simple (SMA): elija una longitud de ventana N, promedie los últimos N puntos y deslice la ventana hacia adelante. Cada punto dentro de la ventana tiene peso 1/N; cada punto anterior a N tiene peso cero. Ese corte abrupto es fácil de explicar, pero crea saltos cuando un pico grande entra o sale de la ventana e ignora por completo información antigua útil.
La media móvil exponencial sustituye la ventana rígida por un único factor de suavizado α entre cero y uno. Al desenvolver la recurrencia se ve que el peso de una observación k pasos atrás es α · (1 − α)^k, una serie geométrica que nunca llega del todo a cero y que decae con rapidez cuando α es grande. Cuando α es pequeño la trayectoria es suave y con mucho retardo; cuando α se acerca a uno la EMA se pega al valor más reciente.
Los operadores suelen fijar α = 2 / (N + 1) para que una «EMA de N períodos» tenga una semivida comparable a una SMA de N períodos, pero el objeto matemático solo necesita α. Los analistas usan EMA sobre precios, volúmenes, flujos de sensores, métricas web y ruido residual porque la actualización es O(1) por tick tras la semilla, solo requiere el estado EMA anterior y no mira al futuro si se aplica en línea.
Una media aritmética simple de toda la serie es otra estadística: trata por igual la primera y la última observación y no es un filtro en el tiempo. Esta herramienta es específicamente el filtro EMA recursivo con un α explícito, no una media de ventana deslizante ni la media y varianza de una distribución de probabilidad exponencial.
Qué puede hacer con ella
Suavizado de precios y retornos en cuadernos de trading
Cuantitativos y estudiantes calculan trayectorias EMA sobre precios de cierre con un α explícito (o α desde el span N) para comparar retardo, ruido y reglas de cruce sin fórmulas de hoja de cálculo.
Métricas de sensores y operaciones
Los ingenieros suavizan flujos de temperatura, latencia o tasa de error con un α reactivo para que los paneles resalten cambios de régimen recientes y amortigüen picos de una sola muestra.
Preguntas frecuentes
¿Qué fórmula usa la EMA?
Un α mayor da más peso a los puntos recientes.
¿Cómo se convierte un span de EMA de N períodos en α?
Una convención habitual es α = 2 / (N + 1). Pase el α resultante como factor; esta herramienta no acepta solo el span.
¿Es gratuita la calculadora de media móvil exponencial?
La herramienta del navegador se ejecuta gratis en su dispositivo.
¿Qué factor de suavizado conviene elegir?
Los filtros cortos y reactivos suelen usar valores cercanos a 0,3 o 0,5, y los filtros lentos de tendencia, valores cercanos a 0,05 o 0,1. Un factor alto sigue de cerca el último valor; uno bajo da una curva más suave pero con más retraso.
¿En qué se diferencia una EMA de una media móvil simple?
La media móvil simple da el mismo peso a cada punto de una ventana fija e ignora los anteriores, lo que provoca saltos cuando un pico entra o sale. La EMA conserva todo el historial con pesos que se reducen geométricamente.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
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)Ejemplo de solicitud
{
"series": [
10,
11,
12,
13,
14
],
"factor": 0.5
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.exponential_moving_average",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Esta calculadora recibe una serie cronológica de números finitos y un factor α en el intervalo semiabierto (0, 1], inicializa la trayectoria con la primera observación y aplica EMA_t = α · x_t + (1 − α) · EMA_{t−1} en cada índice posterior. La respuesta devuelve el arreglo completo de EMA, el last_ema final, la longitud n de la serie, el factor usado y una cadena compacta de fórmula. Series vacías, entradas no finitas y factores fuera de (0, 1] fallan con invalid_input para que quien llama no reciba un NaN silencioso. La aritmética es plenamente determinista, se ejecuta gratis en su navegador y está disponible por la API a $0.002 por petición exitosa, sin modelo de lenguaje ni servicio externo de datos de mercado en la ruta crítica.
Qué es una media móvil exponencial y por qué difiere de un promedio simple
En cada paso temporal la nueva estimación es una combinación convexa de la nueva observación y la estimación previa: EMA_t vale α veces x_t más (1 − α) veces EMA_{t−1}.
Cómo valida la entrada esta calculadora y construye la trayectoria EMA
Invoque la capacidad con dos campos obligatorios: series (un arreglo no vacío de números finitos en orden cronológico, el más antiguo primero) y factor (el coeficiente de suavizado α). La validación rechaza un campo ausente, una serie que no sea arreglo, una serie vacía, listas más largas que el máximo publicado, cualquier entrada que no sea un número finito y cualquier factor que no sea un número finito estrictamente mayor que cero y como máximo uno. El motor también acepta los alias values, data, x y prices para la serie, y alpha, smoothing y smoothing_factor para el factor, de modo que los scripts que ya hablan en esos términos no necesitan un paso de renombrado. Cuando el factor está fuera de rango el mensaje de error lo indica de forma explícita bajo invalid_input, y los fallos de validación no consumen saldo prepago. Tras la validación el núcleo inicializa EMA_0 con el primer valor de la serie y avanza una sola pasada: en cada índice t fija EMA_t = α · x_t + (1 − α) · EMA_{t−1}, redondea resultados intermedios a doce decimales para un JSON estable entre entornos y almacena la trayectoria completa. La respuesta devuelve n, factor, series, ema, last_ema y formula para que el código aguas abajo pueda graficar la trayectoria, afirmar el nivel final o recalcular pasos intermedios sin reenviar la petición.
Uso práctico, elección del factor, precios y entrega
Use la herramienta del navegador cuando desee una EMA inmediata al revisar un cuaderno de trading, suavizar un sensor de laboratorio ruidoso o explicar pesos geométricos en una lección de estadística sin instalar un paquete. Elija α según la convención del dominio: filtros cortos y reactivos usan valores cerca de 0.3–0.5; filtros de tendencia lentos, cerca de 0.05–0.1; el mapeo habitual de span α = 2 / (N + 1) convierte una EMA de 9 períodos en α = 0.2 y una de 19 períodos en α = 0.1. Si ya almacena el span N en lugar de α, convierta una vez antes de llamar. No hay modelo de lenguaje, ni feed de mercado externo ni aleatoriedad, de modo que la capacidad es segura de fijar en comprobaciones de integración continua y materiales de lección reproducibles. Use la API cuando un script, plataforma de aprendizaje, arnés de backtest o panel necesite JSON estable para muchas series bajo un solo contrato. Cada petición exitosa es un ítem facturable a $0.002; la validación fallida no consume saldo. Las series aceptadas se mantienen acotadas para aislados Worker: hasta cien mil puntos cubren tablas de aula, históricos diarios de precios y extractos analíticos típicos y siguen terminando con rapidez. Los resultados son plenamente deterministas: la misma serie y el mismo factor siempre producen el mismo arreglo ema y el mismo last_ema. Conecte el endpoint a ayudantes de gráficos, tutoriales cuantitativos, paneles de control de calidad, sandboxes de entrevistas de código o pasos de preprocesado en los que ya prefiera una recurrencia EMA en forma cerrada frente a suavizadores opacos de caja negra que ocultan su regla de semilla o recortan α en silencio.
Casos de integración
Enseñanza de filtros recursivos y pesos geométricos
Docentes y correctores de deberes muestran cómo los pesos EMA decaen como (1 − α)^k y verifican implementaciones de alumnos frente a un last_ema golden estable.
Preguntas técnicas
¿Cómo se calcula una media móvil exponencial con esta herramienta?
Envíe JSON con series (arreglo de números, el más antiguo primero) y factor (α en (0, 1]) a stat.exponential_moving_average. La respuesta devuelve ema, last_ema, n, factor, series y formula.
¿Qué ocurre si el factor de suavizado está fuera de rango?
La petición falla con invalid_input. α debe ser un número finito estrictamente mayor que 0 y como máximo 1; los valores fuera de ese rango se rechazan.