σμ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 scikit-learn›Módulo 4 · Estructura y comprensión›Tema 4.4·~1 h 40 minAvanzado

Proyecto final: un modelo transversal de rendimientos evaluado con honestidad

Posición en la rutaMódulo 4 de 4 · Tema 4 de 4
4.4 Proyecto final: un modelo transversal de rendimientos evaluado con honestidad
—Puntuación del lab— / 100XP total—Racha—

Construir el flujo honesto

En este proyecto final construye un modelo mensual de acciones desde los precios brutos hasta el veredicto, y cada paso se elige para no engañarse a sí mismo. Convierte cierres diarios en precios de fin de mes, construye tres variables que solo usan el pasado (momento, rendimiento del último mes y volatilidad) y una etiqueta que mira tres meses adelante, y estandariza variables y etiquetas dentro de cada mes para que el modelo aprenda a ordenar acciones y no a cronometrar el mercado. Luego corta el tiempo en pliegues walk-forward con purga y embargo, ajusta un modelo Ridge de scikit-learn con el pasado de cada pliegue, puntúa cada mes de prueba con el coeficiente de información y por último mezcla una variable cada vez para ver cuál usa de verdad el modelo.

ICₜ=ρ(rank(pₜ), rank(yₜ)), train: j<a-H-e, Iⱼ=IC-ICⱼ
Qué dicen los datos realesEn las 54 acciones con historial completo, desde 2000, un modelo mensual con etiqueta a 3 meses y un embargo de 3 meses se prueba en 257 meses en 10 bloques walk-forward. El coeficiente de información medio es 0,033 con un estadístico t de 2,45, y el 56% de los meses es positivo. Mezclar la volatilidad dentro de cada mes de prueba elimina toda la señal (importancia 0,033), mientras que mezclar el momento o el rendimiento del último mes no cambia nada (cerca de -0,003). El modelo descansa en una sola variable. Un bosque aleatorio sobre el mismo panel puntúa 0,102 dentro de muestra y -0,008 en pruebas walk-forward, y la penalización ridge no importa: el IC es 0,033 para todo α de 0,01 a 10⁴. Quitar el embargo cambia el IC en 0,0001, porque las etiquetas a tres meses se solapan poco.
  • Ordenar dentro de cada mes: estandarice variables y etiquetas dentro del mes para que el modelo ordene acciones.
  • Purga, embargo y luego puntuación: ajustar solo con el pasado de cada pliegue y puntuar cada mes de prueba por su IC.
  • Pregunte qué usó el modelo: una prueba de permutación muestra si la señal es una variable o varias.
Simplificaciones que recordarLa muestra solo contiene grandes empresas que sobrevivieron todo el período, así que tiene sesgo de supervivencia y su señal puede estar sobrestimada. No hay costes de operación, ni construcción de cartera, y solo un modelo lineal. Un IC de 0,033 es un resultado estadístico y no una estrategia, y que una sola variable lo lleve entero es motivo de cautela.

Lab: qué se califica

  • Precios de fin de mes10 pts
  • El panel de variables y etiquetas20 pts
  • Estandarizar dentro de cada mes10 pts
  • Centrar la etiqueta5 pts
  • Pliegues walk-forward con purga15 pts
  • La correlación de rangos de un mes5 pts
  • Puntuar un modelo Ridge mes a mes15 pts
  • Qué variable usa el modelo10 pts
  • El estudio completo10 pts
Explorador · lab-sl-12
▾ lab-sl-12
▾ data
…
bash · en el navegador
learner@quantcraft:~/lab-sl-12$
Python aún no cargadoPythonLn 1, Col 1Spaces: 4UTF-8

¿Restablecer este tema?

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