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.
This commit is contained in:
2026-04-05 18:45:16 +02:00
parent bd1bf2b5dc
commit 988e901066
506 changed files with 2964 additions and 0 deletions
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: ""
imports: [math]
params:
- name: returns
desc: "lista de retornos diarios o periodicos (ej: [0.01, -0.005, 0.008]). Valores en rango [-1, 1] tipicamente."
- name: periods_per_year
desc: "numero de periodos por año (252 para datos diarios, 12 para mensuales, 52 para semanales)"
output: "volatilidad anualizada en forma decimal (ej: 0.15 para 15% de volatilidad anualizada)"
tested: false
tests: []
test_file_path: ""
@@ -14,6 +14,22 @@ returns: []
returns_optional: false
error_type: ""
imports: []
params:
- name: mid_price
desc: "precio medio actual del activo subyacente (punto de referencia para la cotizacion)"
- name: inventory
desc: "inventario actual neto del market maker (cantidad de activos tenidos, positivo=long)"
- name: gamma
desc: "coeficiente de aversion al riesgo de inventario (rango tipico: 0.01-1.0). Mayor gamma = spreads mas amplios."
- name: sigma
desc: "volatilidad estimada del activo en la ventana de tiempo actual (ej: 0.02 para 2% diario)"
- name: spread_base
desc: "spread base en unidades de precio para el nivel 0 (ej: 0.5 para +/-0.5 alrededor del mid_price)"
- name: n_levels
desc: "numero de niveles de cotizacion a generar (tipico: 3-5). Cada nivel se ensancha a partir del anterior."
- name: qty_base
desc: "cantidad base de unidades por nivel (se reduce en cada nivel: qty_base, qty_base*0.5, qty_base*0.25, ...)"
output: "lista de ordenes con campos {'side': 'buy'|'sell', 'price': float, 'qty': float}"
tested: false
tests: []
test_file_path: ""
@@ -14,6 +14,14 @@ 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: ""
+6
View File
@@ -14,6 +14,12 @@ 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: ""
@@ -14,6 +14,22 @@ returns: []
returns_optional: false
error_type: ""
imports: [numpy]
params:
- name: initial_price
desc: "precio inicial S(0) del activo subyacente (ej: 100.0)"
- name: n_ticks
desc: "numero de ticks/pasos en la simulacion (ej: 1000). Determina len(resultado)."
- name: sigma
desc: "volatilidad anualizada (ej: 0.02 para 2% por tick). Controlador clave del ruido."
- name: mu
desc: "drift anualizado (ej: 0.0 para random walk, 0.05 para uptrend). Retorno esperado por tick."
- name: jump_intensity
desc: "probabilidad de salto por tick en rango [0, 1] (ej: 0.01 para 1% por tick). 0.0 = GBM puro."
- name: jump_size_std
desc: "desviacion estandar del tamanio de los saltos (ej: 0.05 para jumps de ~5%). Normal(0, jump_size_std)."
- name: seed
desc: "semilla para reproducibilidad deterministica (ej: 42)"
output: "lista de precios con len(resultado) == n_ticks. resultado[0] == initial_price."
tested: false
tests: []
test_file_path: ""
@@ -14,6 +14,18 @@ returns: []
returns_optional: false
error_type: ""
imports: [numpy]
params:
- name: alpha
desc: "exponente de la distribucion Pareto (rango tipico: 1.5-3.0). Menor alpha = colas mas pesadas y ordenes mas grandes."
- name: size_min
desc: "tamanio minimo de orden (ej: 1.0)"
- name: size_max
desc: "tamanio maximo de orden (clipping superior, ej: 100.0)"
- name: buy_prob
desc: "probabilidad de que la orden sea BUY en rango [0, 1] (ej: 0.5 para igual BUY/SELL)"
- name: seed
desc: "semilla para reproducibilidad (int o None). Si None, no deterministica."
output: "dict con campos {'side': 'buy'|'sell', 'qty': float redondeado a 1 decimal}"
tested: false
tests: []
test_file_path: ""
@@ -14,6 +14,18 @@ returns: []
returns_optional: false
error_type: ""
imports: [numpy]
params:
- name: base_rate
desc: "intensidad de linea base lambda(0) del proceso Hawkes (ej: 1.0 orden/minuto). Tasa base de eventos sin influencia."
- name: hawkes_alpha
desc: "magnitud del salto de intensidad por evento (rango: 0.0-1.0). Mayor alpha = mayor excitacion por eventos pasados."
- name: hawkes_beta
desc: "velocidad de decaimiento de la memoria (rango tipico: 0.5-3.0). Mayor beta = decaimiento mas rapido, memoria mas corta."
- name: event_times
desc: "lista de timestamps de eventos pasados (ej: [0.5, 1.2, 1.8]). Milisegundos o segundos segun escala."
- name: current_time
desc: "timestamp actual en la misma escala que event_times (ej: 2.5)"
output: "intensidad lambda(current_time) en rango [0.0, infinito). Valores > base_rate indican excitacion por eventos recientes."
tested: false
tests: []
test_file_path: ""
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: ""
imports: [math]
params:
- name: price_start
desc: "precio inicial (ej: 100.0). Debe ser > 0."
- name: price_end
desc: "precio final (ej: 110.0). Debe ser > 0."
output: "retorno logaritmico en forma decimal (ej: 0.0953 para aprox +9.53%). Aditivo en el tiempo."
tested: false
tests: []
test_file_path: ""
+4
View File
@@ -14,6 +14,10 @@ returns: []
returns_optional: false
error_type: ""
imports: []
params:
- name: values
desc: "lista de valores acumulativos (ej: valores de cartera a lo largo del tiempo, precios, o equity curve)"
output: "tupla (max_dd, start_idx, end_idx) donde max_dd es fraccion (0.0-1.0), start_idx es indice del pico, end_idx es indice del valle"
tested: false
tests: []
test_file_path: ""
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: ""
imports: []
params:
- name: data
desc: "lista de precios (ej: precios de cierre diarios). Debe tener al menos period+1 elementos."
- name: period
desc: "numero de periodos para el calculo de RSI (tipico: 14). Mayor periodo = menos volatil, menos sensible."
output: "lista de valores RSI en rango [0, 100]. Valores >70 indican sobrecompra, <30 sobreventa."
tested: false
tests: []
test_file_path: ""
+8
View File
@@ -14,6 +14,14 @@ returns: []
returns_optional: false
error_type: ""
imports: [math]
params:
- name: returns
desc: "lista de retornos en la misma periodicidad (ej: retornos diarios [0.01, -0.005, ...])."
- name: risk_free_rate
desc: "tasa de interes libre de riesgo anualizada en forma decimal (ej: 0.02 para 2% anual)."
- name: periods_per_year
desc: "numero de periodos por año (252 para diarios, 12 para mensuales, 52 para semanales)."
output: "Sharpe ratio anualizado en forma decimal (ej: 1.5 indica 1.5x retorno por unidad de riesgo). Mayor es mejor."
tested: false
tests: []
test_file_path: ""
+6
View File
@@ -14,6 +14,12 @@ 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: "tamanio de la ventana movil en numero de periodos (tipico: 5, 10, 20, 50, 200). Mayor periodo = mas suavizado."
output: "lista de valores SMA con len(data) - period + 1 elementos (mas corta que la entrada)"
tested: false
tests: []
test_file_path: ""
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: ""
imports: []
params:
- name: prices
desc: "lista de precios de transaccion (ej: [100.0, 101.0, 102.0]). Debe tener misma longitud que volumes."
- name: volumes
desc: "lista de volumenes de transaccion (ej: [1000, 1500, 1200]). Debe tener misma longitud que prices."
output: "VWAP en forma decimal (ej: 101.0888). Precio promedio ponderado por volumen acumulado."
tested: false
tests: []
test_file_path: ""