Le projet doit être réalisé en VBA sous forme de formulaires. Tous les calculs doivent être réalisés en VBA et non dans des cellules Excel. Seuls les graphiques pourront être présentés dans des feuilles Excel. Projet : L’objectif de ce projet est de comparer différents modèles stochastiques de valorisation d’option Call Vanilla en VBA. ▪ 𝑆0 désigne le prix initial de l’option ▪ 𝜇 désigne la tendance du sous-jacent ▪ 𝜎 désigne la volatilité du sous-jacent ▪ 𝐾 désigne le Strike de l’option ▪ 𝑇 désigne la maturité de l’option ▪ 𝑟 désigne le taux sans risque ▪ 𝑑𝑊𝑡~𝑁(0,1) Le pay off d’une option Call Vanilla est : [𝑆𝑇 − 𝐾]+ Le prix d’une option Call Vanilla est : 𝑒−𝑟.𝑇.𝐸⟦[𝑆𝑇 − 𝐾]+ ⟧ 1) Créez une fonction BlackScholes(𝑺𝟎,𝑲,𝝁,𝝈,𝑻,𝒓) donnant le prix d’une option Call Vanilla selon le modèle de Black- Scholes. Aide : Rappel du modèle de Black-Scholes pour une option Call Vanilla : ▪ 𝑑𝑆𝑡 = 𝜇.𝑆𝑡.𝑑𝑡 + 𝜎.𝑆𝑡.𝑑𝑊𝑡 ▪ 𝐶(𝑆0,𝐾,𝑟,𝑡,𝜎) = 𝑆0.𝒩(𝑑1) − 𝐾.𝑒−𝑟.𝑇.𝒩(𝑑2) ▪ 𝒩(𝑥) = ∫ 1 √2.𝜋 𝑥 −∞ .𝐸𝑥𝑝(− 1 2 𝑢2).𝑑𝑢 ▪ 𝑑1 = 1 𝜎.√𝑇 [𝑙𝑛( 𝑆0 𝐾 ) + (𝑟 + 𝜎2 2 ).𝑇] ▪ 𝑑2 = 𝑑1 − 𝜎.√𝑇 Nous allons maintenant valoriser l’option Call Vanilla sous des modèles alternatifs par la méthode de Monté Carlo. On considère : ▪ 𝑁 le nombre de périodes simulées entre 𝑡0 et 𝑇 ▪ ℎ = 𝑡𝑖+1 − 𝑡𝑖 = 𝑇 𝑁 le pas de temps entre deux prix simulés ▪ 𝑁′ nombre de séries de prix simulées ▪ 𝜆 nombre moyen d’occurrences d’évènements exceptionnels ▪ 𝜅 intensité de l’impact des évènements exceptionnels ▪ 𝑑𝑃𝑡~𝑃(𝜆) 2) Créez une fonction Normal(𝑵, 𝑵′) générant une matrice de 𝑁 lignes et 𝑁′ colonnes contenant que des variables aléatoires suivant la loi Normale de moyenne nulle et de volatilité 1. Aide : Vous pouvez utiliser la fonction Application.WorksheetFunction.NormInv(X, 0, 1) 3) On suppose que je prix du sous-jacent suivent dorénavant un mouvement brownien arithmétique. 𝑑𝑆𝑡 = 𝜇.𝑑𝑡 + 𝜎.𝑑𝑊𝑡 Faites un fonction PrixArithmetique(𝑺𝟎,𝝁,𝝈,𝑾) produisant la série de prix du sous-jacent pour chaque pas ℎ à partir d’un vecteur du valeurs aléatoires 𝑾 Attention, if faut interdire les prix négatifs en figeant le prix a 0 dès qu’il atteint la limite 0. 4) Faites une fonction PayOffMCArithmetiques(𝑺𝟎,𝑲,𝑵,𝑵′,𝑻,𝝁,𝝈) donnant le Pay Off moyen du Call Vanilla sur 𝑁′ simulations en utilisant la fonction Normal(𝑵, 𝑵′) et la fonction PrixArithmetique(𝑺𝟎,𝝁,𝝈, 𝑾). 5) Créez une fonction Poisson(𝑵, 𝑵′, 𝝀) générant une matrice de 𝑁 lignes et 𝑁′ colonnes contenant que des variables aléatoires suivant la loi de Poisson. Aide : Vous pouvez créer des valeurs aléatoires suivant une loi de poisson avec l’algorithme suivante: 𝑦 ← 0,𝑔 ← 1 Loop : 𝑥𝑦~𝒰(0,1) 𝑔 ← 𝑔 ∗ 𝑥𝑦 If (𝑔 > 𝑒−𝜆 ): 𝑦 ← 𝑦 + 1 Else: 𝑟𝑒𝑡𝑢𝑟𝑛 𝑦 6) On suppose que je prix du sous-jacent suivent dorénavant un processus à saut. 𝑑𝑆𝑡 = 𝜇.𝑑𝑡 + 𝜎.𝑑𝑊𝑡 + 𝜅.𝑑𝑃𝑡 Faites une fonction PrixSaut(𝑺𝟎,𝝁,𝝈 , 𝜿,𝑾,𝑷) produisant la série de prix du sous-jacent pour chaque pas ℎ à partir d’un vecteur de valeurs aléatoires 𝑾 et d’un vecteur de valeurs aléatoires 𝑷. Attention, if faut interdire les prix négatifs en figeant le prix a 0 dès qu’il atteint la limite 0. 7) Faites une fonction PayOffMCSaut(𝑺𝟎,𝑲,𝑵,𝑵′,𝑻,𝝁,𝝈,𝜿,𝝀) donnant le Pay Off moyen du Call Vanilla sur 𝑁′ simulations en utilisant la fonction Normal(𝑵, 𝑵′), la fonction Poisson(𝑵, 𝑵′, 𝝀) et la fonction PrixSaut(𝑺𝟎,𝝁,𝝈 , 𝜿,𝑾,𝑷). [4/4] 8) Faites une fonction PriceCallVanilla(𝑺𝟎,𝑲,𝑵, 𝑵′,𝑻,𝒓,𝝁,𝝈 , 𝜿) affichant les prix du Call Vanilla selon les trois modèles précédents en utilisant les fonctions BlackScholes(𝑺𝟎,𝑲,𝝁,𝝈,𝑻,𝒓), PayOffMCArithmetiques(𝑺𝟎,𝑲,𝑵,𝑵′,𝑻,𝝁,𝝈) et PayOffMCSaut(𝑺𝟎,𝑲,𝑵,𝑵′,𝑻,𝝁,𝝈,𝜿,𝝀). Attention, dans la fonction PayOffCallVanilla, on ajustera les paramètres d’entré 𝝁 et 𝝈 par la périodicité appliquée aux fonctions : BlackScholes(𝑺𝟎,𝑲,𝝁/𝟐𝟓𝟐, 𝝈 √𝟐𝟓𝟐,𝑻,𝒓) PayOffMCArithmtiques(𝑺𝟎,𝑲,𝑵,𝑵′,𝑻, 𝝁.ℎ/𝟐𝟓𝟐, 𝝈.√𝒉/√𝟐𝟓𝟐 ) PayOffMCSaut(𝑺𝟎,𝑲,𝑵,𝑵′,𝑻,𝝁.ℎ/𝟐𝟓𝟐, 𝝈.√𝒉 /√𝟐𝟓𝟐 , 𝜿,𝟏 − (𝟏 − 𝝀)𝒉/𝟐𝟓𝟐) 9) Réalisez un formulaire permettant à l’utilisateur d’insérer les paramètres de l’option Call Vanilla. Un bouton permettra d’afficher les prix de l’option Call Vanilla selon les différents modèles. Les paramètres par défaut seront les suivant : ▪ 𝑺𝟎 = 𝟏𝟎𝟎 ▪ 𝑲 = 𝟏𝟏𝟎 ▪ 𝑻 = 𝟓𝟎𝟎 ▪ 𝑵 = 𝟓𝟎 ▪ 𝑵′ = 𝟓𝟎 ▪ 𝒓 = 𝟐% ▪ 𝝁 = 𝟏𝟎% ▪ 𝝈 = 𝟏𝟓% ▪ 𝝀 = 𝟓% ▪ 𝜿 = −𝟐𝟎% 10) Dans une seconde fenêtre, faites afficher un graphique de convergence des Pay Off pour les différents modèles en fonction des paramètres définis dans le formulaire. *
Commentaire de l' administrateur :
- Le client est:
- Le client affirme souhaiter concrétiser son projet:
- Objectif du projet:
- Details du projet:
- Technologie utilisée ou conseillée:
- Logiciel utilisé ou conseillé:
- Estimation du budget par jour appliqué:
- Type de mission:
- Estimation du délai de réalisation:
*
Commentaire de l' administrateur :
- Le client est:
- Le client affirme souhaiter concrétiser son projet:
- Objectif du projet:
- Details du projet:
- Technologie utilisée ou conseillée:
- Logiciel utilisé ou conseillé:
- Estimation du budget par jour appliqué:
- Type de mission:
- Estimation du délai de réalisation: