퀀트 투자/데이터 수집
FinanceDataReader를 이용한 전체 주식 데이터 수집
GIL~
2021. 12. 16. 17:20
이번 포스팅에서는 이전 포스팅에서 소개한 내용을 확장하여, 전체 주식 데이터를 수집해보겠습니다.
종목 정의
종목은 한국 종목 전체로 하되, 데이터를 모을 수 없는 종목은 제외하겠습니다.
# 종목 목록 가져오기
stock_list = fdr.StockListing('KRX')
# 선물/옵션 종목 제거 (해당 데이터는 수집 불가)
stock_list = stock_list.loc[stock_list['Name'].str[-1] == "콜" & stock_list['Sector'].isnull()]
stock_list = stock_list.loc[stock_list['Name'].str[-1] == "풋" & stock_list['Sector'].isnull()]
데이터 수집
특별히 기간을 입력하지 않고 전체 기간의 데이터를 수집하겠습니다.
# 전 종목 순회 및 데이터 저장
import FinanceDataReader as fdr
import time
for code, name in stock_list[['Symbol', "Name"]].values:
print(code, name)
while True:
try:
data = fdr.DataReader(code)
data.to_csv("../../데이터/주가데이터/{}.csv".format(name.replace('/', '-')))
time.sleep(1)
break # 정상적으로 데이터 저장까지 완료되면 반복문에서 빠져나감
except ValueError:
break # 관련 데이터가 없으면 빠져나옴
except:
time.sleep(10 * 60) # 연결이 끊어지면 10분 재움
데이터 다운로드
파일 크기 때문에 직접 업로드는 어렵고, 제가 수집한 데이터는 아래 깃허브에서 확인할 수 있습니다.
https://github.com/GilseungAhn/finance_data
앞으로 실험 데이터는 위 주가 데이터를 사용하겠습니다.
수집하고 싶은 금융 데이터나 실험하고 싶은 퀀트 관련 아이디어가 있으면 댓글로 남겨주세요!
관련 포스팅을 준비하도록 하겠습니다!
![](https://t1.daumcdn.net/keditor/emoticon/niniz/large/038.gif)