Composition de portefeuille et backtesting

Introduction à la gestion du risque de portefeuille en Python

Dakota Wixom

Quantitative Analyst | QuantCourse.com

Calculer les rendements d'un portefeuille

Formule du rendement du portefeuille :

$$ R_p = R_{a_1} w_{a_1} + R_{a_2} w_{a_2} + ... + R_{a_n} w_{a_1} $$

  • $ R_p$ : rendement du portefeuille
  • $ R_{a_n}$ : rendement de l'actif n
  • $ w_{a_n}$ : poids de l'actif n
Introduction à la gestion du risque de portefeuille en Python

En supposant que StockReturns soit un DataFrame pandas de rendements, vous pouvez calculer le rendement du portefeuille pour un jeu de poids comme suit :

import numpy as np
portfolio_weights = np.array([0.25, 0.35, 0.10, 0.20, 0.10])
port_ret = StockReturns.mul(portfolio_weights, axis=1).sum(axis=1)
port_ret
Date
2017-01-03    0.008082
2017-01-04    0.000161
2017-01-05    0.003448
         ...
StockReturns["Portfolio"] = port_ret
Introduction à la gestion du risque de portefeuille en Python

Portefeuilles équipondérés en Python

En supposant que StockReturns soit un DataFrame pandas de rendements, vous pouvez calculer le rendement d'un portefeuille équipondéré comme suit :

import numpy as np
numstocks = 5
portfolio_weights_ew = np.repeat(1/numstocks, numstocks)
StockReturns.iloc[:,0:numstocks].mul(portfolio_weights_ew, axis=1).sum(axis=1)
Date
2017-01-03    0.008082
2017-01-04    0.000161
2017-01-05    0.003448
         ...
Introduction à la gestion du risque de portefeuille en Python

Tracer les rendements en Python

Pour tracer les rendements quotidiens en Python :

StockPrices["Returns"] = StockPrices["Adj Close"].pct_change()
StockReturns = StockPrices["Returns"]
StockReturns.plot()

Introduction à la gestion du risque de portefeuille en Python

Tracer les rendements cumulés

Pour tracer les rendements cumulés de plusieurs portefeuilles :

import matplotlib.pyplot as plt
CumulativeReturns = ((1 + StockReturns).cumprod() - 1)
CumulativeReturns[["Portfolio","Portfolio_EW"]].plot()

Introduction à la gestion du risque de portefeuille en Python

Capitalisation boursière

Introduction à la gestion du risque de portefeuille en Python

Capitalisation boursière

Capitalisation boursière : valeur des actions d'une société cotées en bourse.

Aussi appelée Market cap.

Introduction à la gestion du risque de portefeuille en Python

Portefeuilles pondérés par la capitalisation

Pour calculer le poids en capitalisation d'un titre n :

$$ w_{mcap_n} = \frac{mcap_n}{ \sum_{i=1}^n mcap_i } $$

Introduction à la gestion du risque de portefeuille en Python

Poids par capitalisation en Python

Pour calculer des poids de market cap en Python, en supposant que vous disposiez des capitalisations de chaque société :

import numpy as np
market_capitalizations = np.array([100, 200, 100, 100])
mcap_weights = market_capitalizations/sum(market_capitalizations)
mcap_weights
array([0.2, 0.4, 0.2, 0.2])
Introduction à la gestion du risque de portefeuille en Python

Passons à la pratique !

Introduction à la gestion du risque de portefeuille en Python

Preparing Video For Download...