QAO // QUANT AGENTIC ORCHESTRATION
CARTERAS · MÓDULO 08/12

Construcción de carteras: de Markowitz a las vistas generadas por LLM

Frontera eficiente, Black-Litterman con vistas LLM y sensibilidad de la optimización.

LECTURA ~39 MIN NIVEL INTERMEDIO-AVANZADO EDICIÓN JUL 2026

Objetivos de aprendizaje

Al completar este módulo, el lector será capaz de:


El módulo 7 construyó la medición del riesgo: varianza, covarianza y descomposición de Euler. Este módulo responde a la pregunta siguiente: dados unos retornos esperados y una matriz de covarianza, ¿qué pesos debe tener la cartera? La respuesta teórica tiene setenta años y es un árbol genealógico único —Markowitz (1952) → Tobin (1958) → Sharpe (1964) → Fama-French/Carhart → Black-Litterman (1992) → métodos basados solo en riesgo (ERC, MDP, HRP)—, no un recetario de métodos rivales. Sobre ese árbol se injerta la contribución moderna del curso: un LLM que lee noticias y emite vistas que el modelo Black-Litterman pondera bayesianamente antes de que un optimizador determinista calcule los pesos y un humano los vete. Es el puente natural hacia el módulo 9 (señales) y el pipeline que el capstone del módulo 12 implementará de extremo a extremo.

Nota de riesgo. Toda la teoría de este módulo es exacta; todos sus inputs son estimaciones ruidosas. Michaud (1989) demostró que el optimizador media-varianza actúa como un dispositivo de "error maximization": sobrepondera sistemáticamente los activos cuyo retorno esperado está sobreestimado e infrapondera los subestimados, de modo que la cartera "óptima" está optimizada para el ruido, no para el trade-off real (Github) . Y la literatura 2025–2026 añade un segundo canal de error específico de los LLMs: el Memorization Problem documenta que los modelos recuerdan valores económicos exactos anteriores a su cutoff con accuracy direccional superior al 96%, de modo que cualquier backtest de vistas LLM dentro de la ventana de entrenamiento está contaminado de forma indetectable por inspección del código (arXiv.org) . Ningún peso producido en este módulo —humano o algorítmico— es evidencia de despliegue sin validación fuera de muestra y corrección por múltiples pruebas.

8.1 Teoría con fórmulas exactas

Notación: \(\mathbf{w} \in \mathbb{R}^n\) vector de pesos; \(\boldsymbol{\mu} \in \mathbb{R}^n\) retornos esperados; \(\boldsymbol{\Sigma} \in \mathbb{R}^{n \times n}\) matriz de covarianza; \(\mathbf{1}\) vector de unos; \(r_f\) tasa libre de riesgo; \(\delta\) (o \(\lambda\)) aversión al riesgo.

8.1.1 Media-varianza de Markowitz y su descendencia

El programa de optimización. Markowitz (1952) formuló la selección de cartera como un programa cuadrático: minimizar la varianza sujeto a un retorno objetivo (databento.com) :

\[ \min_{\mathbf{w}} \quad \mathbf{w}^\top \boldsymbol{\Sigma} \mathbf{w} \quad \text{s.t.} \quad \mathbf{w}^\top \boldsymbol{\mu} = \bar{\mu}, \quad \mathbf{w}^\top \mathbf{1} = 1 \]

La forma dual con aversión al riesgo \(\lambda\) —la más usada en código— tiene solución cerrada sin restricciones:

\[ \mathbf{w}^{*} = \arg\max_{\mathbf{w}} \left\{ \mathbf{w}^\top \boldsymbol{\mu} - \frac{\lambda}{2} \mathbf{w}^\top \boldsymbol{\Sigma} \mathbf{w} \right\} \quad \Longrightarrow \quad \mathbf{w}^{*} = \frac{1}{\lambda} \boldsymbol{\Sigma}^{-1} \boldsymbol{\mu} \]

Nótese el factor \(\boldsymbol{\Sigma}^{-1}\): es la fuente de toda la fragilidad que la sección 8.2 cuantificará, porque invertir una matriz de covarianza casi singular amplifica los errores de \(\hat{\boldsymbol{\mu}}\) (B2BITS) .

La frontera eficiente como hipérbola. Definiendo los escalares

\[ A = \mathbf{1}^\top \boldsymbol{\Sigma}^{-1} \boldsymbol{\mu}, \qquad B = \boldsymbol{\mu}^\top \boldsymbol{\Sigma}^{-1} \boldsymbol{\mu}, \qquad C = \mathbf{1}^\top \boldsymbol{\Sigma}^{-1} \mathbf{1}, \qquad D = BC - A^2 \]

la frontera de mínima varianza en el espacio \((\sigma^2, \mu)\) es la hipérbola:

\[ \sigma_p^2(\bar{\mu}) = \frac{C \bar{\mu}^2 - 2A\bar{\mu} + B}{D} \]

Cartera de mínima varianza global (GMV). El punto más a la izquierda de la frontera no depende de \(\boldsymbol{\mu}\) —propiedad que lo convierte en el estimador más robusto de la familia— (Github) :

\[ \mathbf{w}_{\text{GMV}} = \frac{\boldsymbol{\Sigma}^{-1} \mathbf{1}}{\mathbf{1}^\top \boldsymbol{\Sigma}^{-1} \mathbf{1}} \qquad \sigma_{\text{GMV}}^2 = \frac{1}{C}, \qquad \mu_{\text{GMV}} = \frac{A}{C} \]

Cartera tangente (máximo Sharpe) y CML. Con activo libre de riesgo \(r_f\), la cartera de activos de riesgo con máximo ratio de Sharpe es:

\[ \mathbf{w}_{\tan} = \frac{\boldsymbol{\Sigma}^{-1} (\boldsymbol{\mu} - r_f \mathbf{1})}{\mathbf{1}^\top \boldsymbol{\Sigma}^{-1} (\boldsymbol{\mu} - r_f \mathbf{1})} \qquad SR_{\tan} = \sqrt{(\boldsymbol{\mu} - r_f\mathbf{1})^\top \boldsymbol{\Sigma}^{-1} (\boldsymbol{\mu} - r_f\mathbf{1})} \]

y toda combinación de \(r_f\) y la tangente forma la Capital Market Line:

\[ E[R_p] = r_f + \sigma_p \cdot \frac{E[R_{\tan}] - r_f}{\sigma_{\tan}} \]

La figura siguiente ilustra estos objetos con cuatro activos sintéticos (los pesos GMV resultantes son 74,6%, 15,0%, 6,7% y 3,7%; los de la tangente, 44,8%, 20,8%, 15,1% y 19,3%):

Frontera eficiente con GMV y cartera tangente

Figura 8.1. Frontera eficiente de Markowitz con cuatro activos sintéticos: cartera de mínima varianza global (GMV) y cartera tangente sobre la Capital Market Line. Elaboración propia con datos sintéticos, jul-2026.

Separación de dos fondos de Tobin. Tobin (1958) demostró que la elección de qué cartera de riesgo mantener es independiente de la aversión al riesgo: solo cambia cuánto se invierte en ella frente al activo seguro (arXiv.org) . Toda cartera óptima es:

\[ \mathbf{w}_{\text{óptima}} = y \cdot \mathbf{w}_{\tan} + (1-y) \cdot r_f, \quad y \in \mathbb{R} \]

con \(y > 1\) implicando apalancamiento. El inversor conservador y el agresivo mantienen la misma cartera de riesgo; difieren solo en el apalancamiento sobre ella (稀土掘金) .

