Modern portföy teorisi

Python ile Portföy Analizine Giriş

Charlotte Werger

Data Scientist

En iyi portföyleri oluşturma

Yatırım stratejisi simgesi

Python ile Portföy Analizine Giriş

Portföy Optimizasyonu nedir?

Harry Markowitz ile tanış

Harry Markowitz

Python ile Portföy Analizine Giriş

Optimizasyon problemi: en iyi ağırlıkları bulma

$$ Markowitz'in optimizasyon problemi

Sözle:

  • Portföy varyansını minimize et; koşullar:
  • Beklenen ortalama getiri, bir hedef getiriden en az bu kadar yüksek
  • Ağırlıkların toplamı %100
  • En az bazı ağırlıklar pozitif
Python ile Portföy Analizine Giriş

Hedef getiriyi değiştirmek Etkin Sınır'ı verir

Etkin sınır grafiği

Python ile Portföy Analizine Giriş

Portföy optimizasyonu için PyPortfolioOpt

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
# Beklenen yıllıklaştırılmış getiriyi ve örnek kovaryansı hesapla
mu = expected_returns.mean_historical_return(df)
Sigma = risk_models.sample_cov(df)
Python ile Portföy Analizine Giriş

Etkin Sınır'ı ve portföy ağırlıklarını al

# Beklenen yıllıklaştırılmış getiriyi ve riski hesapla
mu = expected_returns.mean_historical_return(df)
Sigma = risk_models.sample_cov(df)
# EfficientFrontier'ı elde et
ef = EfficientFrontier(mu, Sigma)
# Seçili en iyi portföyü belirle
ef.max_sharpe()
Python ile Portföy Analizine Giriş

Farklı optimizasyonlar

# Maksimum Sharpe portföyünü seç
ef.max_sharpe()
# Hedef risk için en iyi getiriyi seç 
ef.efficient_risk(2.3)
# Hedef getiri için en düşük riski seç
ef.efficient_return(1.5)
Python ile Portföy Analizine Giriş

Portföy riski ve performansını hesapla

# Performans metriklerini elde et
ef.portfolio_performance(verbose=True, risk_free_rate = 0.01)
Beklenen yıllık getiri: %21.3
Yıllık oynaklık: %19.5
Sharpe Oranı: 0.98
Python ile Portföy Analizine Giriş

Hadi bir portföy optimize edelim!

Python ile Portföy Analizine Giriş

Preparing Video For Download...