Moderne portefeuilletheorie

Introductie tot portefeuille-analyse in Python

Charlotte Werger

Data Scientist

Optimale portefeuilles maken

Pictogram voor beleggingsstrategie

Introductie tot portefeuille-analyse in Python

Wat is portefeuille-optimalisatie?

Maak kennis met Harry Markowitz

Harry Markowitz

Introductie tot portefeuille-analyse in Python

Het optimalisatieprobleem: optimale gewichten vinden

$$ Optimalisatieprobleem van Markowitz

In woorden:

  • Minimaliseer de portefeuillevariantie, met als voorwaarden:
  • Het verwacht gemiddeld rendement is minimaal een doelrendement
  • De gewichten tellen op tot 100%
  • Minstens enkele gewichten zijn positief
Introductie tot portefeuille-analyse in Python

Variƫrende doelrendementen leveren de Efficient Frontier op

Grafiek van de Efficient Frontier

Introductie tot portefeuille-analyse in Python

PyPortfolioOpt voor portefeuille-optimalisatie

from pypfopt.efficient_frontier import EfficientFrontier
from pypfopt import risk_models
from pypfopt import expected_returns
df=pd.read_csv('portfolio.csv')
df.head(2)
                XOM        RRC        BBY         MA        PFE       
date
2010-01-04  54.068794  51.300568  32.524055  22.062426  13.940202 
2010-01-05  54.279907  51.993038  33.349487  21.997149  13.741367
# Verwachte jaarlijkse rendementen en steekproefcovariantie
mu = expected_returns.mean_historical_return(df)
Sigma = risk_models.sample_cov(df)
Introductie tot portefeuille-analyse in Python

Efficient Frontier en wegingen ophalen

# Verwacht jaarlijks rendement en risico
mu = expected_returns.mean_historical_return(df)
Sigma = risk_models.sample_cov(df)
# Haal de Efficient Frontier op
ef = EfficientFrontier(mu, Sigma)
# Kies een optimale portefeuille
ef.max_sharpe()
Introductie tot portefeuille-analyse in Python

Verschillende optimalisaties

# Kies de maximale Sharpe-portefeuille
ef.max_sharpe()
# Kies een doelrendement bij een doelrisico 
ef.efficient_risk(2.3)
# Kies minimaal risico bij een doelrendement
ef.efficient_return(1.5)
Introductie tot portefeuille-analyse in Python

Risico en prestaties van de portefeuille berekenen

# Bereken prestatiecijfers
ef.portfolio_performance(verbose=True, risk_free_rate = 0.01)
Verwacht jaarlijks rendement: 21,3%
Jaarlijkse volatiliteit: 19,5%
Sharpe-ratio: 0,98
Introductie tot portefeuille-analyse in Python

Laten we een portefeuille optimaliseren!

Introductie tot portefeuille-analyse in Python

Preparing Video For Download...