현대 포트폴리오 이론

Python으로 배우는 포트폴리오 분석 입문

Charlotte Werger

Data Scientist

최적 포트폴리오 만들기

투자 전략 아이콘

Python으로 배우는 포트폴리오 분석 입문

포트폴리오 최적화란?

해리 마코위츠를 만나보세요

해리 마코위츠

Python으로 배우는 포트폴리오 분석 입문

최적화 문제: 최적 비중 찾기

$$ 마코위츠 최적화 문제

말로 하면:

  • 포트폴리오 분산을 최소화하되:
  • 기대수익은 목표수익 이상
  • 비중 합은 100%
  • 일부 비중은 양수
Python으로 배우는 포트폴리오 분석 입문

목표수익을 바꾸면 효율적 프런티어가 생깁니다

효율적 프런티어 그래프

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)
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()
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)
Python으로 배우는 포트폴리오 분석 입문

포트폴리오 위험과 성과 계산

# Obtain the performance numbers
ef.portfolio_performance(verbose=True, risk_free_rate = 0.01)
Expected annual return: 21.3%
Annual volatility: 19.5%
Sharpe Ratio: 0.98
Python으로 배우는 포트폴리오 분석 입문

포트폴리오를 최적화해 봅시다!

Python으로 배우는 포트폴리오 분석 입문

Preparing Video For Download...