개발환경 셋팅하기는 이전 포스팅을 참고해주세요!
이번 포스팅은 코스피, 코스닥의 상장 주식을 모두 가져오는 방법을 알아보겠습니다.
개발환경은 jupyter notebook을 사용했습니다.
이번 시간에는 모든 상장 주식 종목을 가져오는 방법을 알아보겠습니다. 더불어 ETF와 ETN 종목은 제외하고 가져와 보겠습니다.
0. 로그인 하기 및 함수 알아보기
우선 로그인을 해놓습니다.
그 다음 관련 함수는 아래 사진을 참고합니다.
개발 가이드를 열어보면 종목정보관련 함수의 GetCodeListByMarket 함수를 사용하면 원하는 시장에 해당하는 모든 종목코드를 가지고 올 수 있습니다.
1. 코스피 & 코스닥 상장 종목 가져오기
상장공시시스템(KIND)에 접속하여 글 작성 시점인 24년 5월 27일 국내 상장 주식 수를 조회할 수 있습니다.
먼저 유가증권시장은 코스피를 이야기 합니다. 코스피 총 종목 수는 952개로 나와있습니다.
그런데 kospi 종목 코드의 길이를 보니 2198개의 원소가 있습니다.
그 이유는 코스피를 조회할 때 코스피(952개) + ETF(862개) + ETN(381개) + ELW(3개)를 더하면 2198이 나오게 됩니다.
이들 종목을 조회할 이유가 없다면 리스트에서 제외시켜야 합니다.
코스닥 종목 수도 무언가 이상합니다. 불필요한 종목들을 하나 둘 제외하도록 하겠습니다.
2. 불필요한 종목들 제외하기
ETF나 ETN 등 불필요한 종목을 제외해보겠습니다.
2-1. 코스피, 코스닥, ETF 불러오기
2-2. ETF 종목 제외하기
2-3. ETN, ELW 등 나머지 제외하기
저도 이런 종목 구분 시장 구분에 대해서 잘은 모르지만 종목 코드가 6자리 중 첫 번째 자리가 5, 6, 7로 시작하는 종목 코드들은 일반 기업의 상장 주식이 아니라 다른 부분의 종목이였던 것 같습니다.
때문에 종목 코드가 5나 6이나 7로 시작하는 종목들도 제외하도록 하겠습니다.
2684개로 2675개에 거의 근접했습니다. 다음 시간에 주식 종목 명을 가져와서 하나의 표로 만드는 방법과 신규 상장 및 상장 폐지에 대비하여 종목 리스트를 업데이트 하는 방법도 알아보겠습니다.
끝으로 오늘 사용한 코드입니다.
from pykiwoom.kiwoom import *
"""로그인"""
main = Kiwoom()
main.CommConnect(block=True)
"""코스피 상장 종목"""
kospi = main.GetCodeListByMarket('0')
"""코스닥 상장 종목"""
kosdaq = main.GetCodeListByMarket('10')
"""ETF"""
etf = main.GetCodeListByMarket('8')
korea = kospi + kosdaq
for i in range(len(etf)):
if etf[i] in korea:
del korea[korea.index(etf[i])]
print(len(korea))
temp = []
for i in range(len(korea)):
if korea[i][0] != '5' and korea[i][0] != '6' and korea[i][0] != '7':
temp.append(korea[i])
korea = temp
print(len(korea))
'프로그래밍 > 파이썬 키움증권' 카테고리의 다른 글
[파이썬 주식투자] 키움증권 OPEN API 사용법3 (KOA StudioSA 사용방법 / 종목 정보 불러오는 방법 / TR 목록 사용방법 / TRcode 사용방법) (0) | 2024.05.11 |
---|---|
[파이썬 주식투자] 키움증권 OPEN API 사용법2(개발환경 셋팅하기 2탄) (0) | 2024.05.11 |
[파이썬 주식투자] 키움증권 OPEN API 사용법1(개발환경 셋팅하기) (3) | 2024.05.10 |
댓글