σμ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 SciPy›Module 3 · Matrices, signaux et structure›Sujet 3.2·~55 minIntermédiaire

Monte Carlo corrélé avec Cholesky et VaR

Position dans le parcoursModule 3 sur 3 · Sujet 2 sur 10
3.2 Monte Carlo corrélé avec Cholesky et VaR
—Score du lab— / 100XP total—Série—

Du bruit indépendant aux actifs corrélés

Un générateur de nombres aléatoires donne des tirages indépendants. Les actifs sont corrélés, donc simuler un portefeuille demande des tirages ayant la bonne matrice de covariance Σ. La factorisation de Cholesky trouve une matrice triangulaire inférieure L avec LLᵀ=Σ ; si alors z est un vecteur de normales standard indépendantes, Lz a exactement la covariance L I Lᵀ=Σ. Avec NumPy les tirages arrivent en lignes, donc on calcule z @ L.T pour un tableau z de forme (n, d). scipy.linalg.cholesky(cov, lower=True) fait la factorisation et lève une erreur si la matrice n'est pas définie positive, ce qui est utile : c'est l'alarme qui signale un problème dans votre matrice de covariance. Initialisez le générateur avec np.random.default_rng(seed) et l'expérience est reproductible.

Avec le simulateur, on calcule des chiffres de risque. Le rendement simulé du portefeuille pour chaque tirage est draws @ w, et la valeur en risque à un jour au niveau α est moins le quantile d'ordre α de ces rendements (np.quantile). Pour des tirages normaux, elle doit concorder avec la formule variance–covariance -(wᵀμ+z_α√(wᵀΣw)), et pour douze actifs c'est le cas : 2,07% par simulation et 2,08% par la formule, contre 2,33% par l'historique, car les rendements réels ont des queues plus épaisses que tout modèle normal. Les matrices de covariance estimées peuvent aussi échouer : si l'on fixe la corrélation de deux actifs à un impossible 1,2, la plus petite valeur propre devient négative (environ -6×10⁻⁵) et Cholesky refuse la matrice. La réparation standard utilise scipy.linalg.eigh : remonter toute valeur propre sous un petit plancher jusqu'au plancher, reconstruire la matrice et la symétriser. Le résultat est défini positif et ne diffère de l'original que d'environ 3×10⁻⁵.

  • Cholesky transforme le bruit en corrélation : z @ L.T a pour covariance cov quand cov = L @ L.T.
  • Simulation et formule doivent concorder pour des tirages normaux : l'écart avec l'historique est le coût des queues épaisses.
  • Une factorisation qui échoue est une information : réparez une matrice non définie positive en relevant ses petites valeurs propres négatives.

Lab : ce qui est noté

  • Le facteur de Cholesky10 pts
  • Tirages corrélés20 pts
  • Valeur en risque Monte Carlo25 pts
  • La valeur en risque paramétrique15 pts
  • Réparer une matrice de covariance15 pts
  • L'étude des douze actifs15 pts
Explorateur · lab-sp-19
▾ lab-sp-19
▾ data
…
bash · dans le navigateur
learner@quantcraft:~/lab-sp-19$
Python pas encore chargéPythonLn 1, Col 1Spaces: 4UTF-8

Réinitialiser ce sujet ?

Tout le contenu de lab-sp-19 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