CAPM. En equilibrio, la cartera tangente es la cartera de mercado y todo activo cotiza sobre la Security Market Line (Sharpe 1964; Lintner 1965; Mossin 1966) (mer.vin) :

\[ E[R_i] = r_f + \beta_i \big(E[R_m] - r_f\big) \qquad \beta_i = \frac{\operatorname{Cov}(R_i, R_m)}{\sigma_m^2} \]

Modelos factoriales. El CAPM unifactor se generaliza en la descomposición factorial del retorno. Fama-French 3 factores (1993) añade tamaño y valor, explicando aproximadamente el 90% de la variación de carteras diversificadas frente al ~70% del CAPM (Github) :

\[ R_{i,t} - r_{f,t} = \alpha_i + \beta_{i,M}(R_{M,t} - r_{f,t}) + \beta_{i,SMB} SMB_t + \beta_{i,HML} HML_t + \varepsilon_{i,t} \]

Carhart (1997) añade el momentum \(WML\) (Winners Minus Losers, ganadores 12–1 meses menos perdedores) (Github) :

\[ R_{i,t} - r_{f,t} = \alpha_i + \beta_{i,M} MKT_t + \beta_{i,SMB} SMB_t + \beta_{i,HML} HML_t + \beta_{i,WML} WML_t + \varepsilon_{i,t} \]

y Fama-French 5 factores (2015) incorpora rentabilidad operativa (\(RMW\), Robust Minus Weak) e inversión conservadora (\(CMA\), Conservative Minus Aggressive) (Github) :

\[ R_{i,t} - r_{f,t} = \alpha_i + \beta_{i,M} MKT_t + \beta_{i,SMB} SMB_t + \beta_{i,HML} HML_t + \beta_{i,RMW} RMW_t + \beta_{i,CMA} CMA_t + \varepsilon_{i,t} \]

Estos modelos importan aquí por dos razones: (i) definen los presupuestos de riesgo por factor que se imponen como restricciones lineales en el optimizador (\(\sum_i w_i \beta_{i,k} \leq b_k\)), y (ii) son el benchmark que cualquier "alpha" generado por un LLM debe batir neto de costes —la sección 8.4 mostrará que los estilos de los LLMs suelen ser exposiciones factoriales FF/Carhart no declaradas (Github) . Los datos de factores se descargan de la Ken French Data Library (Github) .

EXPANDE

En palabras llanas: la frontera eficiente es la carta de rutas no dominadas

Piensa en planificar un viaje por carretera. Algunas rutas están dominadas: existe otra que llega igual de rápido con menos tramo peligroso, o antes con el mismo riesgo. Esas no las elegiría nadie. La frontera eficiente es, sencillamente, el conjunto de rutas que no están dominadas: cada punto ofrece el máximo retorno posible para su nivel de riesgo. Sobre esa carta hay dos paradas con nombre propio:

  • La GMV (mínima varianza global) es la ruta más tranquila de todas, sin importar a qué hora llegas. Como no usa los retornos esperados —solo la matriz de covarianza—, es la opción más robusta de la familia: se ahorra el dato más ruidoso del problema, como cuantificará la sección 8.2.
  • La tangente es la ruta con mejor «progreso por unidad de susto»: maximiza el exceso de retorno sobre \(r_f\) por cada punto de volatilidad. Tobin demostró que todos los inversores deberían recorrer el mismo tramo arriesgado (la tangente) y diferir solo en cuánto del viaje hacen por él frente a la autopista segura del activo libre de riesgo.

El precio de esa elegancia: la tangente depende por completo de \(\boldsymbol{\mu}\) y de invertir \(\boldsymbol{\Sigma}\). Ahí empiezan todos los problemas del módulo.

8.1.2 Black-Litterman, Kelly y los métodos libres de \(\boldsymbol{\mu}\)

Black-Litterman completo. Black y Litterman (1992) resolvieron el problema de los inputs absurdos del MVO invirtiendo el sentido del cálculo: en lugar de estimar \(\boldsymbol{\mu}\) y optimizar, parten del equilibrio CAPM y dejan que el inversor desvíe el prior solo donde tiene convicción (Github) . El procedimiento tiene cuatro pasos.

Paso 1 — Retornos implícitos de equilibrio (optimización inversa sobre los pesos de capitalización \(\mathbf{w}_m\), con \(\delta\) típicamente entre 2,5 y 3,5) (Github) :

\[ \boldsymbol{\pi} = \delta \, \boldsymbol{\Sigma} \, \mathbf{w}_{m} \]

Paso 2 — Vistas del inversor: \(k\) vistas \(\mathbf{q} = P\boldsymbol{\mu} + \boldsymbol{\varepsilon}\), con \(\boldsymbol{\varepsilon} \sim \mathcal{N}(\mathbf{0}, \boldsymbol{\Omega})\), \(P \in \mathbb{R}^{k \times n}\) matriz de "picking" y \(\boldsymbol{\Omega}\) diagonal de incertidumbre.

Paso 3 — Posterior bayesiano, en sus dos formas exactas equivalentes (Github) :

\[ \boldsymbol{\mu}_{BL} = \left[(\tau\boldsymbol{\Sigma})^{-1} + P^\top \boldsymbol{\Omega}^{-1} P\right]^{-1} \left[(\tau\boldsymbol{\Sigma})^{-1} \boldsymbol{\pi} + P^\top \boldsymbol{\Omega}^{-1} \mathbf{q}\right] \]
\[ \boldsymbol{\mu}_{BL} = \boldsymbol{\pi} + \tau \boldsymbol{\Sigma} P^\top \left(P \tau \boldsymbol{\Sigma} P^\top + \Omega\right)^{-1} \left(\mathbf{q} - P\boldsymbol{\pi}\right) \]

con covarianza posterior \(\boldsymbol{\Sigma}_{BL} = \boldsymbol{\Sigma} + M\), donde \(M = \left[(\tau\boldsymbol{\Sigma})^{-1} + P^\top \boldsymbol{\Omega}^{-1} P\right]^{-1}\). El escalar \(\tau\) mide la incertidumbre del prior; la práctica institucional lo fija en \([0{,}01, 0{,}05]\) o como \(\tau = 1/T\) (Github) . La calibración de \(\boldsymbol{\Omega}\) de Idzorek (2005) fija cada elemento diagonal a partir de la varianza de la combinación de activos de la vista (Github) :

\[ \omega_k = \tau \, \mathbf{p}_k \, \boldsymbol{\Sigma} \, \mathbf{p}_k^\top \]

Paso 4 — Pesos: se alimentan \(\boldsymbol{\mu}_{BL}\) y \(\boldsymbol{\Sigma}_{BL}\) al optimizador MV: \(\mathbf{w}^* = \frac{1}{\delta}\boldsymbol{\Sigma}_{BL}^{-1}\boldsymbol{\mu}_{BL}\) (sin restricciones). La lectura económica es la clave pedagógica: BL es un shrinkage bayesiano hacia el equilibrio —una vista con \(\Omega\) alta apenas mueve \(\boldsymbol{\pi}\); una vista con \(\Omega\) baja lo domina localmente. Ahí es exactamente donde entrarán las vistas LLM de la sección 8.3.

Criterio de Kelly. Kelly (1956) maximiza la tasa de crecimiento logarítmica esperada de la riqueza (Github) . Para una apuesta con probabilidad \(p\) de ganar y odds netos \(b\):

\[ G(f) = p \cdot \ln(1 + b f) + (1 - p) \cdot \ln(1 - f) \]

Derivando e igualando a cero se obtiene la fracción óptima (Github) :

\[ f^{*} = \frac{bp - (1-p)}{b} = \frac{p(b+1) - 1}{b} = p - \frac{q}{b} \]

