σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft AcademyHojas de rutaRutas
Ctrl K
AO
+1,2 k estudiantes
Iniciar sesiónUnirse ↗
Hojas de rutaRutas
AO
+1,2 k estudiantes
Iniciar sesión
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft AcademyHojas de rutaRutas
Ctrl K
AO
+1,2 k estudiantes
Iniciar sesiónUnirse ↗
Hojas de rutaRutas
AO
+1,2 k estudiantes
Iniciar sesión
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Ruta de Matrix Decompositions›Módulo 5 · Factores y carteras›Tema 5.2·~1 h 40 minAvanzado

Proyecto final: una covarianza depurada para mínima varianza

Posición en la rutaMódulo 5 de 5 · Tema 2 de 2
5.2 Proyecto final: una covarianza depurada para mínima varianza
—Puntuación del lab— / 100XP total—Racha—

¿Compensa depurar la matriz?

La cartera de mínima varianza toma una matriz de covarianza Σ y devuelve los pesos totalmente invertidos de menor varianza, w=Σ⁻¹ 1 / ( 1ᵀΣ⁻¹ 1). Parece matemática pura, pero es la prueba más afilada de un estimador de covarianza, porque aprovecha cada error de la matriz. Este proyecto final somete toda la habilidad a esa prueba. Se estima Σ con los últimos 63 días de negociación, se construye la cartera, se mantiene los 21 días siguientes, se avanza y se mide la volatilidad de la cartera que realmente se habría tenido. Compiten tres estimadores: la covarianza muestral simple, la de valores propios recortados y la contraída de Ledoit-Wolf.

w=(Σ⁻¹ 1)/(1ᵀΣ⁻¹ 1), Σ^(*)=δμI+(1-δ)S, δ=(min(b̄²,d²))/d², λ₊=(1+√(N/T))²

No invierta nunca la matriz: resuelva el sistema lineal Σ x= 1 y divida por la suma, que es más rápido y preciso. La parte honesta es el calendario. Los pesos de un bloque de días solo pueden usar los días anteriores, y el resultado es la volatilidad de los rendimientos fuera de muestra unidos, no la varianza que prometió el optimizador. Para el recorte se trabaja con la matriz de correlación, se sustituyen por su media los valores propios que no superan λ₊, se reconstruye, se reescala la diagonal a 1 y se multiplica de nuevo por las volatilidades. Para la contracción se calcula la intensidad con la fórmula del archivo inicial, exactamente como en la lección anterior, con S dividida por T.

Qué dicen los datos realesPara doce grandes acciones estadounidenses desde 2010, con ventana de 63 días y pasos de 21 días (3680 días fuera de muestra), la cartera de mínima varianza construida con la covarianza muestral tiene una volatilidad anual de alrededor del 14,3 %. Con la matriz de valores propios recortados es de alrededor del 13,9 % y con Ledoit-Wolf del 13,7 %, así que gana la contracción, y una cartera equiponderada de las mismas acciones tiene alrededor del 18,4 %. La ganancia de depurar es de unos pocos puntos porcentuales de volatilidad con 12 activos; con cientos de activos es mucho mayor, porque entonces q=N/T está cerca de 1. Con ventanas más largas los tres estimadores se acercan, y con 126 días o más el recorte en el borde simple de Marchenko-Pastur es algo peor que la matriz muestral, un recordatorio de que hay que validar cada refinamiento fuera de muestra.
  • Pesos: resolver Σ x= 1 y dividir por la suma; nunca invertir la matriz.
  • Recorte y contracción: valores propios de ruido a su media; o mezcla con μI con una intensidad calculada.
  • Backtest: estimar con los últimos window días, mantener step días, avanzar y medir la volatilidad fuera de muestra unida.
El sentido de toda la habilidadUna matriz de covarianza es una estimación, no un hecho, y quienes la usan, sobre todo los optimizadores, son los que encuentran sus errores. Los valores propios y la SVD dicen dónde vive la información de una matriz, el borde de Marchenko-Pastur y la intensidad de contracción dicen cuánto fiarse de ella, y solo una prueba en días no vistos dice si su reparación funcionó. Conserve los tres hábitos.

Lab: qué se califica

  • Recorte de valores propios25 pts
  • Contracción de Ledoit-Wolf25 pts
  • Pesos de mínima varianza10 pts
  • Un backtest móvil20 pts
  • Comparar los estimadores20 pts
Explorador · lab-md-12
▾ lab-md-12
▾ data
…
bash · en el navegador
learner@quantcraft:~/lab-md-12$
Python aún no cargadoPythonLn 1, Col 1Spaces: 4UTF-8

¿Restablecer este tema?

Todo lo que hay en lab-md-12 vuelve a los archivos iniciales y se limpia el terminal. Tu solución actual se perderá: no se puede deshacer.

Se restablecerá
  • main.py → código inicial
  • Historial del terminal y salida de pruebas
  • Cambios sin enviar
Se conservará
  • Mejor puntuación del lab
  • Tu XP y tu racha
  • Progreso de la lección y notas

Inicia sesión para ejecutar tu código.

Todas las clases se pueden leer gratis. Crea una cuenta o inicia sesión para ejecutar código, lanzar las pruebas y enviar este lab.

  • IDE en el navegador con terminal bash — sin instalar nada
  • Corrección instantánea, XP y tu lugar en la ruta
Crear una cuentaIniciar sesión
O
Continuar con GitHub