본문 바로가기
Programming/Code Archive

[파이썬Python] 한국과 미국주식 종목코드와 종목명, 업종(섹터)추출하기

by 지표덕후 2021. 7. 27.

 

요즘 구글 스프레드시트(Google Spreadsheet)
앱시트(App Sheet) 활용해서
주식투자에 도움이 될 만한 툴을 만드는 데 재미가 들렸습니다.

조금 구체적으로 어떤 툴이냐면,
포트폴리오의 현재 상황(보유 중인 주식)에 대해서만 평가를 하는 것이 아니라
이전에 사고 팔았던 이력과 미래에 실현될 배당금 등의 가치까지 고려해
포트폴리오별 성적을 조망할 수 있는, 이를테면 주식투자 대시보드입니다.

저는 늘 데이터 시각화와 데이터 정리에 관심이 많았던지라
구글 스프레드시트와 앱시트로 하고 있는 이 작업이 무척 재미있습니다.
게다가 구글 스프레드시트에 탑재된 GOOGLEFINANCE 함수는 작업을 무척 쉽게 만들어주는데요,
이 함수 활용하면 아래와 같은 툴도 구현할 수 있습니다.

Google Spreadsheet의 googleFinance 함수와 종목명 종목코드 VLOOKUP의 조합 

 

위에 보다시피 종목명을 입력하면 주가와 밸류에이션 지표를 반환해주는데,
사실 구글파이낸스 함수가 주가나 지표 같은 주식 정보를 반환하기 위해 KEY로 받는 것은
'종목코드'입니다. 미국 주식의 경우 TICKER 혹은 SYMBOL이라 불리는 코드이고요.

저 같은 일반 투자자 입장에서는 종목코드보다는 '종목명'으로 소통하는 게 훨씬 편하기 때문에
툴을 만들 때도 종목코드 대신 종목명을 KEY로 받아서 함수가 작동하도록 구현했습니다.
그러려면 종목명과 종목코드가 매핑된 참조 테이블이 있어야 하는데요.
이번 포스팅에서는 그걸 확보할 수 있는 방법을 기록해두려 합니다.


파이썬(Python)FinanceDataReader 패키지를 활용하는 방법입니다.
누가 만드셨는지 정말 감사합니다. 그랜절 받으십시오.
(아래는 그랜절 받으셔야 할 선생님의 GitHub입니다. 관심있는 분들 둘러보세요.)

https://github.com/FinanceData/FinanceDataReader

 

GitHub - FinanceData/FinanceDataReader: Financial data reader

Financial data reader. Contribute to FinanceData/FinanceDataReader development by creating an account on GitHub.

github.com

 


01 패키지 설치


터미널에서 "pip install finace-datareader'를 입력.
패키지가 설치됩니다.


02 StockListing 함수로 한국과 미국증시 종목정보 추출


종목코드를 추출하기 위해서는 StockListing 함수를 활용합니다.
함수는 한국과 미국증시 코드를 파라미터로 받습니다.
한국은 KRX(한국거래소 전체), KOSPI(코스피), KOSDAQ(코스닥), KONEX(코넥스),
미국은 NASDAQ(나스닥), NYSE(뉴욕증시), AMEX(아멕스), SP500(S&P500)을 입력하면 됩니다.

먼저, 한국증시

import FinanceDataReader as fdr

# KRX 종목 전체
KRX_list = fdr.StockListing("KRX")

# CSV로 출력
KRX_list.to_csv('KRX_list_20210727.csv', encoding="cp949") # 한글 정상 출력을 위해 encoding 방식은 "cp949"

 

결과는 아래와 같이 나옵니다.
종목코드증시 종류, 종목명, 섹터, 업종 등의 정보가 들어있습니다.

Symbol Market Name Sector Industry ListingDate SettleMonth Representative HomePage Region
60310 KOSDAQ 3S 특수 목적용 기계 제조업 반도체 웨이퍼 캐리어 2002-04-23 3월 박대현 http://www.3sref.com 서울특별시
... ... ... ... ... ... ... ... ... ...
5930 KOSPI 삼성전자 통신 및 방송 장비 제조업 IMT2000 서비스용 동기식 기지국,교환국장비,데이터단말기,동영상휴대폰,핵심칩,반도체제품,사무,계산 및 회계용기계 1975-06-11 12월 김기남, 김현석, 고동진 http://www.sec.co.kr 경기도

 

다음 미국증시.
결과는 생략합니다. 한국증시 테이블에 비해 반환되는 컬럼이 덜 다양하긴 하지만,
기본적으로 종목코드(ticker 혹은 symbol이라 불리는 그것)와 종목명, 업종은 제공되고 있습니다.

# 미국증시 종목
# "NASDAQ", "NYSE", "AMEX", "SP500"
# colNames: Symbol, Name, Industry(한글), IndustryCode
NASDAQ_list = fdr.StockListing("NASDAQ")
NASDAQ_list.to_csv('NASDAQ_list_20210727.csv', encoding="cp949")

# colNames: Symbol, Name, Industry(한글), IndustryCode
NYSE_list = fdr.StockListing("NYSE")
NYSE_list.to_csv('NYSE_list_20210727.csv', encoding="cp949")

# colNames: Symbol, Name, Industry(한글), IndustryCode
AMEX_list = fdr.StockListing("AMEX")
AMEX_list.to_csv('AMEX_list_20210727.csv', encoding="cp949")

# colNames: Symbol	Name, Sector, Industry - 모두 영문
SP500_list = fdr.StockListing("SP500")
SP500_list.to_csv('SP500_list_20210727.csv')

 

퀀트나 주식투자 관련 코딩을 하시는 분이라면
상장주식들의 종목코드를 자유자재로 불러다 쓸 수 있다는 게 얼마나 유용한지 아실 겁니다.

댓글