// DATOS · MÓDULO 04/12
Datos de mercado y documentales para sistemas LLM
Fuentes 2026, SEC EDGAR programático, noticias y sentimiento, y pipelines point-in-time sin trampas.
El Módulo 3 dotó a los agentes de orquestación: grafos de estado, herramientas, persistencia e interrupciones humanas. Pero un agente es tan bueno como los datos que sus herramientas le sirven. Este módulo abre el Bloque II (comprender) construyendo esa base: qué fuentes de mercado y documentales existen en 2026, qué licencia hace falta para alimentar un LLM con ellas, cómo se consumen programáticamente y cómo se organizan en una arquitectura point-in-time que el RAG del Módulo 5 y los cálculos de los Módulos 7 y 8 puedan auditar.
4.1 El mapa de fuentes en 2026
4.1.1 Institucional vs accesible
El mercado de datos financieros en 2026 se estratifica en dos mundos que apenas se tocan. En el primero, los terminales institucionales: Bloomberg Terminal cotiza a julio de 2026 en torno a $31,980 por asiento y año ($28,320 en configuración multi-asiento), tras el incremento del 6,5 % aplicado a renovaciones desde enero de 2025 (Github). LSEG Workspace (sucesor de Refinitiv Eikon) se sitúa por encima de $22,000 por asiento en su versión completa, con una edición reducida cercana a $4,000 anuales (Github). FactSet, con precio de lista histórico de $12,000, muestra contratos reales con media próxima a $45,000 anuales según datos transaccionales de compradores (arXiv.org). S&P Capital IQ Pro se mueve en la banda $12,000–$20,000 por asiento (arXiv.org). Estas cifras son estimaciones de industria —ninguno de los cuatro vendors publica tarifas—, pero convergen en dos fuentes independientes y se aceptan como referencia presupuestaria (arXiv.org).
El dato decisivo para un ingeniero de sistemas LLM es otro: la suscripción al terminal no incluye acceso programático. Alimentar un pipeline automatizado —y, por tanto, un agente LangChain— con datos Bloomberg exige B-PIPE ($2,000–$3,000/mes) o Data License ($5,000–$50,000+/año); extraer contenido del terminal a un vector store o a un prompt sin esa licencia viola el contrato (arXiv.org).
En el segundo mundo, las APIs developer-first han alcanzado una cobertura que hace cinco años era exclusiva del buy-side. El hito estructural es el renombrado de Polygon.io como Massive.com, efectivo el 30 de octubre de 2025: las claves y endpoints api.polygon.io siguen operativos en paralelo con api.massive.com, y se añadieron futuros CME/CBOT/COMEX/NYMEX, datos Benzinga y un fichero llms.txt en la documentación para consumo por asistentes de IA (Quant Memo). Sus planes van del EOD gratuito a $199/mes en tiempo real y $2,000/mes en Business con licencia comercial (Picture Perfect Portfolios). Alpha Vantage da 25 peticiones diarias gratis y premium de $49,99 a $249,99/mes escalados por req/min, con la salvedad de que el tiempo real estadounidense exige un entitlement adicional (MDPI). Tiingo cubre EOD de más de 30 años por $30/mes ($50/mes el Business de uso comercial) (A.L. Capital Advisory). Databento distribuye datos directos de exchange (no SIP) con normalización de 6,1 microsegundos y esquemas MBO/MBP-10 en nanosegundos, desde $199/mes (pfolio.io). Nasdaq Data Link opera como marketplace con datasets económicos gratuitos y premium a la carta ($50–$500+/mes) (Entropy Method: Solving RL Without Gradients).
Tabla 4.1 — Vendors institucionales vs APIs accesibles (precios a julio de 2026)
| Fuente | Cobertura principal | Latencia | Precio de referencia | Licencia para uso con LLM |
|---|---|---|---|---|
| Bloomberg Terminal + B-PIPE/Data License | Global multi-activo, noticias, estimados | Tiempo real (ms) | ~$31,980/asiento/año + $2,000–$3,000/mes (B-PIPE) (Github) | Solo vía licencia de datos explícita; addenda de IA a negociar (confianza media-alta: estimación de industria) |
| LSEG Workspace + Data Platform | Global multi-activo, Reuters News | Tiempo real | ~$22,000+/asiento/año; APIs aparte (Github) | Requiere licencia de redistribución/API (confianza media-alta) |
| FactSet | Fundamentales "scrubbed", estimados, supply chain | Tiempo real / EOD | Lista ~$12,000; media contractual real ~$45,000/año (arXiv.org) | Tarifas adicionales por integración en sistemas propios y usuarios no licenciados (arXiv.org) |
| Massive (antes Polygon.io) | Acciones, opciones, forex, crypto, futuros | EOD gratis; 15 min $29/mes; RT $199/mes | $0–$2,000/mes (Picture Perfect Portfolios) | Uso comercial/redistribución solo en plan Business; llms.txt en docs (Picture Perfect Portfolios) |
| Alpha Vantage | Acciones, forex, crypto, indicadores, noticias | EOD gratis; RT vía entitlement | $0 (25 req/día)–$249,99/mes (MDPI) | Términos comerciales bajo consulta; servidor MCP oficial (MDPI) |
| Tiingo | EOD ajustado 30+ años, IEX intraday | EOD; IEX tiempo real | $30/mes (Power); $50/mes (Business) (A.L. Capital Advisory) | Plan Business cubre uso comercial interno (A.L. Capital Advisory) |
| Databento | L0–L3 directo de exchange, 21.000+ productos | Nanosegundos (6,1 µs normalización) | $199/mes (Standard); $4,000/mes (US Equities ilimitado) (pfolio.io) | Grado institucional; términos por plan (pfolio.io) |
| Nasdaq Data Link | Marketplace: económicos, fundamentales, alternativos | Variable por dataset | Gratis (FRED)–$500+/mes por dataset (Entropy Method: Solving RL Without Gradients) | Licencia por dataset; revisar cada uno (Entropy Method: Solving RL Without Gradients) |
| yfinance (Yahoo, no oficial) | EOD e intraday limitado | Delayed | $0 (Ask Everything) | No: solo uso personal según ToS; sin SLA (Ask Everything) |
4.1.2 Licencias para uso con LLMs: non-display, addendas de IA y el caso yfinance
Tres mecanismos contractuales determinan si un dato puede entrar en un sistema LLM de producción.
El primero es la tarifa non-display de los exchanges: el consumo de datos de mercado por máquinas —algoritmos, servidores y, explícitamente, agentes LLM que generan señales— en lugar de por un humano mirando una pantalla. La guía oficial de NYSE fija $3,000/mes para non-display de categoría 1 sobre NYSE Trades y $5,000/mes sobre el Integrated Feed de NYSE National, con una categoría 3 que cubre señales de trading y ATS (alanhou.org). Un agente LangChain cuya tool consulta un feed en tiempo real cae, a ojos del exchange, en esta definición: es la sorpresa presupuestaria más frecuente en proyectos de IA con market data (alanhou.org).
El segundo mecanismo son las addendas de IA de los vendors. Los contratos de Bloomberg, LSEG, FactSet y S&P licencian datos para uso interno por usuarios licenciados; enviar ese contenido a un LLM de tercero (donde puede quedar en logs) o a un vector store accesible por personal no licenciado entra en zona prohibida salvo addenda explícita de "AI/derived data use" (arXiv.org). La contrapartida: los vendors accesibles formalizan el canal inverso —servidores MCP oficiales de Alpha Vantage y Benzinga, llms.txt en Massive— que convierte sus APIs en fuentes descubribles por agentes (Quant Memo).
El tercero es la prueba del algodón negativa: yfinance. Yahoo cerró su API pública en 2017; la librería hace scraping de endpoints no oficiales, se satura bajo carga (~2,000 peticiones/hora estimadas antes del error 429), sus términos de servicio la limitan a uso personal y carece de cualquier SLA (Ask Everything).
4.2 SEC EDGAR como fuente programática
4.2.1 Endpoints reales: submissions, companyfacts, companyconcept, frames y full-text search
EDGAR es la única gran fuente financiera que combina tres propiedades: gratuita, sin API key y con valor legal directo (los filings son documentos regulatorios). La SEC pide a cambio un User-Agent descriptivo con correo de contacto y un máximo de 10 peticiones por segundo; para backfills masivos recomienda los ZIP nocturnos en lugar de martillear endpoints por compañía (arXiv.org). El primer paso de cualquier pipeline es cachear https://www.sec.gov/files/company_tickers.json, que resuelve ticker → CIK localmente (ResearchGate).
Tabla 4.2 — Endpoints SEC EDGAR (verificados a julio de 2026)
| Endpoint | URL | Propósito | Rate limit |
|---|---|---|---|
| Submissions | https://data.sec.gov/submissions/CIK##########.json | Metadata de la empresa + historial completo de filings (formularios, fechas, accession numbers, enlaces) (TL;DR Filing) | 10 req/s global SEC (arXiv.org) |
| CompanyFacts (XBRL) | https://data.sec.gov/api/xbrl/companyfacts/CIK##########.json | Todos los hechos XBRL (us-gaap, dei, ifrs-full, srt) jamás presentados, con filed por hecho (ResearchGate) | 10 req/s (arXiv.org) |
| CompanyConcept | https://data.sec.gov/api/xbrl/companyconcept/CIK{cik}/{taxonomía}/{tag}.json | Historia de un único concepto (payload pequeño) (ResearchGate) | 10 req/s (arXiv.org) |
| Frames | https://data.sec.gov/api/xbrl/frames/{taxonomía}/{concepto}/{unidad}/{periodo}.json | Un concepto para todas las empresas en un periodo (cross-section, ej. CY2023Q4I) (ResearchGate) | 10 req/s (arXiv.org) |
| Full-Text Search (EFTS) | https://efts.sec.gov/LATEST/search-index?q=... | Búsqueda booleana en el texto de todos los filings; filtros forms, dateRange, size ≤ 100 (Apify) | 10 req/s (arXiv.org) |
| Ticker→CIK | https://www.sec.gov/files/company_tickers.json | Lookup local ticker/CIK/nombre (ResearchGate) | Cachear (cambia poco) |
| Bulk archives | ZIPs nocturnos en data.sec.gov | Backfills históricos masivos (arXiv.org) | Uso recomendado para carga inicial |
El siguiente snippet implementa el acceso a submissions respetando la política de la SEC:
import time
import requests
SEC_HEADERS = {"User-Agent": "QuantResearch [email protected]"} # obligatorio
RATE_LIMIT_S = 0.12 # ~8 req/s, margen bajo el máximo oficial de 10 req/s
def get_submissions(cik: int) -> dict:
"""Historial completo de filings de una empresa (arrays paralelos columnares)."""
url = f"https://data.sec.gov/submissions/CIK{cik:010d}.json"
resp = requests.get(url, headers=SEC_HEADERS, timeout=20)
resp.raise_for_status()
time.sleep(RATE_LIMIT_S)
return resp.json()
subs = get_submissions(320193) # Apple
recent = subs["filings"]["recent"]
# form[i], filingDate[i] y accessionNumber[i] comparten índice (formato columnar)
primer_10k = next(
i for i, f in enumerate(recent["form"]) if f == "10-K"
)
print(recent["form"][primer_10k], recent["filingDate"][primer_10k],
recent["accessionNumber"][primer_10k])
# URL del documento: https://www.sec.gov/Archives/edgar/data/
# {cik_sin_ceros}/{accession_sin_guiones}/{primaryDocument}Y este es el patrón de tool LangChain sobre companyconcept —la primera tool real del curso, que los agentes de los módulos 3 y 7 consumirán directamente:
from langchain.tools import tool
import requests
@tool
def get_xbrl_concept(ticker: str, concept: str = "NetIncomeLoss") -> str:
"""Devuelve la historia de un concepto XBRL us-gaap de una empresa (SEC EDGAR).
Cada hecho incluye periodo (end), valor (val), formulario (form) y,
críticamente, la fecha de publicación (filed) para joins point-in-time.
"""
cik = resolve_cik(ticker) # lookup en caché desde company_tickers.json
url = (f"https://data.sec.gov/api/xbrl/companyconcept/"
f"CIK{cik:010d}/us-gaap/{concept}.json")
r = requests.get(url, headers={"User-Agent": "QuantApp [email protected]"},
timeout=20)
r.raise_for_status()
units = r.json()["units"]
return str(units)[:4000] # truncar: control de tokens y costeLas buenas prácticas separan una tool de producción de una demo: docstring preciso (el LLM elige la tool por su descripción), validación de entradas con pydantic, truncado de salidas, JSON compacto en lugar de HTML, errores accionables y reintentos con backoff ante los 429 de GDELT, Yahoo o Alpha Vantage (Apify).
4.3 Noticias, sentimiento y datos alternativos
4.3.1 GDELT, Benzinga, Alpha Vantage; MCP; Form 4 y 13F; deduplicación y alpha decay
El ecosistema de noticias presenta un precipicio de precio conocido: NewsAPI.org es gratuita solo en desarrollo (100 req/día, 24 h de retardo) y salta a $449/mes en Business —y ni en pago entrega el cuerpo completo de los artículos (Github). La alternativa estructural es GDELT, gratuita y sin clave: la DOC 2.0 API (https://api.gdeltproject.org/api/v2/doc/doc) monitoriza prensa, web y broadcast en más de 100 idiomas con cadencia de 15 minutos, modos ArtList, TimelineVol (detección de breaking news por volumen) y ToneChart, con 250 registros por consulta y rate limits agresivos que exigen caché (Fundamentals Hub). En pago accesible, Benzinga distribuye su wire en tiempo real, ratings con historia desde 2012, earnings y guidance vía Massive por $99/mes por paquete, y lanzó su servidor MCP en noviembre de 2025 (templates). En el segmento institucional, RavenPack procesa más de 40,000 fuentes con más de veinte indicadores de sentimiento y 20+ años de archivo por un estimado de $50,000–$100,000+ anuales (confianza media: sin precio público), sin cubrir redes sociales (TL;DR Filing).
Tabla 4.3 — Fuentes de noticias y sentimiento (a julio de 2026)
| Fuente | Cobertura / latencia | Precio | ¿Servidor MCP? | Notas para agentes |
|---|---|---|---|---|
| GDELT DOC 2.0 API | 100+ idiomas, cadencia 15 min, modos ArtList/Timeline/ToneChart | $0, sin key; 429 frecuentes (Fundamentals Hub) | Sí (MissionSquad/mcp-gdelt, comunitario) (Fundamentals Hub) | Caché y dedupe obligatorios; ventana ~3 meses en DOC API |
| Benzinga (vía Massive) | Wire real-time, ratings desde 2012, earnings, guidance | $99/mes por paquete; Pro $37–$197/mes (templates) | Sí, oficial (nov-2025) (Cambridge University Press & Assessment) | JSON estructurado por evento; cliente Python oficial |
| Alpha Vantage NEWS_SENTIMENT | Titulares + scores de sentimiento por ticker | Incluida en premium $49,99+/mes (MDPI) | Sí, oficial (MDPI) | Cómoda para prototipos; revisar profundidad de archivo |
| NewsAPI.org | Titulares/descripciones; archivo 1 mes (gratis) a 5 años | $0 dev → $449/mes Business; sin full-text (Github) | Comunitarios | Precipicio dev→producción; scraping aparte para cuerpo |
| RavenPack / Bigdata.com | 40,000+ fuentes, ESS, 13 idiomas, latencia ms | ~$50–100K+/año estimado (TL;DR Filing) | Plataforma agéntica propia | Estándar en hedge funds sistemáticos; sin redes sociales |
| SEC Form 4 / 13F (EDGAR) | Insiders (2 días hábiles) / holdings (45 días de retardo) | $0 (Apify) | No | Señal regulatoria; ver advertencias temporales abajo |
Consulta GDELT real:
import requests
def gdelt_artlist(query: str, timespan: str = "1week", maxrecords: int = 50) -> list[dict]:
"""Artículos recientes de GDELT DOC 2.0 (sin API key; respetar ~6 s entre llamadas)."""
params = {"query": query, "mode": "artlist", "format": "json",
"timespan": timespan, "maxrecords": maxrecords}
r = requests.get("https://api.gdeltproject.org/api/v2/doc/doc",
params=params, timeout=30)
r.raise_for_status()
arts = r.json().get("articles", [])
seen, out = set(), []
for a in arts: # dedupe por URL/título: las wires republican la misma noticia
key = a.get("url", a.get("title"))
if key not in seen:
seen.add(key)
out.append(a)
return outDos fuentes regulatorias merecen mención aparte. El Form 4 de insiders se presenta en dos días hábiles desde la transacción: es la señal legalmente mandatada más fresca del mercado estadounidense —el comportamiento insider aparece ahí antes que en 13F, notas de research o prensa—, con XML gratuito en EDGAR y APIs como sec-api.io que lo estructuran (Apify). El 13F, en cambio, refleja posiciones de cierre de trimestre publicadas con 45 días de retardo, solo largos en valores 13(f) —sin cortos ni la mayoría de derivados—: contexto histórico, nunca posicionamiento actual (TL;DR Filing).
Sobre la explotación del sentimiento, dos advertencias empíricas. La primera es la deduplicación: las agencias wire republican la misma noticia decenas de veces, y contar volumen sin dedupe por URL/título infla la señal (orthogonal.info). La segunda es el alpha decay: el rendimiento de una señal de sentimiento decae con su adopción, lo que obliga a regenerar variantes continuamente (orthogonal.info). Un modelo de trabajo habitual es el decaimiento exponencial
donde crece con la difusión de la señal; la semivida de señales de sentimiento públicas se mide en meses, no en años (orthogonal.info).
4.4 Arquitectura de pipelines point-in-time
4.4.1 La regla de oro de los datos: "texto al vector store, números a SQL"
Todo lo anterior converge en una decisión de diseño única, la que organiza la arquitectura de referencia del curso (insight estructural I5) —la regla de oro de los datos, hermana de la regla de oro del curso de §1.2.2, aplicada a la capa de almacenamiento—: el texto no estructurado va al vector store; los números van a bases relacionales/columnares y se consultan con tools deterministas. Los embeddings son recuperación semántica, no un almacén de cifras exactas: un LLM que "recuerda" un ingreso vía similitud vectorial puede recuperar el periodo equivocado o deformar la cifra, mientras que una query SQL sobre XBRL devuelve el valor con su filed y su accession number (Apify). La partición concreta: al vector store van secciones de 10-K/10-Q (Item 1A, Item 7), transcripts y noticias full-text, con metadata {ticker, form, filing_date, section} para filtros pre-retrieval; a SQL/columnar van OHLCV, hechos XBRL, holdings 13F, transacciones Form 4 y estimados; a Redis, el estado caliente (Apify). El stack se simplifica si el vector store es pgvector dentro del propio Postgres/TimescaleDB (Apify).
En el transporte numérico, el patrón estándar es: WebSocket del vendor → productor Python → topics de Kafka particionados por símbolo (preserva el orden por activo) → consumidores → almacenes, usando el timestamp del exchange como event-time para que el jitter no reordene los cálculos; la replayability de Kafka permite regenerar features sin re-descargar del vendor (博客园). En serving, TimescaleDB (Postgres) aporta hypertables y continuous aggregates que pre-calculan OHLCV unas 100 veces más rápido que vistas sobre ticks crudos, con compresión del 90–95 % (Apify):
CREATE TABLE tick_data (time TIMESTAMPTZ NOT NULL, symbol TEXT NOT NULL,
bid NUMERIC(20,8) NOT NULL, ask NUMERIC(20,8) NOT NULL);
SELECT create_hypertable('tick_data', 'time');
CREATE MATERIALIZED VIEW tick_1m_view WITH (timescaledb.continuous,
timescaledb.materialized_only = false) AS
SELECT time_bucket('1 minute', time) AS time, symbol,
FIRST((bid+ask)/2, time) AS open, MAX((bid+ask)/2) AS high,
MIN((bid+ask)/2) AS low, LAST((bid+ask)/2, time) AS close
FROM tick_data GROUP BY time_bucket('1 minute', time), symbol;
SELECT add_retention_policy('tick_data', INTERVAL '30 days');Para research y backtest, el patrón de facto es Parquet particionado (year=/month=/symbol=) consultado con DuckDB in-process —lectura columnar con predicate pushdown y coste marginal cero—, reservando TimescaleDB para serving (Entropy Method: Solving RL Without Gradients). La pieza que cierra el bucle temporal es Feast, feature store con offline store (entrenamiento) y online store (serving) cuyo point-in-time join genera datasets con exactamente la semántica anti-look-ahead que un backtest exige: cada feature se une con el último valor disponible en el instante de la etiqueta, no con el último conocido hoy (Accuweather Api).
4.4.2 Trampas de datos: look-ahead, survivorship y universos point-in-time
La regla de disponibilidad que define point-in-time (PIT) es simple de enunciar y costosa de implementar: un hecho solo puede alimentar la decisión en el instante de la simulación si su fecha de publicación efectiva es anterior o igual a :
Hay tres violaciones habituales, con antídotos distintos (orthogonal.info). Primera, los restatements: usar el valor corregido de un fundamental antes de que la corrección fuera pública. El caso canónico es Plug Power: la pérdida diluida del año fiscal 2018 se reportó originalmente en $0,36 por acción y fue re-expresada a $0,39 en un filing del 14 de mayo de 2021; cualquier simulación de 2019 o 2020 que use $0,39 ha filtrado dos años de futuro (orthogonal.info). La API XBRL de la SEC da filed por hecho, pero muestra la última versión de cada periodo —no preserva el valor pre-restatement—; para PIT estricto hacen falta Compustat Point-in-Time, el modo PIT de Bloomberg, Norgate, motores como QuantConnect LEAN (fundamentales "as of" la fecha de publicación) o una capa de versionado propia sobre accn + filed (orthogonal.info).
La tercera violación es el survivorship bias: un universo construido con los tickers vivos de hoy ha eliminado a los quebrados, adquiridos y deslistados, y nunca ve los peores resultados. La magnitud no es menor: en un estudio de Morningstar, el 58 % de los fondos existentes en 1999 ya no existía en 2019 (Accuweather Api). Y hay una limitación estructural del stack barato: APIs como yfinance o Alpha Vantage no sirven delistados, por lo que un backtest serio de larga historia requiere fuentes con delistings (Norgate, CRSP) y universos point-in-time que reconstruyan los constituyentes del S&P 500 de cada fecha, no los de hoy (Accuweather Api). Complementos del checklist: desplazar toda señal una barra (lo calculado con la barra no puede operar hasta la apertura de ), timestamps de exchange frente a recepción, detección de huecos por halts, validación de nulos en XBRL y dedupe de noticias (orthogonal.info).
Con este módulo, el lector dispone de las fuentes (4.1–4.3) y de la arquitectura temporalmente honesta (4.4) que consumirán los agentes posteriores: el Módulo 5 (RAG) se construirá sobre la rama documental del diagrama, y los Módulos 7 y 8 sobre la rama numérica y sus joins PIT.
Ejercicios
-
Explorador EDGAR. Escriba un script que, dado un ticker, resuelva el CIK con
company_tickers.json, descarguesubmissionsy liste los últimos diez 10-K/10-Q con la URL del documento construida desdeaccessionNumberyprimaryDocument. Respete 10 req/s y añada backoff exponencial ante un 429. Extienda para medir el reporting lag observado: días entreperiodOfReportyfilingDatede los 10-K de cinco empresas. -
Tool XBRL point-in-time. Convierta
get_xbrl_conceptenget_concept_asof(ticker, concept, as_of_date), que filtre hechos confiled <= as_of_datey devuelva el último disponible. Verifique la trampa Plug Power: consulteEarningsPerShareDilutedde PLUG y demuestre que una query ingenua (último valor de FY2018) y la query PIT conas_of_date = 2020-01-01devuelven valores distintos. -
Diseño de pipeline. Dibuje (Mermaid o pseudocódigo) el pipeline de una estrategia que opera con noticias Benzinga y confirma con fundamentales EDGAR: asigne cada componente a Kafka, TimescaleDB, Parquet/DuckDB, Feast o vector store; justifique para cada dato si es "texto" o "número"; anote dónde un error introduciría look-ahead. Estime el coste mensual a julio de 2026 con la Tabla 4.1, incluyendo la tarifa non-display aplicable.
-
Análisis de licencias. Un PM propone alimentar un agente de research con (a) titulares de yfinance, (b) quotes de Massive plan Starter $29/mes y (c) transcripts obtenidos por scraping. Para cada fuente, identifique el conflicto de licencia o ToS, proponga la alternativa mínima conforme (con precio a julio de 2026) y redacte el párrafo de justificación para compliance.
-
Deduplicación y alpha decay. Con
gdelt_artlist, recolecte tres días de artículos sobre cinco tickers de semiconductores. Cuantifique la tasa de duplicados antes y después del dedupe y discuta cómo contamina una señal de "volumen de noticias". Estime la semivida bajo si el Sharpe ex-ante cae un 50 % en ocho meses.
Módulo 4 de 15 — LangChain para Trading Cuantitativo. Datos y versiones verificados a julio de 2026; precios y cifras de mercado sujetos a cambio. LangChain 1.3.14 / langchain-core 1.5.2.
// check
Comprueba lo aprendido
Autoevaluación con respuesta inmediata. No se guarda ninguna puntuación.
Ver respuesta
B. La suscripción al terminal licencia el consumo humano en pantalla, no el programático: alimentar un pipeline exige B-PIPE ($2.000–$3.000/mes) o Data License, y enviar contenido a un LLM de terceros o a un vector store accesible por no licenciados requiere addenda explícita de «AI/derived data use» (§4.1.1–4.1.2). Ni la localización del vector store ni la anonimización resuelven el contrato.
Ver respuesta
C. Los exchanges distinguen consumo humano (display) de consumo por máquinas (non-display), y esta última categoría cubre a los agentes que generan señales; la categoría 3 llega a cubrir señales de trading y ATS (§4.1.2). Es la sorpresa presupuestaria más frecuente en proyectos de IA con market data, y el uso interno no exime de ella.
Ver respuesta
B. companyfacts puede exceder la ventana de contexto al traer todos los hechos; companyconcept devuelve solo la métrica pedida, con su filed para joins point-in-time (§4.2.1). frames sirve para screening cross-sectional (un concepto, todas las empresas) y EFTS busca texto en filings, no valores estructurados.
Ver respuesta
B. yfinance hace scraping de endpoints no oficiales de Yahoo, sus ToS la limitan a uso personal y el rediseño web de febrero de 2025 rompió scripts en producción de la noche a la mañana (nota de riesgo de §4.1.2). Para docencia y prototipado sirve; para decisiones reales, una API con licencia comercial o EDGAR — y migrar a Tiingo Power cuesta $30/mes, sin justificación económica para el riesgo.
Ver respuesta
B. Los embeddings son recuperación semántica, no un almacén de cifras exactas: un LLM que «recuerda» un ingreso vía similitud vectorial puede recuperar el periodo equivocado o deformar la cifra, mientras SQL sobre XBRL devuelve el valor con su filed y su accession number (§4.4.1). Invertir los roles reproduce la alucinación numérica.
Ver respuesta
B. La API XBRL muestra la última versión de cada periodo, no el valor pre-restatement: usar −$0,39 en una simulación de 2019–2020 filtra dos años de futuro sin dejar rastro en los logs (§4.4.2). El reporting lag (opción d) es la violación hermana —unir el dato al cierre del periodo—, pero aquí el problema es la re-expresión posterior.
Ver respuesta
B. El Form 4 se presenta en dos días hábiles, con XML gratuito en EDGAR: el comportamiento insider aparece ahí antes que en 13F, notas de research o prensa (§4.3.1). El 13F refleja posiciones de cierre de trimestre con 45 días de retardo, solo largos en valores 13(f): contexto histórico, nunca posicionamiento actual.