// APÉNDICE B · REFERENCIA DEL CURSO

Apéndice B · Entorno de laboratorio

Setup completo del entorno: dependencias, APIs, paper trading y convenciones del laboratorio.

Lectura ~8 minNivel intermedio-avanzadoEdición jul 2026Read in English

Este apéndice define el entorno reproducible con el que se han ejecutado y verificado todos los ejemplos del curso. La filosofía es la que el propio ecosistema impone: la cadencia de releases de LangChain es de minors cada 1–2 meses y patches semanales (questdb.com), de modo que la única defensa real contra la deriva de versiones es el pin estricto y un entorno recreable desde cero. Se asume Python 3.12 (LangChain v1 exige ≥3.10), pip o uv, y Docker para el servicio de Postgres.

14.1 Setup reproducible

14.1.1 Versiones pineadas, variables de entorno, Docker Compose con Postgres para checkpointer, datasets del curso

Dependencias pineadas. La tabla siguiente recoge las versiones con las que se ha validado el material. Las del stack LangChain se verificaron contra la API JSON de PyPI el 29-jul-2026 (questdb.com); las cuantitativas y de datos son las probadas en laboratorio (Riskfolio-Lib 7.0.0 según registro PyPI (DataDrivenInvestor) ).

Tabla B.1 — Versiones pineadas del entorno del curso (verificadas contra PyPI el 29-jul-2026)

PaqueteVersiónPropósito en el curso
langchain1.3.14create_agent, init_chat_model, middleware (transversal: módulos 2–12)
langchain-core1.5.2Runnables/LCEL, content blocks, mensajes
langchain-openai1.4.1Modelos GPT (análisis batch, structured output)
langchain-anthropic1.5.3Modelos Claude (tesis, razonamiento)
langgraph1.1.3Grafos de estado, checkpointers, HITL (módulos 3, 7 y 12)
langsmith0.4.27Tracing, datasets, evaluación (módulo 11)
langgraph-checkpoint-postgres3.0.1AsyncPostgresSaver para memoria durable
langchain-mcp-adapters0.4.0MultiServerMCPClient para datos de mercado vía MCP
pydantic2.12.4Esquemas de señales/tesis validados
numpy2.3.2Cómputo numérico base
pandas2.3.1Series temporales de precios y fundamentales
scipy1.16.1Estadística y optimización auxiliar
cvxpy1.7.3Motor de optimización convexa de carteras
PyPortfolioOpt1.5.6Frontera eficiente, Black-Litterman, HRP
riskfolio-lib7.0.0Optimización con 24 medidas de riesgo, HERC/NCO
vectorbt0.28.0Backtesting vectorizado y parameter sweeps
yfinance0.2.66Descarga OHLCV (solo laboratorio, no producción)
ragas0.4.2Métricas RAG: faithfulness, relevancy, precision, recall
datasets4.1.0Gestión del subset de evaluación estilo FinanceBench
chromadb1.2.0Vector store local para el RAG de filings
rank-bm250.2.2Retrieval léxico para el hybrid search
matplotlib3.10.5Gráficos de equity curves y fronteras eficientes

requirements.txt

text
langchain==1.3.14
langchain-core==1.5.2
langchain-openai==1.4.1
langchain-anthropic==1.5.3
langgraph==1.1.3
langsmith==0.4.27
langgraph-checkpoint-postgres==3.0.1
langchain-mcp-adapters==0.4.0
pydantic==2.12.4
numpy==2.3.2
pandas==2.3.1
scipy==1.16.1
cvxpy==1.7.3
PyPortfolioOpt==1.5.6
riskfolio-lib==7.0.0
vectorbt==0.28.0
yfinance==0.2.66
ragas==0.4.2
datasets==4.1.0
chromadb==1.2.0
rank-bm25==0.2.2
matplotlib==3.10.5

Variables de entorno (.env.example). Nunca se commitea el .env real; el repositorio solo incluye esta plantilla.

dotenv
# LLM providers
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...

# Observabilidad LangSmith
LANGSMITH_API_KEY=lsv2_pt_...
LANGSMITH_TRACING=true
LANGSMITH_PROJECT=langchain-quant-course

