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: "slice de retornos diarios/periódicos, valores típicamente entre -0.1 y 0.1 (ej: -2% = -0.02)"
- name: periodsPerYear
desc: "número de períodos por año (252 para diarios, 12 para mensuales, 52 para semanales)"
output: "volatilidad anualizada como ratio (ej: 0.25 = 25% volatilidad anual)"
tested: false
tests: []
test_file_path: ""
+8
View File
@@ -14,6 +14,14 @@ returns: [bollinger_result_go_finance]
returns_optional: false
error_type: ""
imports: [math]
params:
- name: data
desc: "slice de precios de cierre (ej: [22.5, 23.1, 22.8, ...])"
- name: period
desc: "período de la media móvil simple (ej: 5, 20, 50 días)"
- name: numStdDev
desc: "número de desviaciones estándar para las bandas (típicamente 2.0)"
output: "tupla (upper, middle, lower) - tres slices de precios banda superior, media (SMA) e inferior"
tested: false
tests: []
test_file_path: ""
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: ""
imports: []
params:
- name: data
desc: "slice de precios de cierre o valores de serie temporal (ej: [10.0, 11.0, 12.0, ...])"
- name: period
desc: "período de suavizado (ej: 5, 12, 26 días), determina multiplicador 2/(period+1)"
output: "slice de valores EMA del mismo tamaño que data, primeros period-1 elementos son 0"
tested: false
tests: []
test_file_path: ""
+6
View File
@@ -14,6 +14,12 @@ returns: [ohlcv_go_finance]
returns_optional: false
error_type: "error_go_core"
imports: [fmt]
params:
- name: symbol
desc: "símbolo del instrumento (ej: 'BTC/USDT', 'EUR/USD', 'AAPL')"
- name: interval
desc: "intervalo temporal (ej: '1m', '5m', '1h', '1d')"
output: "slice de slices de 5 floats en orden [open, high, low, close, volume] por cada vela"
tested: false
tests: []
test_file_path: ""
@@ -14,6 +14,12 @@ returns: [ohlcv_go_finance]
returns_optional: false
error_type: "error_go_core"
imports: [fmt]
params:
- name: dbPath
desc: "ruta al archivo DuckDB (ej: '/data/market.duckdb')"
- name: query
desc: "consulta SQL para extraer filas (ej: 'SELECT open, high, low, close, volume FROM ohlcv WHERE symbol=\"BTC\"')"
output: "slice de slices de 5 floats en orden [open, high, low, close, volume] por cada fila de resultado"
tested: false
tests: []
test_file_path: ""
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: ""
imports: [math]
params:
- name: priceStart
desc: "precio inicial en unidad de moneda (ej: 100.0 USD)"
- name: priceEnd
desc: "precio final en unidad de moneda (ej: 110.0 USD)"
output: "retorno logarítmico sin dimensión (ej: 0.09531 ≈ 9.53%), devuelve 0 si precios <= 0"
tested: false
tests: []
test_file_path: ""
+4
View File
@@ -14,6 +14,10 @@ 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: ""
+12
View File
@@ -14,6 +14,18 @@ returns: [ohlcv_go_finance]
returns_optional: false
error_type: ""
imports: []
params:
- name: open
desc: "slice de precios de apertura"
- name: high
desc: "slice de precios máximos"
- name: low
desc: "slice de precios mínimos"
- name: close
desc: "slice de precios de cierre"
- name: factor
desc: "multiplicador escalar (ej: 2.0 para duplicar precios, 1/100 para convertir centavos a dólares)"
output: "tupla (open_adj, high_adj, low_adj, close_adj) - cuatro slices de precios ajustados"
tested: false
tests: []
test_file_path: ""
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: ""
imports: []
params:
- name: data
desc: "slice de precios de cierre o valores de serie temporal"
- name: period
desc: "período de cálculo (ej: 5, 14, 21 días)"
output: "slice de valores RSI del mismo tamaño que data, rango [0, 100], primeros period elementos son 0"
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: "slice de retornos periódicos (ej: [0.01, -0.02, 0.015, 0.008])"
- name: riskFreeRate
desc: "tasa libre de riesgo por período (ej: 0.0001 para 0.01% diario)"
- name: periodsPerYear
desc: "número de períodos por año (252 para diarios, 12 para mensuales)"
output: "ratio de Sharpe anualizado sin dimensión (ej: 1.5 = 1.5 unidades de retorno por unidad de riesgo)"
tested: false
tests: []
test_file_path: ""
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: ""
imports: []
params:
- name: data
desc: "slice de precios de cierre o valores de serie temporal (ej: [1.0, 2.0, 3.0, ...])"
- name: period
desc: "período de media móvil (ej: 5, 20, 50, 200 días)"
output: "slice de valores SMA del mismo tamaño que data, primeros period-1 elementos son 0 (sin datos suficientes)"
tested: false
tests: []
test_file_path: ""
+4
View File
@@ -14,6 +14,10 @@ returns: [tick_go_finance]
returns_optional: false
error_type: "error_go_core"
imports: [fmt]
params:
- name: symbol
desc: "símbolo del instrumento (ej: 'BTC/USDT', 'EUR/USD')"
output: "canal que emite pares [2]float64 de [precio, volumen] en cada tick en tiempo real"
tested: false
tests: []
test_file_path: ""
+10
View File
@@ -14,6 +14,16 @@ returns: [ohlcv_go_finance]
returns_optional: false
error_type: ""
imports: []
params:
- name: prices
desc: "slice de precios de ticks en orden cronológico"
- name: volumes
desc: "slice de volúmenes de ticks (mismo tamaño que prices)"
- name: timestamps
desc: "slice de timestamps en unix seconds (mismo tamaño que prices, debe estar ordenado)"
- name: intervalSecs
desc: "intervalo de agregación en segundos (ej: 60 para 1 minuto, 3600 para 1 hora)"
output: "tupla (open, high, low, close, volume) - cinco slices de datos OHLCV agregados por intervalo"
tested: false
tests: []
test_file_path: ""
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: ""
imports: []
params:
- name: prices
desc: "slice de precios de ticks o velas (ej: [100.0, 102.0, 101.0])"
- name: volumes
desc: "slice de volúmenes correspondientes (mismo tamaño que prices)"
output: "precio promedio ponderado por volumen en unidad de moneda (ej: 100.95)"
tested: false
tests: []
test_file_path: ""
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt]
params:
- name: path
desc: "ruta destino del archivo Parquet (ej: '/data/btc_1h.parquet')"
- name: data
desc: "slice de slices de 5 floats en orden [open, high, low, close, volume] por cada vela"
output: "error si la escritura falla, nil si éxito"
tested: false
tests: []
test_file_path: ""