σμ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 Particle filtering and non-stationary time series›Module 3 · Un marché qui change sans cesse›Sujet 3.3·~1 h 40 minAvancé

Projet final : suivre le bêta et la volatilité d'une action

Position dans le parcoursModule 3 sur 3 · Sujet 3 sur 3
3.3 Projet final : suivre le bêta et la volatilité d'une action
—Score du lab— / 100XP total—Série—

Suivre le bêta d'une action pendant qu'il bouge

Dans ce projet de synthèse vous construisez trois suiveurs du bêta d'Apple face à SPY et vous les comparez. Le modèle est un bêta en marche aléatoire : chaque jour le rendement de l'action est le bêta fois le rendement du marché plus un bruit, et le bêta lui-même dérive un peu. Le premier suiveur est une régression glissante sur les 60 derniers jours, une fenêtre dure. Le deuxième est un filtre de Kalman, la réponse exacte quand tout est en cloche. Le troisième est un filtre particulaire bootstrap que vous écrivez avec sa propre normalisation des poids, sa taille d'échantillon effective et son rééchantillonnage systématique. Un estimateur à pondération exponentielle suit la volatilité de ce que le marché n'explique pas.

βₜ=βₜ₋₁+wₜ, yₜ=βₜ mₜ+eₜ, K=(P⁻mₜ)/(P⁻mₜ²+r)
Ce que disent les vraies donnéesSur les 5 404 jours d'Apple et de SPY depuis 2005, le bêta sur tout l'échantillon vaut 1,07. Le dernier jour, la régression sur 60 jours donne 0,20, le filtre de Kalman 0,40 et le filtre particulaire à 500 particules 0,43. En prévoyant le rendement de chaque jour avec le bêta d'hier, les erreurs quadratiques moyennes valent 2,379×10⁻⁴ pour un bêta fixe, 2,378×10⁻⁴ pour le bêta glissant, 2,354×10⁻⁴ pour Kalman et 2,362×10⁻⁴ pour les particules. Suivre le bêta aide d'environ 1%, pas plus, car les rendements quotidiens sont surtout du bruit. Le filtre particulaire rééchantillonne sur 107 jours, et sa taille d'échantillon effective descend à environ 7 sur 500. La volatilité à pondération exponentielle des résidus est d'environ 32% par an en fin de données.
  • Même modèle, trois solveurs : une fenêtre dure, le filtre gaussien exact et un nuage de particules pondérées.
  • Hasard reproductible : les nombres aléatoires arrivent en arguments, donc les mêmes entrées donnent la même réponse.
  • Notation honnête : chaque méthode prévoit le rendement d'un jour avec le seul bêta d'hier.
Simplifications à retenirLe bêta est une marche aléatoire de pas fixe q=10⁻³ choisi à la main, et le bruit est traité comme normal de variance constante, ce qui ignore la concentration de volatilité. Le score utilise l'erreur quadratique d'une seule action sur un échantillon. Dans ce modèle linéaire gaussien, Kalman est exact : le filtre particulaire ne peut que l'égaler, et son avantage apparaît quand le bruit a des queues épaisses ou que la variance bouge.

Lab : ce qui est noté

  • Normalisation sûre5 pts
  • Taille d'échantillon effective5 pts
  • Rééchantillonnage systématique10 pts
  • Un bêta glissant10 pts
  • Volatilité à pondération exponentielle10 pts
  • Le filtre de Kalman15 pts
  • Le filtre particulaire bootstrap25 pts
  • L'étude du bêta20 pts
Explorateur · lab-pf-10
▾ lab-pf-10
▾ data
…
bash · dans le navigateur
learner@quantcraft:~/lab-pf-10$
Python pas encore chargéPythonLn 1, Col 1Spaces: 4UTF-8

Réinitialiser ce sujet ?

Tout le contenu de lab-pf-10 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