Teori portofolio modern

Pengantar Analisis Portofolio dengan Python

Charlotte Werger

Data Scientist

Membuat portofolio optimal

Ikon strategi investasi

Pengantar Analisis Portofolio dengan Python

Apa itu Optimasi Portofolio?

Kenali Harry Markowitz

Harry Markowitz

Pengantar Analisis Portofolio dengan Python

Masalah optimasi: mencari bobot optimal

$$ Masalah optimasi Markowitz

Secara verbal:

  • Minimalkan varians portofolio, dengan syarat:
  • Ekspektasi imbal hasil minimal sebesar target tertentu
  • Jumlah bobot = 100%
  • Setidaknya beberapa bobot bernilai positif
Pengantar Analisis Portofolio dengan Python

Target imbal hasil yang bervariasi membentuk Efficient Frontier

Grafik efficient frontier

Pengantar Analisis Portofolio dengan Python

PyPortfolioOpt untuk optimasi portofolio

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
# Hitung ekspektasi imbal hasil tahunan dan kovarians sampel
mu = expected_returns.mean_historical_return(df)
Sigma = risk_models.sample_cov(df)
Pengantar Analisis Portofolio dengan Python

Dapatkan Efficient Frontier dan bobot portofolio

# Hitung ekspektasi imbal hasil tahunan dan risiko
mu = expected_returns.mean_historical_return(df)
Sigma = risk_models.sample_cov(df)
# Dapatkan EfficientFrontier
ef = EfficientFrontier(mu, Sigma)
# Pilih portofolio optimal tertentu
ef.max_sharpe()
Pengantar Analisis Portofolio dengan Python

Optimasi yang berbeda

# Pilih portofolio Sharpe maksimum
ef.max_sharpe()
# Pilih imbal hasil optimal untuk target risiko 
ef.efficient_risk(2.3)
# Pilih risiko minimal untuk target imbal hasil
ef.efficient_return(1.5)
Pengantar Analisis Portofolio dengan Python

Hitung risiko dan kinerja portofolio

# Dapatkan metrik kinerja
ef.portfolio_performance(verbose=True, risk_free_rate = 0.01)
Ekspektasi imbal hasil tahunan: 21.3%
Volatilitas tahunan: 19.5%
Rasio Sharpe: 0.98
Pengantar Analisis Portofolio dengan Python

Mari optimalkan portofolio!

Pengantar Analisis Portofolio dengan Python

Preparing Video For Download...