σμ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 AcademyFeuilles de routeParcours
Ctrl K
AO
+1,2 k apprenants
ConnexionRejoindre ↗
Feuilles de routeParcours
AO
+1,2 k apprenants
Connexion
  • 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 AcademyFeuilles de routeParcours
Ctrl K
AO
+1,2 k apprenants
ConnexionRejoindre ↗
Feuilles de routeParcours
AO
+1,2 k apprenants
Connexion
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Parcours scikit-learn›Module 4 · Structure et compréhension›Sujet 4.4·~1 h 40 minAvancé

Projet final : un modèle de rendements en coupe transversale évalué honnêtement

Position dans le parcoursModule 4 sur 4 · Sujet 4 sur 4
4.4 Projet final : un modèle de rendements en coupe transversale évalué honnêtement
—Score du lab— / 100XP total—Série—

Construire le pipeline honnête

Dans ce projet de synthèse vous construisez un modèle mensuel d'actions des prix bruts jusqu'au verdict, et chaque étape est choisie pour ne pas vous tromper vous-même. Vous transformez des clôtures quotidiennes en prix de fin de mois, construisez trois variables qui n'utilisent que le passé (momentum, rendement du dernier mois et volatilité) et une étiquette qui regarde trois mois en avant, puis standardisez variables et étiquettes à l'intérieur de chaque mois pour que le modèle apprenne à classer les actions et non à timer le marché. Ensuite vous découpez le temps en plis walk-forward avec purge et embargo, ajustez un modèle Ridge de scikit-learn sur le passé de chaque pli, notez chaque mois de test par le coefficient d'information, et enfin mélangez une variable à la fois pour voir laquelle le modèle utilise vraiment.

ICₜ=ρ(rank(pₜ), rank(yₜ)), train: j<a-H-e, Iⱼ=IC-ICⱼ
Ce que disent les vraies donnéesSur les 54 actions à historique complet, depuis 2000, un modèle mensuel avec une étiquette à 3 mois et un embargo de 3 mois est testé sur 257 mois en 10 blocs walk-forward. Le coefficient d'information moyen est 0,033 avec une statistique t de 2,45, et 56% des mois sont positifs. Mélanger la volatilité à l'intérieur de chaque mois de test supprime tout le signal (importance 0,033), alors que mélanger le momentum ou le rendement du dernier mois ne change rien (environ -0,003). Le modèle repose sur une seule variable. Une forêt aléatoire sur le même panel obtient 0,102 dans l'échantillon et -0,008 en tests walk-forward, et la pénalité ridge ne compte pas : l'IC vaut 0,033 pour tout α de 0,01 à 10⁴. Retirer l'embargo change l'IC de 0,0001, car les étiquettes à trois mois ne se chevauchent que peu.
  • Classer au sein de chaque mois : standardisez variables et étiquettes dans le mois pour que le modèle classe les actions.
  • Purge, embargo, puis note : ajuster sur le seul passé de chaque pli et noter chaque mois de test par son IC.
  • Demandez ce que le modèle a utilisé : un test de permutation montre si le signal tient à une variable ou à plusieurs.
Simplifications à retenirL'échantillon ne contient que de grandes entreprises ayant survécu à toute la période : il a un biais de survie et son signal peut être surévalué. Il n'y a ni coûts de transaction, ni construction de portefeuille, et un seul modèle linéaire. Un IC de 0,033 est un résultat statistique et non une stratégie, et qu'une seule variable le porte entièrement appelle à la prudence.

Lab : ce qui est noté

  • Prix de fin de mois10 pts
  • Le panel de variables et d'étiquettes20 pts
  • Standardiser dans chaque mois10 pts
  • Recentrer l'étiquette5 pts
  • Plis walk-forward avec purge15 pts
  • La corrélation de rang d'un mois5 pts
  • Noter un modèle Ridge mois par mois15 pts
  • Quelle variable le modèle utilise-t-il10 pts
  • L'étude complète10 pts
Explorateur · lab-sl-12
▾ lab-sl-12
▾ data
…
bash · dans le navigateur
learner@quantcraft:~/lab-sl-12$
Python pas encore chargéPythonLn 1, Col 1Spaces: 4UTF-8

Réinitialiser ce sujet ?

Tout le contenu de lab-sl-12 revient aux fichiers de départ et le terminal est vidé. Votre solution actuelle sera perdue : cette action est irréversible.

Sera réinitialisé
  • main.py → code de départ
  • Historique du terminal et sortie des tests
  • Modifications non soumises
Sera conservé
  • Meilleur score du lab
  • Votre XP et votre série
  • Progression du cours et notes

Connectez-vous pour exécuter votre code.

Tous les cours sont gratuits à lire. Créez un compte ou connectez-vous pour exécuter du code, lancer les tests et soumettre ce lab.

  • IDE dans le navigateur avec terminal bash — rien à installer
  • Correction instantanée, XP et votre place dans le parcours
Créer un compteSe connecter
OU
Continuer avec GitHub