La generalización con pérdidas parciales (Rotando y Thorp 1992; Thorp 2008), donde \(a\) son las odds del resultado negativo (Github) :

\[ f^{*} = \frac{p}{a} - \frac{1-p}{b} \]

y la versión continua gaussiana, con su forma multivariada (Github) :

\[ f^{*} = \frac{\mu - r_f}{\sigma^2} \qquad \text{y multivariado:} \quad \mathbf{f}^{*} = \boldsymbol{\Sigma}^{-1}(\boldsymbol{\mu} - r_f \mathbf{1}) \]

El Kelly multivariado coincide con la cartera tangente sin normalizar —el caso \(\lambda = 1\) del MVO—, lo que conecta sizing y optimización en una única teoría. Como Kelly pleno es extraordinariamente sensible al edge estimado, la práctica estándar es el Kelly fraccionado \(\hat{f} = c \cdot f^{*}\) con \(c = 1/2\) o \(1/4\): half-Kelly conserva aproximadamente el 75% del crecimiento con cerca de la mitad de la volatilidad, y el propio Thorp operaba en ese entorno (Github) .

Equal Risk Contribution (ERC). Los métodos basados solo en riesgo eliminan \(\boldsymbol{\mu}\) del problema. La contribución marginal al riesgo y la contribución al riesgo del activo \(i\) son (Maillard, Roncalli y Teïletche 2010) (Github) :

\[ MRC_i = \frac{\partial \sigma_p}{\partial w_i} = \frac{(\boldsymbol{\Sigma}\mathbf{w})_i}{\sqrt{\mathbf{w}^\top \boldsymbol{\Sigma} \mathbf{w}}} \qquad RC_i = w_i \cdot MRC_i = \frac{w_i (\boldsymbol{\Sigma}\mathbf{w})_i}{\sigma_p} \]

Por la identidad de Euler del módulo 7, \(\sigma_p = \sum_i RC_i\). La condición ERC exige que cada activo aporte exactamente \(1/n\) del riesgo total:

\[ RC_i = RC_j = \frac{\sigma_p}{n} \quad \forall i, j \quad \Longleftrightarrow \quad w_i (\boldsymbol{\Sigma}\mathbf{w})_i = w_j (\boldsymbol{\Sigma}\mathbf{w})_j \;\; \forall i,j \]

Sin solución cerrada general, se resuelve numéricamente (formulación de mínimos cuadrados; la versión de Spinu 2013 convexifica el problema vía una función logarítmica) (Github) :

\[ \mathbf{w}_{ERC} = \arg\min_{\mathbf{w}} \sum_{i=1}^n \sum_{j=1}^n \left( w_i(\boldsymbol{\Sigma}\mathbf{w})_i - w_j(\boldsymbol{\Sigma}\mathbf{w})_j \right)^2 \quad \text{s.t. } \mathbf{w}^\top\mathbf{1}=1,\; w_i \geq 0 \]

ERC se sitúa entre \(1/N\) y GMV en el espectro diversificación-riesgo.

Shrinkage de covarianza de Ledoit-Wolf. La covarianza muestral \(S\) es ruidosa y mal condicionada; el estimador de Ledoit-Wolf (2003/2004) la combina convexamente con un objetivo estructurado \(F\) (Source) :

\[ \widehat{\boldsymbol{\Sigma}}_{LW} = \delta^{*} F + (1 - \delta^{*}) S \]

con intensidad óptima calculable en forma cerrada desde los datos, sin parámetros libres (AgentConn) :

\[ \delta^{*} = \frac{\sum_{i \neq j} \widehat{\operatorname{Var}}(s_{ij})}{\sum_{i \neq j}(s_{ij} - f_{ij})^2} \]

Objetivos habituales: correlación constante (2003: \(f_{ii} = s_{ii}\), \(f_{ij} = \bar{\rho}\sqrt{s_{ii}s_{jj}}\)) e identidad escalada (2004: \(F = \frac{\operatorname{Tr}(S)}{n} I\)). Ejemplo numérico verificado: con \(\delta = 0{,}45\), correlación muestral 0,72 y media 0,42, la correlación encogida es \(0{,}45 \times 0{,}42 + 0{,}55 \times 0{,}72 = 0{,}585\) (maryammiradi.com) . Regla operativa del curso: nunca alimentar \(\Sigma\) muestral cruda a BL o MVO con más de una decena de activos.

Maximum Diversification. Choueifaty y Coignard (2008) maximizan el ratio de diversificación (TradingAgents-AI) :

\[ DR(\mathbf{w}) = \frac{\mathbf{w}^\top \boldsymbol{\sigma}}{\sqrt{\mathbf{w}^\top \boldsymbol{\Sigma} \mathbf{w}}} = \frac{\sum_i w_i \sigma_i}{\sigma_p} \]

La solución sin restricción de no-cortos es \(\mathbf{w}_{MD} \propto \boldsymbol{\Sigma}^{-1} \boldsymbol{\sigma}\), normalizada a suma 1 (Cambridge University Press & Assessment) . Si todos los Sharpe son iguales, MDP coincide con la tangente; además, \(DR^2\) es el número efectivo de fuentes de riesgo independientes de la cartera (Cambridge University Press & Assessment) .

HRP — Hierarchical Risk Parity. López de Prado (2016) logra diversificación sin invertir \(\boldsymbol{\Sigma}\), eliminando de raíz la inestabilidad de \(\boldsymbol{\Sigma}^{-1}\) (ResearchGate) . Tres etapas: (1) clustering jerárquico sobre la distancia derivada de la correlación:

\[ d_{ij} = \sqrt{\tfrac{1}{2}\left(1 - \rho_{ij}\right)} \]

(2) cuasi-diagonalización: reordenar filas y columnas de \(\boldsymbol{\Sigma}\) siguiendo el dendrograma para que los activos similares queden adyacentes; (3) bisección recursiva: para cada split en subclusters \(c_1, c_2\) se calcula la varianza intra-cluster con asignación de varianza inversa,

\[ \tilde{\mathbf{w}}_{c} = \frac{1/\sigma_i^2}{\sum_{j \in c} 1/\sigma_j^2}, \qquad V_c = \tilde{\mathbf{w}}_{c}^\top \boldsymbol{\Sigma}_c \, \tilde{\mathbf{w}}_{c} \]

y el factor de reparto entre subclusters:

\[ \alpha_1 = 1 - \frac{V_1}{V_1 + V_2}, \qquad \alpha_2 = 1 - \alpha_1 \]

Los pesos se propagan multiplicativamente hasta las hojas. Las extensiones documentadas incluyen HERC/HERC2 (Raffinot 2018), NCO (López de Prado 2019) y la asignación Schur complementaria (Cotton 2024), que unifica HRP y mínima varianza garantizando \(\text{var}(\text{Schur}) \leq \text{var}(\text{HRP})\) (arXiv.org) .

HRP y Kelly fraccionado en producción:

from pypfopt import HRPOpt

hrp = HRPOpt(returns)                 # clustering Ward + biseccion recursiva
w_hrp = hrp.optimize()                # sin invertir Sigma: robusto a mal condicionamiento

# Kelly fraccionado sobre la tangente BL (sizing prudencial)
f_kelly_full = np.linalg.solve(S_bl.values, mu_bl.values - 0.03)   # Sigma^-1 (mu - rf 1)
c_frac = 0.25                                                         # quarter-Kelly
w_final  = c_frac * f_kelly_full / np.sum(np.abs(f_kelly_full))

(ResearchGate)

Implementación de referencia (PyPortfolioOpt):

from pypfopt import EfficientFrontier, risk_models, expected_returns

