Files
fn_registry/functions/finance/max_drawdown.md
T
egutierrez 5f4f1f7508 docs: params/output semántico en 506 funciones para composabilidad
Añade campos params y output al frontmatter YAML de las 506 funciones del registry.
Cada parámetro tiene descripción semántica (qué representa, unidades, rango típico)
y cada función describe qué produce su output. Permite a agentes razonar sobre
cadenas de composición (ej: prices → log_return → sharpe_ratio) sin leer código.
2026-04-05 18:45:16 +02:00

37 lines
1.1 KiB
Markdown

---
name: max_drawdown
kind: function
lang: go
domain: finance
version: "1.0.0"
purity: pure
signature: "func MaxDrawdown(values []float64) (maxDD float64, start, end int)"
description: "Calcula el maximo drawdown de una curva de equity, retornando la magnitud y los indices pico-valle."
tags: [finance, drawdown, risk, metric]
uses_functions: []
uses_types: [drawdown_result_go_finance]
returns: [drawdown_result_go_finance]
returns_optional: false
error_type: ""
imports: []
params:
- name: values
desc: "slice de valores de equity curve o net worth (ej: [1000, 1200, 900, 1100, 800])"
output: "tupla (maxDD, start, end) - drawdown como ratio [0,1] (ej: 0.333 = 33.3%), índice de pico, índice de valle"
tested: false
tests: []
test_file_path: ""
file_path: "functions/finance/max_drawdown.go"
---
# max_drawdown
Calcula el maximo drawdown (caida maxima desde un pico hasta un valle) como fraccion del pico. Retorna la magnitud (0 a 1) y los indices de inicio y fin.
## Ejemplo
```go
dd, s, e := finance.MaxDrawdown([]float64{100, 120, 90, 110, 80})
// dd = (120-80)/120 = 0.3333, s = 1, e = 4
```