---
name: ema
kind: function
lang: py
domain: finance
version: "1.0.0"
purity: pure
signature: "def ema(data: list, period: int) -> list"
description: "Calcula la media movil exponencial (EMA) de una serie de precios."
tags: [finance, moving-average, exponential, indicator, python]
uses_functions: []
uses_types: []
returns: []
returns_optional: false
error_type: ""
imports: []
params:
  - name: data
    desc: "lista de precios o valores a suavizar (ej: precios de cierre diarios)"
  - name: period
    desc: "numero de periodos para el calculo de EMA (tipico: 5, 12, 26, 50, 200). Mayor periodo = mas suavizado."
output: "lista de valores EMA con len(data) - period + 1 elementos (mas corta que la entrada)"
tested: false
tests: []
test_file_path: ""
file_path: "python/functions/finance/finance.py"
---

## Ejemplo

```python
prices = [10, 11, 12, 13, 14, 15]
result = ema(prices, 3)
# [11.0, 11.5, 12.25, 13.125]
```

## Notas

El primer valor de la EMA es el SMA del primer periodo. El multiplicador es 2 / (period + 1).
Retorna len(data) - period + 1 elementos. Lista vacia si period invalido.
