-
퀀트 프로젝트 | FinanceDataReader 코스피 코스닥 종목코드 불러오기Capital/Quant 2024. 3. 22. 18:00
1. 코스피 코스닥 종목코드 불러오기
지금까지 퀀트 전략을 공부했다면 이제 전략을 직접 구현해보자. 전략을 구현하기에 앞서 투자하고자 하는 주식 시장의 모든 상장 종목과 종목코드를 알아야 한다. 하지만 현재 어떤 종목이 상장되어 있는지, 상장 종목의 코드는 무엇인지 일일이 파악하기엔 시간이 아깝다. 게다가 어떤 종목이 새롭게 상장되었고, 어떤 종목이 상장폐지되었는지 뉴스를 매번 찾아보기엔 정보가 방대하다. 이번 프로젝트에서는 현재 코스피와 코스닥에 상장된 종목과 종목코드를 자동으로 불러오는 기능을 파이썬 코드로 구현해보자.
2. FinanceDataReader 라이브러리
KRX 정보데이터시스템 사이트에 접속하면 현재 주식시장에 상장되어 있는 종목들의 정보를 엑셀 파일로 다운로드 받을 수 있다. 하지만 상장 종목을 갱신하기 위해 매번 사이트에 접속하여 확인하자니 번거롭다. 사이트에 접속하지 않고 확인할 수 있는 방법은 없을까? FinanceDataReader 라이브러리는 웹상에서 크롤링한 각종 재무 데이터를 제공하는 오픈소스이다. 코스피, 코스닥과 같은 국내 주식 데이터 외에도 나스닥, S&P500 등의 미국 주식 데이터도 간단하게 불러올 수 있다. 해당 라이브러리는 아래 명령어를 명령 프롬프트에 입력하여 설치할 수 있으며, 아래 링크로 접속하면 FinanceDataReader 라이브러리에 대한 설명과 사용방법을 확인할 수 있다.
pip install finance-datareader
3. 프로젝트
# FinanceDataReader 라이브러리 추가 import FinanceDataReader as fdr # 한국 주식시장 상장종목 정보 수집 KRX_stock_list = fdr.StockListing('KRX') # 상장종목 중에서 코넥스 제외 KRX_stock_list = KRX_stock_list.loc[KRX_stock_list['Market'] != 'KONEX'] # 보통주 선별 (우선주 제외) count = 0 for i in range(0, len(KRX_stock_list)): if KRX_stock_list['Code'].values[i][-1] == '0': count += 1 if count == 1: temp = KRX_stock_list.iloc[[i]] else: temp = temp.merge(KRX_stock_list.iloc[[i]], how='outer') KRX_stock_list = temp # 종목코드 앞에 알파벳 A 추가 KRX_stock_list['Code'] = 'A'+ KRX_stock_list['Code'].str[0:6] # 종목정보 저장 KRX_stock_list.to_excel('KRX_stock_list.xlsx', index=False)
[함께 읽으면 좋은 페이지]
참고문헌
- GIL's LAB. (2022). 손에 잡히는 퀀트 투자 with 파이썬. 위키북스.- FinanceData. (2023). FinanceDataReader. GitHub. https://github.com/FinanceData/FinanceDataReader. 2024.01.03.
반응형'Capital > Quant' 카테고리의 다른 글
퀀트 프로젝트 | CompanyGuide 재무비율 ROA, ROE 크롤링 (0) 2024.04.05 퀀트 프로젝트 | CompanyGuide 재무제표 크롤링 (0) 2024.03.29 추세 지표(2): 정량 모멘텀 (0) 2024.03.15 추세 지표(1): 모멘텀 (1) 2024.02.16 수익성 지표(3): F-스코어 (1) 2024.02.09