파이썬을 이용해서 주식/ETF의 누적 수익률 비교하기
본문 바로가기
파이썬(Python)/파이썬으로 투자실험

파이썬을 이용해서 주식/ETF의 누적 수익률 비교하기

by 만초손겸수익 2021. 1. 5.

파이썬을 이용해서 주식 또는 ETF의 누적수익률을 비교해 보겠습니다.

 

pandas_datareader 와 yfinance를 이용해서 주식가격을 가져옵니다.

 

누적수익율을 구한 두 matplotlib으로 그래프를 그릴 예정입니다.

 

get_data_yahoo 함수를 사용해서 원하는 종목의 가격을 가져옵니다. 시작일은 지정하지 않으면 데이터가 시작하는 날짜부터 자동으로 가져오게 됩니다.

 

데이터프레임 형식으로 날짜, 시가, 종가, 조정가격등을 가져오게 됩니다.

 

가져온 데이터 중 종가 column 만 가져와서 지난 종가와 수익율을 구합니다.

 

[(오늘종가-어제종가)/어제종가] X 100 으로 각각의 수익율을 계산합니다.

 

shift 함수를 써서 한칸씩 앞으로 밀리게 하였으며, 밀리면서 자리가 빈 첫번째 행은 0을 입력하였습니다(a_dpc.iloc[0] = 0)

 

cumsum() 함수를 사용해서 누적수익율을 구합니다.

 

pyplot의 plot을 사용하여 그래프를 그립니다.

 

x값은 인덱스인 날짜를 입력하고, y값은 누적수익률을 입력합니다. 

 

그래프 중 하나는 파란색('b') 선으로 표시하고, 다른 하나는 빨간색 점선('r--')으로 표시합니다.

 

그리드는 보여지게 설정하고, 레전드는 가장 좋은 위치에 자동으로 위치하게 해서 그래프를 보여줍니다.

 

전체 코드는 아래와 같습니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from pandas_datareader import data as pdr
import yfinance as yf
yf.pdr_override()
import matplotlib.pyplot as plt
 
= pdr.get_data_yahoo('DIA', start='2004-01-04')
= pdr.get_data_yahoo('TLT', start='2004-01-04')
 
a_dpc = (a['Close']/a['Close'].shift(1- 1)*100
a_dpc.iloc[0= 0
 
b_dpc = (b['Close']/b['Close'].shift(1- 1)*100
b_dpc.iloc[0= 0
 
a_dpc_cs = a_dpc.cumsum()
b_dpc_cs = b_dpc.cumsum()
 
plt.plot(a.index, a_dpc_cs, 'b', label='DIA')
plt.plot(b.index, b_dpc_cs, 'r--', label='TLT')
plt.grid(True)
plt.legend(loc='best')
plt.show()
cs

 

 

실행을 하면 아래와 같이 그래프가 나타납니다.

 

 

 

 

728x90

댓글