파이썬을 이용해서 주식 또는 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
a = pdr.get_data_yahoo('DIA', start='2004-01-04')
b = 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
'파이썬(Python) > 파이썬으로 투자실험' 카테고리의 다른 글
파이썬으로 변동성 돌파 백테스트 (1) | 2024.01.29 |
---|---|
원-달러 환율과 KOSPI 지수 상관관계 분석 (11) | 2023.02.06 |
KOSPI 와 환율 비교(With python) (0) | 2022.11.09 |
미국 장단기 금리차와 KOSPI 지수 비교 (With Python) (0) | 2022.11.06 |
파이썬으로 주식(ETF) 간 상관관계 구하기(회귀 분석) (0) | 2021.01.02 |
댓글