σμ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.9·~1 hAvanzado

Cointegración y la trampa de buscar pares

Posición en la rutaMódulo 2 de 3 · Tema 9 de 9
2.9 Cointegración y la trampa de buscar pares
—Puntuación del lab— / 100XP total—Racha—

Dos precios que se mantienen juntos y la trampa de buscar

Los log-precios aₜ y bₜ son cada uno no estacionarios, pero están cointegrados si alguna combinación sₜ=aₜ-βbₜ-α es estacionaria: ambos derivan juntos y el diferencial sₜ vuelve una y otra vez a cero. El ratio de cobertura sale de una regresión ordinaria de a sobre b con constante, sm.OLS(a, sm.add_constant(b)).fit(); su pendiente es β y su intercepto α. La rapidez de reversión del diferencial se mide con un AR(1): sₜ=c+φsₜ₋₁+uₜ. Con 0<φ<1 la vida media es -ln 2/lnφ periodos, el tiempo para cerrar la mitad de una brecha; φ cercano a 1 significa un paseo aleatorio y ninguna operación. La prueba de Engle-Granger, coint(a, b), contrasta la nula de raíz unitaria en el diferencial, así que un valor p pequeño es indicio de cointegración. Usa valores críticos especiales, porque el diferencial sale de una regresión y no es una serie ordinaria.

Ahora la búsqueda. Pruebe 66 pares al 5 % y unos 3 pasarán por puro azar; con precios persistentes la prueba es aún más generosa. Una corrección de Bonferroni divide el nivel por el número de pruebas, 0,05/66, y conserva solo los valores p muy pequeños. Aquí, en las primeras 669 observaciones semanales de 12 acciones, 13 de los 66 pares tienen p<0,05 y 2 sobreviven a Bonferroni, y los mejores no son económicamente naturales: un banco (WFC) con un fabricante de bebidas (PEP), p=0,0005. La comprobación honesta es fuera de muestra. Fije el ratio de cobertura en la primera mitad, forme el diferencial en la segunda mitad y pruebe de nuevo. Ninguno de los cinco mejores pares sigue cointegrado (valores p de 0,54 a 0,86) y el coeficiente AR(1) del diferencial posterior es 0,99: ya no revierte. Una estrategia nacida de una búsqueda necesita una corrección por la búsqueda y una prueba con datos que la búsqueda nunca vio.

  • Cointegración significa un diferencial estacionario a-βb-α; la nula de Engle-Granger es una raíz unitaria, así que p pequeño = cointegrado.
  • La vida media -ln 2/lnφ del coeficiente AR(1) dice cuánto tarda en cerrarse una brecha; φ≥1 significa nunca.
  • Busque, corrija y pruebe fuera de muestra: 66 pares encuentran ruido; Bonferroni ayuda; solo datos posteriores deciden.

Lab: qué se califica

  • El ratio de cobertura10 pts
  • El diferencial5 pts
  • El coeficiente AR(1)10 pts
  • La vida media10 pts
  • La prueba de Engle-Granger5 pts
  • Barrer todos los pares15 pts
  • Contar descubrimientos10 pts
  • Fuera de muestra15 pts
  • El estudio de los pares20 pts
Explorador · lab-sx-19
▾ lab-sx-19
▾ data
…
bash · en el navegador
learner@quantcraft:~/lab-sx-19$
Python aún no cargadoPythonLn 1, Col 1Spaces: 4UTF-8

¿Restablecer este tema?

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