Сучасна портфельна теорія

Вступ до Portfolio Analysis у Python

Charlotte Werger

Data Scientist

Створення оптимальних портфелів

Піктограма інвестиційної стратегії

Вступ до Portfolio Analysis у Python

Що таке оптимізація портфеля?

Знайомтесь: Гаррі Марковіц

Гаррі Марковіц

Вступ до Portfolio Analysis у Python

Задача оптимізації: знайти оптимальні ваги

$$ Задача оптимізації Марковіца

Словами:

  • Мінімізувати дисперсію портфеля за умови:
  • Очікувана середня дохідність не нижча за цільову
  • Суми ваг дорівнюють 100%
  • Принаймні частина ваг додатна
Вступ до Portfolio Analysis у Python

Зміна цільової дохідності дає ефективну межу

Графік ефективної межі

Вступ до Portfolio Analysis у Python

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
# Calculate expected annualized returns and sample covariance
mu = expected_returns.mean_historical_return(df)
Sigma = risk_models.sample_cov(df)
Вступ до Portfolio Analysis у Python

Отримайте ефективну межу та ваги портфеля

# Calculate expected annualized returns and risk
mu = expected_returns.mean_historical_return(df)
Sigma = risk_models.sample_cov(df)
# Obtain the EfficientFrontier
ef = EfficientFrontier(mu, Sigma)
# Select a chosen optimal portfolio
ef.max_sharpe()
Вступ до Portfolio Analysis у Python

Різні типи оптимізації

# Select the maximum Sharpe portfolio
ef.max_sharpe()
# Select an optimal return for a target risk 
ef.efficient_risk(2.3)
# Select a minimal risk for a target return
ef.efficient_return(1.5)
Вступ до Portfolio Analysis у Python

Обчислення ризику та результатів портфеля

# Obtain the performance numbers
ef.portfolio_performance(verbose=True, risk_free_rate = 0.01)
Очікувана річна дохідність: 21.3%
Річна волатильність: 19.5%
Коефіцієнт Шарпа: 0.98
Вступ до Portfolio Analysis у Python

Оптимізуймо портфель!

Вступ до Portfolio Analysis у Python

Preparing Video For Download...