mu = expected_returns.mean_historical_return(prices)
S  = risk_models.CovarianceShrinkage(prices).ledoit_wolf()   # nunca sample_cov cruda
ef = EfficientFrontier(mu, S)
w_tan = ef.max_sharpe(risk_free_rate=0.03)

ef_gmv = EfficientFrontier(mu, S)
w_gmv  = ef_gmv.min_volatility()

(arXiv.org)

GMV con cvxpy (control total de restricciones):

import cvxpy as cp
import numpy as np

n = S.shape[0]
w = cp.Variable(n)
prob = cp.Problem(
    cp.Minimize(cp.quad_form(w, S.values)),
    [cp.sum(w) == 1, w >= 0, w <= 0.25]        # long-only + cota por activo
)
prob.solve()
w_gmv = w.value                                 # GMV restringida = shrinkage implícito (§8.2)
EXPANDE

Ejemplo trabajado: Kelly pleno, medio y cuarto, número a número

Una estrategia gana con probabilidad \(p = 0{,}60\) y paga odds netos \(b = 1\) (gana exactamente lo apostado). La fórmula discreta del módulo, \(f^{*} = p - (1-p)/b\), da \(f^{*} = 0{,}20\): el Kelly pleno apostaría el 20% del capital en cada ocasión. ¿Cuánto crecimiento se sacrifica al fraccionar? Evaluando la tasa de crecimiento logarítmico \(G(f) = p\ln(1+bf) + (1-p)\ln(1-f)\):

import numpy as np

def G(f, p=0.60, b=1.0):
    return p * np.log(1 + b * f) + (1 - p) * np.log(1 - f)

f_star = 0.60 - 0.40 / 1.0                          # 0.20
for c in (1, 1/2, 1/4):
    f = c * f_star
    print(f"c={c:<5} f={f:.3f}   G={G(f):.4%}   retencion={G(f)/G(f_star):.1%}")
# c=1     f=0.200   G=2.0136%   retencion=100.0%
# c=0.5   f=0.100   G=1.5042%   retencion=74.7%
# c=0.25  f=0.050   G=0.8757%   retencion=43.5%

Tres lecturas. Primera, la tabla confirma la cifra del módulo: half-Kelly retiene ~75% del crecimiento esperado a cambio de aproximadamente la mitad de la volatilidad de la trayectoria (el ejercicio 3 lo simula con 1.000 trayectorias). Segunda, quarter-Kelly —el \(c = 0{,}25\) del snippet HRP/Kelly de esta misma sección— retiene solo el 43%: es un seguro contra la sobreestimación del edge, no una maximización. Si el \(p\) real fuera 0,55 en lugar de 0,60, el Kelly verdadero sería 0,10 y apostar un 20% sería sobreapalancamiento. Tercera, la conexión con Markowitz: el Kelly multivariado \(\mathbf{f}^{*} = \boldsymbol{\Sigma}^{-1}(\boldsymbol{\mu} - r_f\mathbf{1})\) es la tangente sin normalizar, de modo que toda la fragilidad de la sección 8.2 aplica también al sizing —fraccionar \(f\) es el equivalente en sizing al shrinkage en asignación.

8.2 La fragilidad de la optimización

8.2.1 Error maximization, sensibilidad de estimación y defensas

El enemigo es el input, no el modelo. Merton (1980) demostró que la matriz de covarianza se estima con alta precisión usando datos de frecuencia razonable, pero que la media de retornos solo es estimable con historiales mucho más largos de los disponibles: con datos históricos realistas, \(\hat{\boldsymbol{\mu}}\) es esencialmente inútil para calcular pesos óptimos (B2BITS) . Chopra y Ziemba (1993) cuantificaron la jerarquía del daño: los errores en medias tienen aproximadamente un orden de magnitud más de impacto en la pérdida de utilidad que los errores en varianzas, y estos a su vez más que los de covarianzas —la regla práctica habitualmente citada es ~11× medias frente a varianzas y ~21× medias frente a covarianzas en términos de equivalente cierto, cifras que conviene tomar como orden de magnitud y no como constante universal. La consecuencia didáctica es directa: el presupuesto de research debe ir primero a \(\boldsymbol{\mu}\), no a \(\boldsymbol{\Sigma}\).

El mecanismo geométrico es la inversión de \(\boldsymbol{\Sigma}\): en universos correlacionados la matriz es casi singular y multiplicar por \(\boldsymbol{\Sigma}^{-1}\) equivale a multiplicar por un número grande, que magnifica cambios pequeños en retornos esperados en cambios enormes en pesos (Best y Grauer 1991). El ejemplo numérico canónico: con correlación 0,7, cambiar el retorno esperado de un activo en solo 2 puntos porcentuales (del 10% al 8%) reduce su peso óptimo de 0,50 a 0,18 (B2BITS) . La figura siguiente reproduce el fenómeno con los cuatro activos sintéticos: mover \(\pm 2\) p.p. el retorno esperado del Activo 4 desplaza su peso tangente del 12,2% al 26,1% —casi 14 p.p. de rotación por un error de estimación perfectamente plausible.

Sensibilidad de los pesos óptimos a perturbaciones en mu

Figura 8.2. Sensibilidad de los pesos de la cartera tangente a una perturbación de ±2 p.p. en el retorno esperado del Activo 4: su peso pasa del 12,2% al 26,1%. Elaboración propia con datos sintéticos, jul-2026.

Michaud y el veredicto \(1/N\). Michaud (1989) bautizó el fenómeno: el MVO es un dispositivo de error maximization que explota agresivamente los errores de estimación en lugar de aproximar el trade-off media-varianza verdadero (Github) . La línea formal arranca en Jobson y Korkie (1980), continúa con Britten-Jones (1999) —el error muestral de los pesos tangente es enorme— y con Green y Hollifield (1992), que muestran que incluso sin error de estimación un factor dominante genera pesos extremos (Foxholm Financial) . El resultado empírico más incómodo es de DeMiguel, Garlappi y Uppal (2009): catorce estrategias sofisticadas (Bayes-Stein, mínima varianza, restricciones) frente a \(1/N\) en siete datasets, y ninguna bate consistentemente al reparto equitativo fuera de muestra; con costes, la brecha se amplía (Github) . El matiz documentado por Kirby y Ostdiek (2012) es igualmente importante: gran parte del resultado proviene del diseño con alto riesgo de estimación y turnover extremo, y el MVO con bajo turnover (volatility/reward-to-risk timing) sí puede batir a \(1/N\) neto de costes (Github) .

Restricciones como shrinkage (Jagannathan-Ma). El resultado más contraintuitivo y más útil de la literatura: la cartera GMV long-only con cotas superiores calculada con \(\hat{\boldsymbol{\Sigma}}\) es idéntica a la GMV sin restricciones de una matriz modificada en la que los multiplicadores de Lagrange encogen las covarianzas de los activos en la cota. Imponer restricciones "erróneas" actúa como shrinkage de covarianza, y por eso la GMV restringida bate a la no restringida fuera de muestra (Jagannathan y Ma 2003) (arXiv.org) . DeMiguel, Garlappi, Nogales y Uppal (2009) unificaron el paisaje: las restricciones de norma \(\|\mathbf{w}\|_p \leq \delta\) anidan como casos especiales el shrinkage de Ledoit-Wolf, el resultado de Jagannathan-Ma y el propio \(1/N\) (tessl.io) . Lección operativa: las restricciones sectoriales, de cota por activo y long-only no son concesiones al compliance; son regularización estadística.

Turnover y costes. El retorno neto tras rebalancear incorpora el coste de transacción \(\phi\) (Palomar 2025) (arXiv.org) :

