GIL's LAB

FinanceDataReader를 이용한 전체 주식 데이터 수집 본문

퀀트 투자/데이터 수집

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

앞으로 실험 데이터는 위 주가 데이터를 사용하겠습니다.

 

 

수집하고 싶은 금융 데이터나 실험하고 싶은 퀀트 관련 아이디어가 있으면 댓글로 남겨주세요! 
관련 포스팅을 준비하도록 하겠습니다!

 

Comments