--- 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///.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/).