\[ R^{portf}_t = \big(\mathbf{w}^{reb}_{t-1}\big)^\top \mathbf{r}^{lin}_t \;-\; \phi\big(\mathbf{w}_{t-1} \rightarrow \mathbf{w}^{reb}_{t-1}\big) \]

con modelo lineal \(\phi = \sum_i c_i |w_i^{reb} - w_i^{drift}|\) para comisiones y spread, e impacto de mercado cuadrático en pesos (raíz cuadrada en volumen, Almgren-Chriss; módulo 7). La defensa estándar es penalizar el turnover dentro del objetivo (arXiv.org) :

\[ \max_{\mathbf{w}} \left\{ \mathbf{w}^\top\boldsymbol{\mu} - \frac{\lambda}{2}\mathbf{w}^\top\boldsymbol{\Sigma}\mathbf{w} - \gamma \sum_i |w_i - w_i^{prev}| \right\} \]

A título ilustrativo: una rotación anual del 200% sobre una cartera de 100 millones con coste efectivo medio de 15 bps por lado destruye 300{,}000,00 de retorno anual (30 bps de drag) —suficiente para invertir el ranking de cualquier par de métodos de la tabla siguiente.

Deflated Sharpe Ratio. Todo backtest de asignación debe corregirse por longitud muestral, no-normalidad y sesgo de selección por múltiples trials (Bailey y López de Prado 2014) (Github) :

\[ DSR = \Phi\left( \frac{(\widehat{SR} - E[\max SR])\sqrt{T-1}}{\sqrt{1 - \hat{\gamma}_3 \widehat{SR} + \frac{\hat{\gamma}_4 - 1}{4}\widehat{SR}^2}} \right) \]

donde \(E[\max SR]\) es el máximo Sharpe esperado bajo la nula tras \(N\) trials independientes:

\[ E[\max SR] \approx \sqrt{V_{SR}}\left[(1-\zeta)\,\Phi^{-1}\!\left(1 - \tfrac{1}{N}\right) + \zeta\,\Phi^{-1}\!\left(1 - \tfrac{1}{Ne}\right)\right] \]

con \(\zeta\) la constante de Euler-Mascheroni y \(V_{SR}\) la varianza de los Sharpe entre trials. Regla práctica: exigir \(DSR > 0{,}95\), complementado con PBO vía CSCV y purged/embargoed cross-validation para series con etiquetas solapadas (Github) .

Tabla 8.1 — Métodos de asignación: supuestos, inputs críticos, fragilidad y cuándo usarlos

Método Supuestos clave Inputs críticos Fragilidad dominante Cuándo usarlo
GMV Solo importa el riesgo; \(\boldsymbol{\mu}\) ignorado \(\boldsymbol{\Sigma}\) (bien estimada) Estimación de \(\boldsymbol{\Sigma}\); concentración en activos de baja vol Baseline robusto; universo amplio con poca señal de retorno
Tangente (máx. Sharpe) \(\boldsymbol{\mu}\), \(\boldsymbol{\Sigma}\) conocidos; \(r_f\) existe \(\boldsymbol{\mu}\) y \(\boldsymbol{\Sigma}^{-1}\) Error maximization extremo: \(\pm 2\) p.p. en \(\mu_i\) → ±14 p.p. en \(w_i\) Solo con \(\boldsymbol{\mu}\) shrinkageado (BL, Bayes-Stein) y restricciones
Black-Litterman Equilibrio CAPM como prior; vistas \(\sim \mathcal{N}\) \(\mathbf{w}_m\), \(\delta\), \(\tau\), \(P\), \(\mathbf{q}\), \(\boldsymbol{\Omega}\) Mala calibración de \(\boldsymbol{\Omega}\); vistas sobreconfidentes Siempre que haya vistas (humanas o LLM) que combinar con el mercado
Kelly (fraccionado) Edge estimable; utilidad logarítmica Edge (\(p\), \(b\) o \(\mu/\sigma^2\)) Sobreestimar el edge → sobreapalancamiento ruin Sizing de apuestas con edge documentado; siempre \(c \leq 1/2\)
ERC / Risk Parity Diversificación por riesgo, no por capital \(\boldsymbol{\Sigma}\) Rotación hacia activos de baja vol/correlación estimada Carteras multi-activo sin views fiables de retorno
Maximum Diversification Maximizar \(DR\); Sharpe homogéneos implícitos \(\boldsymbol{\Sigma}\), \(\boldsymbol{\sigma}\) \(\boldsymbol{\Sigma}^{-1}\) vuelve a aparecer; sensible al condicionamiento Cuando se cree en Sharpe iguales ex ante y se quiera diversificación máxima
HRP Estructura jerárquica de correlaciones \(\boldsymbol{\Sigma}\) (sin invertir), linkage Arbitrariedad del clustering; menos eficiente in-sample Producción con \(\boldsymbol{\Sigma}\) mal condicionada o \(n\) grande

Interpretación. La tabla ordena los métodos de mayor a menor dependencia de \(\boldsymbol{\mu}\), que es exactamente el orden de mayor a menor fragilidad: la tangente concentra toda la teoría y todo el riesgo de estimación; GMV, ERC, MDP y HRP renuncian deliberadamente al input más ruidoso a cambio de objetivos menos ambiciosos. Black-Litterman ocupa el centro porque no elimina \(\boldsymbol{\mu}\) sino que lo ancla: el prior de equilibrio actúa como shrinkage estructural y las vistas solo desvían el posterior donde \(\boldsymbol{\Omega}\) lo permite. Kelly no es un método de asignación rival sino una regla de sizing que, en su forma multivariada, coincide con la tangente sin normalizar —su fragilidad es, por tanto, la misma amplificada por el apalancamiento. La columna "cuándo usarlo" resume la doctrina del curso: el método se elige según la calidad de la información disponible, no según su sofisticación matemática; con vistas débiles y ruidosas (incluidas las de un LLM), BL con \(\boldsymbol{\Omega}\) alta o métodos libres de \(\boldsymbol{\mu}\) dominan a la tangente ingenua.

EXPANDE

Trampa común: darle \(\hat{\boldsymbol{\mu}}\) cruda al max_sharpe

El snippet de referencia de la sección 8.1.2 enseña la API de PyPortfolioOpt: mean_historical_return + ledoit_wolf + max_sharpe. El error de producción es leerlo como receta: esa secuencia alimenta al optimizador la media histórica muestral, justo el input que Merton (1980) declaró esencialmente inestimable con los historiales disponibles, y cuyos errores pesan del orden de 11× más que los de varianzas y 21× más que los de covarianzas (Chopra-Ziemba). La propia Figura 8.2 del módulo lo cuantifica: ±2 p.p. en el retorno esperado de un activo mueve su peso tangente del 12,2% al 26,1%.

El snippet enseña sintaxis; la Tabla 8.1 enseña doctrina: la tangente solo entra en producción «con \(\boldsymbol{\mu}\) shrinkageado (BL, Bayes-Stein) y restricciones». Traducción operativa con las defensas ya vistas en el módulo:

  • Ancla el retorno: usa el posterior \(\boldsymbol{\mu}_{BL}\) de Black-Litterman o encoge \(\hat{\boldsymbol{\mu}}\) hacia \(\mu_{\text{GMV}}\) (ejercicio 5), nunca la media cruda.
  • Restringe a propósito: long-only y cotas por activo no son compliance; son shrinkage de covarianza vía Jagannathan-Ma.
  • Cobra por cambiar de idea: penaliza el turnover en el objetivo, porque 30 bps de drag anual bastan para invertir el ranking entre métodos.

