σμ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 SciPy›Módulo 3 · Matrices, señales y estructura›Tema 3.2·~55 minIntermedio

Monte Carlo correlacionado con Cholesky y VaR

Posición en la rutaMódulo 3 de 3 · Tema 2 de 10
3.2 Monte Carlo correlacionado con Cholesky y VaR
—Puntuación del lab— / 100XP total—Racha—

Del ruido independiente a activos correlacionados

Un generador de números aleatorios da extracciones independientes. Los activos están correlacionados, así que simular una cartera exige extracciones con la matriz de covarianza correcta Σ. La factorización de Cholesky halla una matriz triangular inferior L con LLᵀ=Σ; entonces, si z es un vector de normales estándar independientes, Lz tiene exactamente la covarianza L I Lᵀ=Σ. En NumPy las extracciones llegan en filas, así que se calcula z @ L.T para un arreglo z de forma (n, d). scipy.linalg.cholesky(cov, lower=True) hace la factorización y lanza un error si la matriz no es definida positiva, lo cual es útil: es la alarma de que su matriz de covarianza tiene un problema. Inicialice el generador con np.random.default_rng(seed) y el experimento es repetible.

Con el simulador se calculan cifras de riesgo. El rendimiento simulado de la cartera de cada extracción es draws @ w, y el valor en riesgo a un día al nivel α es menos el cuantil α de esos rendimientos (np.quantile). Con extracciones normales debe coincidir con la fórmula varianza–covarianza -(wᵀμ+z_α√(wᵀΣw)), y con doce activos coincide: 2,07% por simulación y 2,08% por la fórmula, frente a 2,33% por historia, porque los rendimientos reales tienen colas más gruesas que cualquier modelo normal. Las matrices de covarianza estimadas también pueden fallar: si se fija la correlación de dos activos en un imposible 1,2, el menor valor propio se vuelve negativo (unos -6×10⁻⁵) y Cholesky rechaza la matriz. La reparación estándar usa scipy.linalg.eigh: subir al suelo todo valor propio por debajo de un pequeño suelo, reconstruir la matriz y simetrizarla. El resultado es definido positivo y difiere del original solo en unos 3×10⁻⁵.

  • Cholesky convierte ruido en correlación: z @ L.T tiene covarianza cov cuando cov = L @ L.T.
  • Simulación y fórmula deben coincidir con extracciones normales: la diferencia con la historia es el costo de las colas gruesas.
  • Una factorización fallida es información: repare una matriz no definida positiva subiendo sus valores propios pequeños o negativos.

Lab: qué se califica

  • El factor de Cholesky10 pts
  • Extracciones correlacionadas20 pts
  • Valor en riesgo Monte Carlo25 pts
  • El valor en riesgo paramétrico15 pts
  • Reparar una matriz de covarianza15 pts
  • El estudio de doce activos15 pts
Explorador · lab-sp-19
▾ lab-sp-19
▾ data
…
bash · en el navegador
learner@quantcraft:~/lab-sp-19$
Python aún no cargadoPythonLn 1, Col 1Spaces: 4UTF-8

¿Restablecer este tema?

Todo lo que hay en lab-sp-19 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