---
name: bollinger_bands
kind: function
lang: py
domain: finance
version: "1.0.0"
purity: pure
signature: "def bollinger_bands(data: list, period: int, num_std: float) -> tuple"
description: "Calcula las Bandas de Bollinger (upper, middle, lower) de una serie de precios."
tags: [finance, bollinger, volatility, indicator, python, pendiente-usar]
uses_functions: [sma_py_finance]
uses_types: []
returns: []
returns_optional: false
error_type: ""
imports: []
params:
  - name: data
    desc: "lista de precios o valores (ej: precios de cierre diarios)"
  - name: period
    desc: "tamanio de la ventana movil en numero de periodos (tipico: 5, 10, 20). Mayor periodo = bandas mas suave."
  - name: num_std
    desc: "numero de desviaciones estandar para las bandas (tipico: 2.0 para 95% de los datos en rango)"
output: "tupla (upper, middle, lower) donde cada elemento es una lista de floats con len(data) - period + 1 elementos"
tested: false
tests: []
test_file_path: ""
file_path: "python/functions/finance/finance.py"
---

## Ejemplo

```python
prices = [10, 11, 12, 13, 14, 15, 14, 13, 12, 11]
upper, middle, lower = bollinger_bands(prices, 5, 2.0)
# middle es la SMA(5), upper/lower son middle +/- 2*std
```

## Notas

Retorna tupla de tres listas (upper, middle, lower). Cada lista tiene len(data) - period + 1 elementos.
La desviacion estandar se calcula sobre la ventana de tamanio period (poblacional, no muestral).
Usa internamente la funcion sma para la banda media.
