파이썬 자동매매 개발, 키움증권 API, 종목 코드 및 한글 종목명 가져오기

최근 금융 시장에서 알고리즘 거래는 점점 더 대중화되고 있습니다. 특히 많은 투자자들이 파이썬을 사용한 자동매매 시스템 개발에 관심을 가지고 있습니다. 본 강좌에서는 키움증권 API를 이용하여 종목 코드 및 한글 종목명을 가져오는 방법에 대해 자세히 설명하겠습니다.

1. 자동매매 시스템이란?

자동매매 시스템은 특정 알고리즘에 따라 주식 매매를 자동으로 실행하는 시스템입니다. 이 시스템은 고급 분석 도구와 자동화된 거래 기능을 결합하여 인간의 개입 없이 시장에서 거래를 수행할 수 있게 해줍니다. 파이썬은 이러한 시스템을 구축하는 데 매우 유용한 언어로, 다양한 라이브러리와 API를 지원합니다.

2. 키움증권 API 소개

키움증권 API는 키움증권 거래소에서 제공하는 자바 기반의 API로, 파이썬과 같은 다양한 언어에서 사용할 수 있도록 연동할 수 있습니다. 이 API를 통해 실시간 주식 정보를 조회하고, 매매 주문을 실행할 수 있습니다. 또한 특정 종목의 코드 및 이름을 조회할 수 있어 투자에 필요한 정보를 쉽게 얻을 수 있습니다.

2.1 키움증권 API 설치하기

키움증권 API를 사용하기 위해서는 먼저 키움증권 계좌를 개설하고, API를 신청해야 합니다. 계좌 개설 후, 키움증권의 홈페이지에서 API를 다운로드하여 설치합니다. 설치가 완료되면 이를 이용하여 파이썬에서 키움증권 API와 연동할 수 있습니다.

2.2 Python에서 키움 API 사용하기 위한 준비

파이썬에서 키움 API를 사용하기 위해서는 pyqt5comtypes 패키지를 설치해야 합니다. 이를 위해 아래의 명령어를 사용하여 패키지를 설치합니다.

pip install pyqt5 comtypes

3. 종목 코드 및 한글 종목명 가져오기

키움증권 API를 이용하여 종목 코드와 한글 종목명을 가져오는 과정은 다음과 같이 이루어집니다. 먼저 API와 연결한 후, 원하는 종목의 정보를 요청해야 합니다.

3.1 API와의 연결 설정

먼저 키움증권 API와의 연결을 설정하는 코드를 작성합니다. 아래의 예제 코드를 참고하여 설정합니다.


import sys
from PyQt5.QtWidgets import QApplication
from PyQt5.QtCore import pyqtSlot, QObject
import win32com.client

class KiwoomAPI(QObject):
    def __init__(self):
        super().__init__()
        self.kiwoom = win32com.client.Dispatch("KHOPENAPI.KHOpenAPICtrl.1")
        self.kiwoom.OnEventConnect.connect(self.connected)

    @pyqtSlot(int)
    def connected(self, err_code):
        print(f"Connected with error code: {err_code}")

if __name__ == "__main__":
    app = QApplication(sys.argv)
    kiwoom_api = KiwoomAPI()
    kiwoom_api.kiwoom.CommConnect()
    app.exec_()

3.2 종목 코드와 한글 종목명 가져오기

서버에 연결된 후, 종목 코드와 한글 종목명을 가져오는 코드를 작성합니다. 이를 위해 CommGetData 함수를 사용하여 데이터 요청을 합니다.


def get_stock_info(self, stock_code):
    data = self.kiwoom.CommGetData("", "OPT10001", 0, "0", stock_code)
    stock_name = data.split(';')[0]
    return stock_name

stock_code = "005930"  # 삼성전자
stock_name = kiwoom_api.get_stock_info(stock_code)
print(f"종목 코드: {stock_code}, 종목명: {stock_name}")

3.3 전체 종목 리스트 가져오기

모든 종목의 리스트를 가져오는 방법도 있습니다. 키움증권은 특정 데이터 코드에 대해 전체 종목 리스트를 반환할 수 있습니다.


def get_all_stocks(self):
    stock_list = []
    for i in range(0, 1000):  # 예시로 1000종목 반복
        stock_code = self.kiwoom.CommGetData("", "OPT10001", i, "0", "")
        if stock_code == "":
            break
        stock_list.append(stock_code)

    return stock_list

all_stocks = kiwoom_api.get_all_stocks()
for stock in all_stocks:
    print(stock)  # 각 종목 코드 출력

4. 결론

이번 강좌에서는 파이썬을 이용하여 키움증권 API를 통해 종목 코드와 한글 종목명을 가져오는 방법에 대해 살펴보았습니다. 이 기능을 기반으로 다양한 자동매매 시스템을 구축할 수 있으며, 실시간 데이터 분석 및 거래 전략 수립 등에 활용할 수 있습니다. 각 투자자는 이를 통해 보다 효율적으로 시장에 대응할 수 있는 역량을 갖추게 될 것입니다.

5. 참고 자료