[시스템 트레이딩] 종목 코드 얻기
사이보스플러스를 이용합니다. 기본 프로그램들을 모두 설치한 후에 CpUtil.CpCodeMgr
를 이용하여 종목 코드들을 얻을 수 있습니다.
야후 파이넨스를 사용하려다가 안되서, 사이보스를 활용하였습니다.
아래 코드는 윈도우에서만 실행이 가능합니다.
결과 파일은 ..\\data\\kospi.csv
로 저장됩니다.
결과 파일의 내용은 아래와 같습니다.
A001525,동양우
A023350,한국종합기술
A018670,SK가스
...
전체 코드
import win32com.client
import re
class StockCodes:
def savecodes(self):
instCpCodeMgr = win32com.client.Dispatch("CpUtil.CpCodeMgr")
codeList = instCpCodeMgr.GetStockListByMarket(1)
kospi = {}
for code in codeList:
name = instCpCodeMgr.CodeToName(code)
kospi[code] = name
f = open('..\\data\\kospi.csv', 'w')
for key, value in kospi.items():
if self.is_unable_read_code(key, value) == True: continue
f.write("%s,%s\n" % (key, value))
f.close()
def is_unable_read_code(self, code, name):
pattern = r'^KOSPI|KODEX|SMART|ARIRANG|KBSTAR|TIGER|KINDEX|KOSEF|대신B\d{3}'
if re.match(pattern, name): return True
if re.match(r'\d+호$', name): return True
if re.match(r'^Q', code): return True
return None
if __name__ == "__main__":
stockcode = StockCodes()
stockcode.savecodes()
댓글