2017년 2월 24일 금요일

[시스템 트레이딩] 종목 코드 얻기

[시스템 트레이딩] 종목 코드 얻기

사이보스플러스를 이용합니다. 기본 프로그램들을 모두 설치한 후에 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()

댓글 없음:

댓글 쓰기

[시스템 트레이딩] 종목 코드 얻기

[시스템 트레이딩] 종목 코드 얻기 사이보스플러스를 이용합니다. 기본 프로그램들을 모두 설치한 후에 CpUtil.CpCodeMgr 를 이용하여 종목 코드들을 얻을 수 있습니다. 야후 파이넨스를 사용하려다가 안되서, 사이보스를 활용하였습니다. 아래...