Si tu pipeline no incluye ninguna de las tres, no tienes una cartera tangente: tienes ruido amplificado por \(\boldsymbol{\Sigma}^{-1}\).

EXPANDE

Elegir el método según la información disponible (y el peaje de rebalancear)

La interpretación de la Tabla 8.1 resume la doctrina del curso: el método se elige por la calidad de la información disponible, no por su sofisticación matemática. Este mapa la convierte en procedimiento:

Diagrama

Y un peaje que el mapa no dibuja pero el comité sí paga: cambiar de asignación cuesta dinero. Con el modelo lineal del módulo, \(\phi = \sum_i c_i|w_i^{reb} - w_i^{drift}|\), el drag anual es proporcional a la rotación:

Drag anual por costes de transacción en función de la rotación y el coste por lado

Figura E8.1. Drag anual en puntos básicos para costes efectivos de 5, 15 y 30 bps por lado. El punto marcado reproduce el ejemplo numérico del módulo: 200% de rotación × 15 bps = 30 bps de drag, es decir, 300.000 USD anuales sobre una cartera de 100 M USD —suficiente para invertir el ranking de la Tabla 8.1. Fuente: cifras ilustrativas del módulo · Elaboración propia a 29-jul-2026.

Por eso la versión operativa del objetivo penaliza \(\gamma\sum_i|w_i - w_i^{prev}|\): no es prudencia decorativa, es lo que separa un backtest ganador de una cartera real con retorno neto positivo.

8.3 Vistas LLM para Black-Litterman (caso práctico completo)

8.3.1 Pipeline documentado: de noticias a pesos con veto humano

La integración con mejor soporte empírico es la de Kim, Lee et al. (2025, arXiv 2504.14345), un framework completo y reproducible: para cada acción del universo (S&P 500) se consulta al LLM \(N = 100\) veces con noticias recientes; la media de las respuestas repetidas constituye el vector de vistas \(\mathbf{q}\), y la varianza de las respuestas puebla la diagonal de \(\boldsymbol{\Omega}\) —mayor varianza implica mayor incertidumbre y, automáticamente, menor peso de la vista en el posterior—, con \(P = I\) (una vista absoluta por activo) (tessl.io) . El resultado reportado es que las carteras guiadas por los LLMs de mejor desempeño superan a los baselines tradicionales en términos absolutos y ajustados por riesgo, pero —matiz esencial— la elección del LLM no es la búsqueda de un mejor pronosticador sino "una elección estratégica de estilo de inversión cuyo éxito depende de su alineación con el régimen de mercado vigente" (tessl.io) . La especificación GLS equivalente que utiliza el paper hace explícita la estructura de prior y vistas apilados (Cambridge University Press & Assessment) :

\[ \mathbf{y} = X\boldsymbol{\mu} + \boldsymbol{\varepsilon}, \quad \mathbf{y} = \begin{bmatrix}\boldsymbol{\pi}\\ \mathbf{q}\end{bmatrix}, \quad X = \begin{bmatrix} I \\ P \end{bmatrix}, \quad V = \begin{bmatrix} \tau\boldsymbol{\Sigma} & \mathbf{0} \\ \mathbf{0} & \boldsymbol{\Omega} \end{bmatrix} \]

El pipeline institucional completo, con LangChain/LangGraph en la capa de generación de vistas y herramientas deterministas aguas abajo, respeta el patrón vertebral del curso: el LLM razona, la matemática decide, el humano veta.

Diagrama

Snippet — capa de generación de vistas con LangChain (salida estructurada, esquema cerrado):

from pydantic import BaseModel, Field
from langchain_openai import ChatOpenAI

class VistaActivo(BaseModel):
    ticker: str
    retorno_esperado_anual: float = Field(description="Vista de retorno, en tanto por uno")
    justificacion: str = Field(max_length=500)
    evidencia_literal: str = Field(description="Cita verbatim de la noticia que sustenta la vista")

llm = ChatOpenAI(model="gpt-5", temperature=1.0)   # temperatura > 0: la dispersion es la senal
chain = llm.with_structured_output(VistaActivo)

# N = 100 consultas repetidas por activo (arXiv 2504.14345)
respuestas = [chain.invoke({"noticias": noticias_pit, "ticker": tk}) for _ in range(100)]
q_i     = float(np.mean([r.retorno_esperado_anual for r in respuestas]))
omega_i = float(np.var([r.retorno_esperado_anual for r in respuestas], ddof=1))

Dos decisiones de diseño no son negociables. Primera, el esquema cerrado con evidencia literal: cada vista debe citar verbatim la noticia que la sustenta (anti-alucinación del módulo 6), y las noticias deben ser point-in-time —publicadas antes del timestamp de decisión, con latencia de ingesta modelada—. Segunda, la temperatura no se minimiza: la dispersión de las respuestas es la medida de incertidumbre que alimenta \(\boldsymbol{\Omega}\).

Snippet — posterior BL con PyPortfolioOpt y optimización restringida:

from pypfopt.black_litterman import BlackLittermanModel

bl = BlackLittermanModel(
    S_lw,                                # covarianza Ledoit-Wolf (jamás muestral cruda)
    pi="market_cap",                     # prior de equilibrio: pi = delta Sigma w_m
    absolute_views=pd.Series(q_dict),    # q: medias de las N=100 consultas
    omega="idzorek",                     # o diagonal = varianza de las consultas
    tau=0.025,
)
mu_bl   = bl.bl_returns()
S_bl    = bl.bl_cov()
ef      = EfficientFrontier(mu_bl, S_bl)
ef.add_constraint(lambda w: w >= 0)                  # long-only
ef.add_constraint(lambda w: w <= 0.10)               # cota por activo (Jagannathan-Ma)
weights = ef.max_sharpe(risk_free_rate=0.03)         # -> veto humano antes del OMS

(arXiv.org)

En la práctica institucional. El despliegue documentado que más se aproxima a este pipeline en producción combina tres decisiones conservadoras. (i) Universo reducido y líquido: las vistas se emiten sobre mega-caps donde el error de \(\hat{\boldsymbol{\mu}}\) es menos dañino y el borrow no es un problema. (ii) \(\boldsymbol{\Omega}\) inflada deliberadamente: la varianza de las \(N\) consultas se multiplica por un factor prudencial (típicamente 2–5) antes de entrar en BL, porque la evidencia de la sección 8.4 muestra que la confianza lingüística del LLM no es una probabilidad tradable (Github) . (iii) Veto humano con traza: el comité registra cada aprobación/veto junto con el JSON de vistas, la versión del prompt y la traza LangSmith, de modo que la decisión sea reconstruible ante un auditor —la misma disciplina de observabilidad que el módulo de gobernanza exige como única defensa ante el vacío regulatorio de la IA agéntica. El pipeline de arXiv 2504.14345 se usa como referencia académica reproducible, no como plantilla de despliegue: sus resultados son un objeto de estudio (ventanas cortas, sin fricciones completas), no una estrategia.

Contexto crítico del caso. La señal de sentimiento de titulares tiene el mejor pedigrí empírico de la literatura LLM (Lopez-Lira y Tang 2023: scores GPT-4 post-cutoff que predicen la reacción inicial y el drift posterior, más fuerte en small-caps y noticias negativas), pero los propios autores documentan que "los retornos de la estrategia decaen a medida que aumenta la adopción de LLMs, consistente con una mejora de la eficiencia de precios" —el edge se arbitra (skfolio.org) . Y Glasserman y Lin (2023) descomponen el sesgo en look-ahead y distraction effect: in-sample, los titulares anonimizados rinden mejor que los identificados, porque el conocimiento general de la empresa contamina la lectura del sentimiento más que el recuerdo del futuro —especialmente en large caps—, lo que convierte la anonimización de titulares en procedimiento estándar de de-biasing antes de generar vistas (Cambridge University Press & Assessment) .

