--- 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] 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.