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:
@@ -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: ""
|
||||
|
||||
@@ -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: ""
|
||||
|
||||
@@ -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: ""
|
||||
|
||||
@@ -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: ""
|
||||
|
||||
@@ -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: ""
|
||||
|
||||
@@ -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: ""
|
||||
|
||||
@@ -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: ""
|
||||
|
||||
@@ -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: ""
|
||||
|
||||
@@ -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: ""
|
||||
|
||||
@@ -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: ""
|
||||
|
||||
@@ -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: ""
|
||||
|
||||
@@ -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: ""
|
||||
|
||||
@@ -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: ""
|
||||
|
||||
Reference in New Issue
Block a user