# Datos de mercado (Massive, antes Polygon)
MASSIVE_API_KEY=...

# SEC EDGAR — obligatorio por la política de fair access de la SEC:
# formato "Nombre Apellido [email protected]"
SEC_USER_AGENT="Ana García [email protected]"

# Alpaca paper trading (nunca claves live en el laboratorio)
ALPACA_API_KEY=PK...
ALPACA_API_SECRET=...

# Checkpointer Postgres (debe coincidir con docker-compose)
POSTGRES_URI=postgresql://quant:quant@localhost:5432/checkpoints

Docker Compose para el checkpointer. Los agentes con memoria durable de los módulos 3 y 12 usan AsyncPostgresSaver, que requiere un Postgres accesible. Un servicio mínimo basta:

yaml
services:
  postgres:
    image: postgres:16
    container_name: quant-postgres
    environment:
      POSTGRES_USER: quant
      POSTGRES_PASSWORD: quant
      POSTGRES_DB: checkpoints
    ports:
      - "5432:5432"
    volumes:
      - pgdata:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U quant -d checkpoints"]
      interval: 5s
      timeout: 5s
      retries: 5

volumes:
  pgdata:

Nota de inicialización: no hay que crear ninguna tabla a mano. En la primera ejecución, el checkpointer crea su esquema invocando una vez await checkpointer.setup() (los notebooks de los módulos 3 y 12 ya lo hacen de forma idempotente). El volumen pgdata preserva los checkpoints entre reinicios del contenedor; bórrelo con docker compose down -v solo si quiere un estado limpio.

Datasets del curso. Tres conjuntos de datos, todos regenerables, sustentan los ejemplos:

  1. Precios OHLCV diarios: 10 tickers líquidos estadounidenses (mega-caps y ETFs sectoriales), 5 años de historia (jul-2021 a jul-2026), descargables vía la API de Massive o, como fallback gratuito, vía yfinance. Los notebooks cachean el resultado en data/ohlcv.parquet para que los módulos de backtesting sean deterministas y no dependan de la red. yfinance se declara solo para laboratorio: sin SLA, con esquema cambiante y sujeto a rate limiting; en producción se usa un proveedor con contrato.
  2. Corpus de 3 earnings calls: transcripciones (texto plano) de tres earnings calls trimestrales de emisores del universo anterior. Alimentan el pipeline RAG del módulo 5 (chunking, indexación en ChromaDB, hybrid retrieval con BM25) sin costes de licencia: son documentos sintéticos curados para el curso que imitan la estructura de una transcripción real (apertura de operador, prepared remarks del CEO/CFO, Q&A de analistas).
  3. Subset de evaluación estilo FinanceBench: 20 preguntas de respuesta abierta con respuesta de referencia y evidencia asociada, construidas sobre el corpus anterior siguiendo la metodología del benchmark FinanceBench de Patronus AI (QA open-book sobre documentos financieros, tolerancia numérica en el scoring) (API EvangelistAPI Evangelist). Se usa en el módulo 11 como golden dataset para evaluar el agente RAG con RAGAS y con exact-match numérico, y como semilla del dataset de regresión en CI.

Verificación del entorno. Tras pip install -r requirements.txt, la comprobación mínima es:

bash
python -c "import langchain; print(langchain.__version__)"
# Salida esperada: 1.3.14

Conviene además levantar Postgres (docker compose up -d) y ejecutar el notebook 00_smoke_test.ipynb del repositorio, que valida la conexión del checkpointer, la clave de LangSmith (debe aparecer una traza en el proyecto langchain-quant-course) y la descarga de un ticker de muestra.

Advertencia final. Todas las versiones, precios de APIs y condiciones de los proveedores citados en el curso están verificados a julio de 2026 (questdb.com). La cadencia semanal de patches del ecosistema LangChain y la frecuente revisión de tarifas de datos y de LLMs hacen imprescindible re-verificar versiones y costes antes de cualquier uso en producción, y ejecutar la suite de tests de integración del repositorio tras cada actualización de dependencias.


Apéndice B de 3 — 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.