σμ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 statsmodels›Módulo 2 · Modelos de series temporales›Tema 2.7·~55 minAvanzado

Un modelo de nivel local para una volatilidad ruidosa

Posición en la rutaMódulo 2 de 3 · Tema 7 de 9
2.7 Un modelo de nivel local para una volatilidad ruidosa
—Puntuación del lab— / 100XP total—Racha—

Un nivel oculto tras mediciones ruidosas

Un modelo de espacio de estados tiene un estado oculto que evoluciona en el tiempo y observaciones ruidosas de él. El más simple, el modelo de nivel local, es yₜ=μₜ+eₜ con eₜ (variance σ²ₑ), y μₜ=μₜ₋₁+hₜ con hₜ (variance σ²ₕ): el nivel μₜ es un paseo aleatorio y cada medición añade ruido independiente. UnobservedComponents(y, level='llevel').fit(disp=False) estima σ²ₑ (llamada sigma2.irregular) y σ²ₕ (sigma2.level) por máxima verosimilitud. La razón q=σ²ₕ/σ²ₑ es la relación señal-ruido: una q pequeña significa un nivel lento y mucho ruido que promediar. Para la log-volatilidad mensual de SPY en 258 meses, σ̂²ₑ=0,089 y σ̂²ₕ=0,045, así que q=0,50.

El filtro de Kalman estima el nivel en dos pasos cada mes: predecir μ̂_(t|t-1)=μ̂_(t-1|t-1) y corregir con la sorpresa, μ̂_(t|t)=μ̂_(t|t-1)+Kₜ (yₜ-μ̂_(t|t-1)). Tras un arranque la ganancia se estabiliza en K=P/(P+1) con P=1/2(q+√(q²+4q)), y entonces el filtro es exactamente una media móvil exponencial de peso K: aquí K=0,502, y pd.Series(y).ewm(alpha=K, adjust=False).mean() reproduce el nivel filtrado con error de 7×10⁻¹⁰. El mismo modelo es un ARIMA(0,1,1) con coeficiente de media móvil -(1-K)=-0,498: ambos tienen un AIC de 290,526. El nivel filtrado res.filtered_state[0] usa solo los datos hasta t. El nivel suavizado res.smoothed_state[0] usa toda la muestra: corte los datos en el mes 200 con los mismos parámetros y el nivel filtrado no cambia en absoluto, mientras que el suavizado se mueve 0,116. Un suavizador sirve para mirar atrás, nunca como señal. El pronóstico del nivel es plano en -2,09 y su intervalo del 95 % se ensancha de ±0,83 a ±1,61.

  • Ruido más nivel: la relación señal-ruido q fija cuánto mueve la estimación cada observación nueva.
  • El filtro es una EWMA y el modelo de nivel local es un ARIMA(0,1,1): tres nombres para una idea.
  • El filtrado usa el pasado, el suavizado el futuro: nunca opere sobre una serie suavizada.

Lab: qué se califica

  • El ajuste del nivel local10 pts
  • Las dos varianzas10 pts
  • Niveles filtrado y suavizado5 pts
  • La ganancia estacionaria15 pts
  • El filtro como EWMA15 pts
  • ¿Mira hacia delante?20 pts
  • Un ARIMA disfrazado10 pts
  • El estudio de la volatilidad15 pts
Explorador · lab-sx-18
▾ lab-sx-18
▾ data
…
bash · en el navegador
learner@quantcraft:~/lab-sx-18$
Python aún no cargadoPythonLn 1, Col 1Spaces: 4UTF-8

¿Restablecer este tema?

Todo lo que hay en lab-sx-18 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