반응형
FinanceDataReader를 이용해서 주가를 확인하고 CAGR을 계산해보겠습니다.
FinanceDataReader의 설치 및 기본 사용법이 필요하신 분은 1번 참조 부탁드립니다.
1. FinanceDataReader 설치 및 주가정보확인(Skip가능)
2. 주가 확인 및 CAGR계산
1. FinanceDataReader 설치(Skip가능)
2. 주가 확인 및 CAGR계산
필요 라이브러리 import 하고 거래소 전체 회사 리스트를 저장합니다.
import FinanceDataReader as fdr
df_list=fdr.StockListing('KRX')
삼성전자의 주가를 2010-01-01 ~ 2022-10-30까지 불러옵니다.
name='삼성전자'
df_filter=df_list.loc[df_list['Name']==name]
code=df_filter['Code'].values[0]
startdate='2010-01-01'
enddate='2022-10-30'
df_result=fdr.DataReader(code,startdate,enddate)
df_result
일별 누적수익률을 계산해보겠습니다.
2022-10-28일 기준으로 258%의 누적수익률이 확인이 됩니다.(매수기준은 2009-12-30 Close : 15980)
df_result['누적수익률']=((df_result['Change'] + 1).cumprod()-1)
df_result['누적수익률(%)']=df_result['누적수익률']*100
df_result['누적수익률(%)']
CAGR을 계산해 볼까요
wikipedia의 계산식 정의는 아래와 같습니다.
CAGR = (마지막날주가/시작날주가) ^ (1/경과년도) - 1
인데
(마지막날주가/시작날주가) = (df_result['누적수익률'] +1)의 마지막 날 데이터와 같습니다.
코드로 확인해보겠습니다.
cagr_result=df_result['누적수익률']+1
경과년도=(cagr_result.index[-1]-cagr_result.index[0]).days / 365
cagr = cagr_result.iloc[-1] ** (1/경과년도) -1
print('CAGR은 ' + str(cagr * 100) + '% 입니다.')
그래프로 누적수익률 변화를 살펴볼까요
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style("whitegrid")
plt.rc('font', family='NanumGothic')
sns.lineplot(data=df_result,x=df_result.index,y='누적수익률(%)')
plt.title('삼성전자 2010년~2022년의 누적수익률')
plt.show()
이상으로 FinanceDataReader를 이용해서 주가를 확인하고 CAGR을 계산해봤습니다.
반응형
'API' 카테고리의 다른 글
[공공데이터_data API] 1++ 한우 경매가 월별 트렌드 확인 (4) | 2022.11.12 |
---|---|
[FinanceDataReader] 검색년도 CAGR(연평균 성장률) 상위 회사확인 (4) | 2022.11.10 |
[전자공시 Dart API] 전체 상장 회사의 재무제표(단일회사 전체 재무제표) 수집 (4) | 2022.11.07 |
[전자공시 Dart API] 전체 상장 회사의 상세정보(기업개황) 수집 및 저장 (19) | 2022.11.07 |
[전자공시 Dart API] 유통주식 비율이 낮은 (자기주식 비율이 높은) 회사 리스트 (4) | 2022.11.06 |