본문 바로가기
문송충의 코딩하기/퀀트 투자 스터디

파이썬으로 포트폴리오 자산별 상관관계 구하기

by 동장군님 2022. 1. 14.
728x90
반응형

퀀트 투자를 위한 기초를 계속 쌓고 있는 중이다.

오늘은 올웨더 자산배분에 많이 활용되는 주요 ETF 자산들을 가져와서 자산별 상관관계를 구하도록 하겠다.

 

아래 코드와 같이 yfinance라는 야후 파이낸스 라이브러리를 활용하면 자산별 히스토리 가격을 쉽게 가져올 수 있다. 여기서는 2010년 이후 데이터를 가져오도록 하겠다.

import pandas as pd
import yfinance as yf
import matplotlib.pyplot as plt
import seaborn as sns

spy=yf.download('SPY',start = '2010-01-01')['Adj Close']
qqq=yf.download('QQQ',start='2010-01-01')['Adj Close']
vea=yf.download('VEA',start='2010-01-01')['Adj Close']
vwo=yf.download('VWO',start='2010-01-01')['Adj Close']
vnq=yf.download('VNQ',start='2010-01-01')['Adj Close']
dbc=yf.download('DBC',start='2010-01-01')['Adj Close']
iau=yf.download('IAU',start='2010-01-01')['Adj Close']
tlt=yf.download('TLT',start='2010-01-01')['Adj Close']
emlc=yf.download('EMLC',start='2010-01-01')['Adj Close']
vclt=yf.download('VCLT',start='2010-01-01')['Adj Close']

 

 

위에서 추출한 데이터를 가지고 상관관계를 구하면 아래와 같이 결과를 볼 수 있다.

df=pd.concat([spy,qqq,vea,vwo,vnq,dbc,iau,tlt,emlc,vclt],axis=1)
df.columns=['spy','qqq','vea','vwo','vnq','dbc','iau','tlt','emlc','vclt']
corr=df.corr()
corr

마지막으로는 시각화를 통해 자산별 상관관계를 더욱 뚜렷하게 한번 확인해보도록 하겠다. 원자재 ETF인 DBC가 전반적으로 모든 자산과 상관관계가 낮은 것으로 나타났다. 그리고 생각보다 채권도 은근히 주식형 자산과 상관관계가 높은 점을 볼 수 있다.

plt.rcParams['font.family']="Malgun Gothic"
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(20,10))
sns.heatmap(data=corr,annot=True, fmt='.2f', linewidths=.5, cmap='Blues')

 

728x90
반응형

댓글