포트폴리오 수익률 계산하기
포트폴리오를 구성하고 백테스트하려면, 여러 자산의 수익률을 하나의 객체에서 다루는 데 익숙해져야 합니다.
이 연습 문제에서는 여러 자산의 수익률을 담고 모형 포트폴리오의 수익률을 계산하기 위해, 변수 StockReturns로 미리 저장된 pandas의 DataFrame 객체를 사용합니다.
모형 포트폴리오는 2017년 1월 직전에 세계 주요 기업 몇 곳에 대해 미리 정해진 가중치로 구성됩니다:
| Company Name | Ticker | Portfolio Weight |
|---|---|---|
| Apple | AAPL | 12% |
| Microsoft | MSFT | 15% |
| Exxon Mobil | XOM | 8% |
| Johnson & Johnson | JNJ | 5% |
| JP Morgan | JPM | 9% |
| Amazon | AMZN | 10% |
| General Electric | GE | 11% |
| FB | 14% | |
| AT&T | T | 16% |
대부분의 경우 포트폴리오 가중치의 합은 100%가 되어야 합니다
이 연습은 강의의 일부입니다
Python으로 시작하는 포트폴리오 리스크 관리
연습 안내
- 위 표의 값에 따라 모형
portfolio_weights의 numpy 배열을 완성하세요. .mul()메서드를 사용해StockReturns의 각 행에portfolio_weights를 곱해 가중 주식 수익률을 구하세요.- 그런 다음
WeightedReturns객체에서.sum()메서드를 행 방향으로 적용해 포트폴리오 수익률을 계산하세요. - 마지막으로, 시간에 따른 누적 수익률 그래프를 확인하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Finish defining the portfolio weights as a numpy array
portfolio_weights = np.array([0.12, 0.15, 0.08, 0.05, 0.09, 0.10, 0.11, ____, ____])
# Calculate the weighted stock returns
WeightedReturns = StockReturns.____(portfolio_weights, axis=____)
# Calculate the portfolio returns
StockReturns['Portfolio'] = WeightedReturns.____(axis=____)
# Plot the cumulative portfolio returns over time
CumulativeReturns = ((1+StockReturns["Portfolio"]).cumprod()-1)
CumulativeReturns.plot()
plt.show()