Introduction à la gestion du risque de portefeuille en Python
Dakota Wixom
Quantitative Analyst | QuantCourse.com

Le plus souvent, en finance, les marches aléatoires sont plus simples qu'en physique :

Supposons que vous avez un objet StockReturns, une série chronologique de rendements boursiers.
Pour simuler une marche aléatoire :
mu = np.mean(StockReturns)
std = np.std(StockReturns)
T = 252
S0 = 10
rand_rets = np.random.normal(mu, std, T) + 1
forecasted_values = S0 * (rand_rets.cumprod())
forecasted_values
array([ 9.71274884, 9.72536923, 10.03605425 ... ])
Série de simulations de Monte Carlo pour un seul actif partant d'un prix de l'action de 10 $ à T0. Prévision sur 1 an (252 jours de bourse sur l'axe des x) :

Pour calculer la VaR(95) de 100 simulations de Monte Carlo :
mu = 0.0005
vol = 0.001
T = 252
sim_returns = []
for i in range(100):
rand_rets = np.random.normal(mu, vol, T)
sim_returns.append(rand_rets)
var_95 = np.percentile(sim_returns, 5)
var_95
-0.028
Introduction à la gestion du risque de portefeuille en Python