EXPANDE

Ejemplo trabajado: de respuestas repetidas a una vista \((q_i, \omega_i)\)

Supón que para el activo ACME el pipeline del módulo devuelve estas cinco lecturas de retorno_esperado_anual (en producción son \(N = 100\) consultas; usamos cinco para poder verificar el cálculo a mano): [0.14, 0.10, 0.17, 0.11, 0.13].

Paso a paso:

  1. La vista es la media: \(q_i = (0{,}14 + 0{,}10 + 0{,}17 + 0{,}11 + 0{,}13)/5 = 0{,}13\), un 13% de retorno esperado.
  2. La incertidumbre es la varianza muestral (ddof=1): las desviaciones son \(0{,}01,\ -0{,}03,\ 0{,}04,\ -0{,}02,\ 0{,}00\); sus cuadrados suman \(0{,}0001 + 0{,}0009 + 0{,}0016 + 0{,}0004 + 0 = 0{,}0030\), y \(\omega_i = 0{,}0030/4 = 0{,}00075\) (una dispersión típica de ~2,7 p.p.).
  3. El factor prudencial: la sección 8.4 demuestra que la confianza lingüística no es una probabilidad tradable, así que la práctica institucional multiplica \(\omega_i\) por 2–5. Con 3: \(\omega_i^{prud} = 0{,}00225\).
muestra = [0.14, 0.10, 0.17, 0.11, 0.13]     # ilustración; producción: N = 100
q_i     = float(np.mean(muestra))            # 0.13
omega_i = float(np.var(muestra, ddof=1))     # 0.00075
omega_prudente = 3.0 * omega_i               # 0.00225

bl = BlackLittermanModel(
    S_lw,                                    # covarianza Ledoit-Wolf, como en el módulo
    pi="market_cap",
    absolute_views=pd.Series({"ACME": q_i}),
    omega=np.diag([omega_prudente]),         # diagonal = varianza de las consultas
    tau=0.025,
)

El contraste es la lección. Si las cinco respuestas hubieran sido idénticas, \(\omega_i \approx 0\) y Black-Litterman tomaría la vista casi como certeza: el posterior se pegaría a 0,13. Con la dispersión observada —e inflada por el factor prudencial—, \(\boldsymbol{\mu}_{BL}\) apenas se despega de \(\boldsymbol{\pi}\) para ese activo. Por eso la temperatura no se minimiza: la dispersión es el termómetro, y un LLM que «duda» produce vistas que el propio modelo degrada automáticamente. Y ojo al matiz: que el decodificador responda siempre lo mismo no prueba certeza, prueba determinismo del decodificador —una razón más para inflar \(\boldsymbol{\Omega}\).

8.4 Evidencia crítica sobre LLMs y predicción

8.4.1 Memorization, Alpha Illusion y la consecuencia para \(\boldsymbol{\Omega}\)

Cuatro resultados delimitan lo que un LLM puede aportar a la construcción de carteras.

Memorization Problem. Lopez-Lira, Tang y Zhu (2025) —el mismo primer autor del paper fundacional pro-predictibilidad, en una autocorrección notable de la comunidad— demuestran que los LLMs recuerdan con precisión de recuerdo los valores exactos de variables económicas anteriores a su cutoff (MAE de 0,03%–0,15% en paro, PIB y S&P 500; accuracy direccional superior al 96%), que ni las instrucciones explícitas de respetar fronteras temporales ni el enmascaramiento lo impiden, y que post-cutoff el recuerdo desaparece (arXiv.org) . Conclusión demoledora: no se puede distinguir si el LLM pronostica o accede a datos memorizados; todo backtest de vistas LLM dentro de la ventana de entrenamiento está contaminado.

Alpha Illusion y reproducibilidad. La auditoría "The Alpha Illusion" (2026) de FinCon, FinMem, TradingAgents, FinAgent, QuantAgent y FLAG-Trader concluye que el alpha reportado por agentes LLM end-to-end no debe tratarse como evidencia de despliegue: la evidencia pública actual no distingue capacidad predictiva robusta de contaminación temporal, fricciones no modeladas, incertidumbre de Sharpe en ventanas cortas, ajuste narrativo y priors paramétricos (Github) . La auditoría "Agentic Trading" (2026) protocoliza 77 estudios empíricos y reporta que cero cumplen los criterios completos de reproducibilidad (arXiv.org) ; "Profit Mirage" (2025) cuantifica cómo los retornos deslumbrantes se evaporan al terminar la ventana de conocimiento del modelo (arXiv.org) . El look-ahead es estructural en modelos de lenguaje pre-entrenados (Sarkar y Vafa 2024) (Github) .

Por qué los LLMs no baten a los factores sistemáticos. Los pocos trabajos con control factorial riguroso muestran que el "alpha" de sentimiento se reduce sustancialmente tras ajustar por Fama-French y costes; la supervivencia documentada corresponde a modelos especializados pequeños entrenados año a año (FinText, de Rahimikia y Drinkall), no a LLMs generalistas (metricgate.com) . Además, los "estilos" que exhiben los LLMs en el BL mejorado son exposiciones factoriales implícitas no declaradas: cuando el modelo "elige" small-caps o value, está replicando primas FF/Carhart conocidas sin atribución (Github) . El estándar de comparación honesto sigue siendo Gu, Kelly y Xiu (2020).

Implicación operativa para el pipeline de la sección 8.3. Las vistas LLM se tratan como señal débil con \(\boldsymbol{\Omega}\) alta, nunca como verdad: (i) evaluar solo post-cutoff o con benchmarks vivos; (ii) anonimizar titulares (anti-distracción); (iii) inflar \(\boldsymbol{\Omega}\) con factor prudencial; (iv) validar el sistema completo con DSR > 0,95 y PBO; (v) atribuir el resultado contra factores FF5/Carhart antes de reclamar alpha.

Tabla 8.2 — Evidencia crítica sobre LLMs en predicción financiera

Paper Hallazgo Sesgo documentado
Lopez-Lira & Tang (2023, arXiv 2304.07619) Scores GPT-4 post-cutoff predicen reacción inicial (~90% hit rate portfolio-day, no tradable) y drift; Sharpe long-short 3,8 (v4) → 3,28 (v5) Sin costes; números cambian entre versiones; decaimiento con la adopción
Glasserman & Lin (2023, arXiv 2309.17322) Titulares anonimizados rinden mejor in-sample: la distracción domina al look-ahead Distraction effect, sobre todo en large caps
Kim, Lee et al. (2025, arXiv 2504.14345) Vistas LLM (media de 100 consultas, varianza → \(\boldsymbol{\Omega}\)) baten baselines; cada LLM es un "estilo" dependiente del régimen Estilos = exposiciones factoriales implícitas; ventana corta
Lopez-Lira, Tang & Zhu (2025, arXiv 2504.14765) Recuerdo exacto pre-cutoff (>96% accuracy direccional; MAE 0,03–0,15%); cero recuerdo post-cutoff Memorization: forecasting indistinguible de recuerdo
The Alpha Illusion (2026, arXiv 2605.16895) El alpha de agentes end-to-end no es evidencia de despliegue; "la confianza lingüística no es probabilidad tradable" Contaminación temporal, fricciones omitidas, Sharpe de ventana corta
Agentic Trading (2026) / Profit Mirage (2025, arXiv 2510.07920) 0 de 77 estudios plenamente reproducibles; los retornos se evaporan tras el cutoff Leakage paramétrico; irreproducibilidad sistémica

