Files
fn_registry/dev/issues/0088b-trading-market-data-capability-group.md
T

54 lines
2.1 KiB
Markdown

---
id: "0088b"
title: "Trading: capability group `market_data`"
status: pendiente
type: feature
domain:
- trading
- meta
scope: multi-app
priority: alta
depends: []
blocks: []
related: []
created: 2026-05-17
updated: 2026-05-17
tags: []
---
# 0088b — Trading: capability group `market_data`
**Status:** pendiente
**Created:** 2026-05-14
**Type:** feature
**Parent:** 0088
**Depends:** 0088a
**Blocks:** 0088g, 0088h
## Problema
El registry ya tiene `fetch_ohlcv_go_finance`, `stream_ticks_go_finance`, `tick_to_ohlcv_go_finance`, `load_ohlcv_from_duckdb_go_finance`, `write_ohlcv_to_parquet_go_finance` — pero no estan unificadas detras de un contrato comun ni cubren multi-fuente. Hace falta un capability group `market_data` que agrupe adapters por fuente (binance, alphavantage, yfinance, csv local) bajo la misma firma.
## Piezas
1. Tag plano `market_data` aplicado a las funciones existentes que ya cubren OHLCV/ticks.
2. Nuevas funciones impuras (una por fuente, todas siguen la misma forma de salida `OHLCVFrame`):
- `fetch_ohlcv_binance_py_finance` (REST).
- `fetch_ohlcv_yfinance_py_finance` (yfinance lib).
- `fetch_ohlcv_alphavantage_py_finance` (API key via env).
- `fetch_ohlcv_csv_py_finance` (local file, util para datasets snapshot).
3. Funcion pura `normalize_ohlcv_frames_py_finance` que recibe frames de distintas fuentes y devuelve uno reconciliado (mismo timezone UTC, mismas columnas, ordenado por timestamp).
4. Pipeline impuro `ingest_ohlcv_multisource_py_finance` que orquesta fetch_* + normalize + write a parquet en `~/vaults/market_data/raw/<source>/<symbol>/<interval>.parquet`.
5. Pagina madre `docs/capabilities/market_data.md` con tabla + ejemplo canonico end-to-end.
## Aceptacion
- `mcp__registry__fn_search query="" tag="market_data"` devuelve >= 5 funciones.
- `docs/capabilities/market_data.md` enlazado desde `docs/capabilities/INDEX.md`.
- Pipeline `ingest_ohlcv_multisource` documentado con `## Ejemplo` lanzable (issue 0087).
- Funciones cumplen reglas `purity.md` + `ids_naming.md`.
## No-objetivos
- Streaming en vivo de multiples fuentes (eso queda para el live_runner, 0088h).
- Indicadores tecnicos (ya estan en finance/).