Interpretación. La tabla no contradice la sección 8.3: la acota. La primera fila muestra que la señal de sentimiento es real en el sentido econométrico estrecho —correlación score-retorno post-cutoff—, pero su titular cuantitativo es inestable (el propio Sharpe se revisa a la baja entre versiones del paper) y se arbitra con la adopción. Las filas segunda y tercera explican cómo extraer esa señal sin autoengaño: anonimizar para neutralizar la distracción, y usar la dispersión de consultas repetidas como medida honesta de incertidumbre. Las tres últimas filas son el cortafuegos institucional: si el LLM puede estar recordando en lugar de razonando, si el 96% de accuracy pre-cutoff es memorización, y si ningún estudio end-to-end sobrevive a una auditoría de reproducibilidad completa, entonces ninguna vista LLM merece una \(\boldsymbol{\Omega}\) pequeña. La arquitectura resultante —LLM como interfaz de información auditable aguas arriba, motor BL/ERC/HRP determinista aguas abajo, humano con veto y traza— no es timidez: es la única posición compatible simultáneamente con la evidencia empírica y con la responsabilidad regulatoria indelegable.

EXPANDE

En palabras llanas: \(\boldsymbol{\Omega}\) es el pomo del volumen del testigo

Black-Litterman es, en el fondo, un juicio con dos testimonios: el del mercado (el prior de equilibrio \(\boldsymbol{\pi}\), que resume dónde están puestos los miles de millones) y el del analista (la vista \(\mathbf{q}\)). El posterior \(\boldsymbol{\mu}_{BL}\) no «cree» a ninguno de los dos: hace una media ponderada por la fiabilidad de cada testigo. \(\boldsymbol{\Omega}\) es el pomo del volumen del segundo. Con \(\Omega\) baja, el analista grita y el posterior se desplaza hasta su posición; con \(\Omega\) alta, susurra y el posterior apenas se despega de \(\boldsymbol{\pi}\).

Toda la sección 8.4 es el argumento de por qué el LLM se ha ganado el derecho a hablar, pero no a gritar: puede estar recordando (Memorization Problem), distrayéndose con el nombre de la empresa (distraction effect de Glasserman-Lin), o exhibiendo un «estilo» que son primas factoriales FF/Carhart sin declarar. La consecuencia práctica —vistas LLM con \(\Omega\) alta, inflada además por un factor prudencial de 2–5— no es desconfianza gratuita: es la traducción matemática exacta de «esta señal es real pero débil».

EXPANDE

Trampa común: el backtest que el LLM ya había leído

El error más caro de esta década en quant research: evaluar vistas LLM sobre cualquier periodo anterior al cutoff de entrenamiento del modelo. El Memorization Problem (Tabla 8.2) documenta recuerdo exacto de valores económicos pre-cutoff con accuracy direccional superior al 96% —ni las instrucciones explícitas ni el enmascaramiento lo impiden—, de modo que un «backtest» de 2022 con un modelo entrenado hasta 2024 no mide predicción: mide memoria con formato de backtest. Y la contaminación es indetectable inspeccionando el código, porque vive en los pesos del modelo.

El protocolo mínimo que el módulo fija para que una evaluación de vistas LLM signifique algo:

  • Solo post-cutoff o con benchmarks vivos que se regeneran: los datos del test no pueden existir en el pre-entrenamiento.
  • Titulares anonimizados, sin nombre de empresa ni sector, para neutralizar el distraction effect.
  • Atribución factorial: el «alpha» se reporta neto de FF5/Carhart; si el estilo era value encubierto, se dice.
  • Validación estadística completa: DSR > 0,95 y PBO, porque un Sharpe alto en ventana corta es el formato favorito de la suerte.

Si falta cualquiera de los cuatro, el número no es evidencia de despliegue: es narrativa.

Ejercicios

  1. GMV con cvxpy. Con los cuatro activos sintéticos del módulo (\(\boldsymbol{\mu} = (0{,}06, 0{,}09, 0{,}12, 0{,}15)\), correlaciones dadas), resuelva la GMV long-only con cota del 40% por activo usando cvxpy. Verifique numéricamente la fórmula cerrada \(\mathbf{w}_{\text{GMV}} = \boldsymbol{\Sigma}^{-1}\mathbf{1}/(\mathbf{1}^\top\boldsymbol{\Sigma}^{-1}\mathbf{1})\) sin restricciones y compare. Repita con la covarianza encogida de Ledoit-Wolf (\(\delta^* = 0{,}45\)) y cuantifique el cambio en \(\sigma_{\text{GMV}}\).

  2. Black-Litterman con vistas LLM simuladas. Partiendo de \(\boldsymbol{\pi} = \delta\boldsymbol{\Sigma}\mathbf{w}_m\) con \(\delta = 2{,}5\), simule dos vistas absolutas "de LLM": \(\mathbf{q} = (0{,}18, 0{,}02)\) sobre los activos 3 y 4, con \(\omega_1 = 0{,}001\) (vista confiada) y \(\omega_2 = 0{,}05\) (vista débil). Calcule \(\boldsymbol{\mu}_{BL}\) con ambas formas del posterior y compruebe que coinciden a máquina. Duplique después ambas \(\omega\) y explique, con las fórmulas, por qué el posterior se retrae hacia \(\boldsymbol{\pi}\).

  3. Kelly fraccionado. Una estrategia tiene \(p = 0{,}55\), \(b = 1\). (a) Calcule \(f^*\) con la fórmula discreta. (b) Represente \(G(f)\) y marque \(f^*\), half-Kelly y quarter-Kelly. (c) Simule 1{,}000 trayectorias de 252 apuestas para \(c \in \{1, 1/2, 1/4\}\) y compare crecimiento mediano, volatilidad y máximo drawdown. ¿Por qué la práctica institucional elige \(c \leq 1/2\) aunque el crecimiento esperado sea menor?

  4. HRP frente a GMV. Con una matriz de correlación de 8 activos con dos clusters fuertes (correlación intra-cluster 0,7, inter-cluster 0,1), implemente la bisección recursiva de HRP (distancia \(\sqrt{(1-\rho)/2}\), linkage Ward) y compare los pesos y la varianza fuera de muestra simulada frente a GMV con covarianza muestral. Repita con 60 observaciones por activo para exacerbar el mal condicionamiento de \(\hat{\boldsymbol{\Sigma}}\) y explique el resultado.

  5. Sensibilidad y defensas. Perturbe cada componente de \(\hat{\boldsymbol{\mu}}\) en \(\pm 1\) p.p. (16 configuraciones) y registre el rango de variación de los pesos tangente sin restricciones. Repita con (a) restricciones long-only + cota 25% y (b) \(\boldsymbol{\mu}\) shrinkageado al 50% hacia \(\mu_{\text{GMV}}\). Relacione la reducción de sensibilidad con el teorema de Jagannathan-Ma.

  6. Validación crítica. Tome el Sharpe de backtest del ejercicio 4, asuma \(T = 36\) meses, \(\hat{\gamma}_3 = -0{,}5\), \(\hat{\gamma}_4 = 4\) y \(N = 20\) trials con \(V_{SR} = 0{,}25\), y calcule el DSR. ¿Supera el umbral 0,95? Enumere qué sesgos de la Tabla 8.2 podrían estar presentes si las "vistas" hubieran sido generadas por un LLM con cutoff posterior al inicio del backtest.


Módulo 8 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.


EXPANDE

Recursos de élite para seguir profundizando

CHECK

Comprueba lo aprendido

Autoevaluación con feedback inmediato. No se guarda ninguna puntuación: es solo para ti.