본문 바로가기
개발/주식 자동매매 프로그램

[주식] 주식 자동매매 프로그램 만들기 - 5. 키움Open API 사용하여 종목코드 가져오기

by sssinga 2021. 2. 7.

 

 

 

 

 

 

 

주식자동매매 프로그램을 만들기 위한 화면을 구성하였으면

이제 그 화면에 출력할 데이터를 가져오는 방법을 알아야 하겠죵!

 

아마 실제로는 영웅문의 조건검색 기능을 이용하여 종목을 가져오는 걸 먼저 사용하게 될 것 같아요!

그치만 이번에는

파이썬에서 키움Open API를 이용하여 영웅문 hts에서 데이터 가져오는 방법을 알기 위해

간단한 작업을 해보려고 합니다.

 

바~로 코스닥 종목과 종목명 가져오기!

 

 

 

 

 

 

 

 

 

 

 

키움Open API 개발 가이드

kiwoom_openapi_plus_devguide_ver_1.5.pdf
2.16MB

 

 

 

 

 

요게 꼭 필요합니다.

키움Open API 설치하실 때 다 다운로드 받아놓으셨죠 ?!

아직 설치하지 않으셨다면 아래 링크를 보고 설치해주세요 ㅎㅎ

sssinga.tistory.com/97

 

[주식] 주식 자동매매 프로그램 만들기 - 2. 키움Open API 설치

키움Open API 트레이딩 채널 접속 www3.kiwoom.com/nkw.templateFrameSet.do?m=m1408010600 키움증권-대한민국 주식시장 점유율 1위 www3.kiwoom.com 접속하면 위 사진과 같이 친절하게 진행방법이 나와 있습니다..

sssinga.tistory.com

 

 

 

 

 

 

 

 

 

 

 

 

개발가이드를 열어보면 주식 자동매매 프로그램 작성에 필요한 이모저모가 들어있는데요!

5.3 OpenAPI메소드 를 보시면 됩니다!

 

이런식으로 영웅문에 접근할 수 있는 메소드들이 쭈~욱 나와있는데요!

 

 

 

 

 

 

 

 

 

 

 

코스닥 종목, 종목명을 가져오기 위해서는

시장구분에 따른 종목코드를 반환하는 GetCodeListByMarket

종목코드의 한글명을 반환하는 GetMasterCodeName

요 두 메소드를 사용해보겠습니다 !

 

 

 

 

 

 

 

 

 

 

 

 

 

이제 PyCharm을 열어서 프로젝트를 생성해주세여!

아직 설치하지 않으셨거나 플젝어케생성함?? 하는 분들은 아래 링크 참고해주시구요!

sssinga.tistory.com/98?category=799114

 

[주식] 주식 자동매매 프로그램 만들기 - 3. PyCharm (파이썬 IDE) 설치 및 초기설정

1. PyCharm 다운로드 www.jetbrains.com/pycharm/download/#section=windows Download PyCharm: Python IDE for Professional Developers by JetBrains Download the latest version of PyCharm for Windows, macO..

sssinga.tistory.com

 

 

 

 

 

 

 

 

 

 

 

 

 

프로젝트에 파이썬 파일에 아래 코드를 복붙해주세요!

 

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import  *
from PyQt5.QAxContainer import *

class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        self.kiwoom = QAxWidget("KHOPENAPI.KHOpenAPICtrl.1")
        self.kiwoom.dynamicCall("CommConnect()")

        self.setWindowTitle("종목 코드")
        self.setGeometry(300, 300, 300, 600)

        btn1 = QPushButton("코스피", self)
        btn1.move(190, 10)
        btn1.clicked.connect(self.btn1_clicked)

        btn2 = QPushButton("코스닥", self)
        btn2.move(190, 50)
        btn2.clicked.connect(self.btn2_clicked)


        self.listWidget = QListWidget(self)
        self.listWidget.setGeometry(10, 10, 170, 500)

    def btn1_clicked(self):
        ret = self.kiwoom.dynamicCall("GetCodeListByMarket(QString)", ["0"])
        kospi_code_list = ret.split(';')
        kospi_code_name_list = []

        for x in kospi_code_list:
            name = self.kiwoom.dynamicCall("GetMasterCodeName(QString)", [x])
            kospi_code_name_list.append(x + " : " + name)

        self.listWidget.addItems(kospi_code_name_list)

    def btn2_clicked(self):
        ret = self.kiwoom.dynamicCall("GetCodeListByMarket(QString)", ["10"])
        kospi_code_list = ret.split(';')
        kospi_code_name_list = []

        for x in kospi_code_list:
            name = self.kiwoom.dynamicCall("GetMasterCodeName(QString)", [x])
            kospi_code_name_list.append(x + " : " + name)

        self.listWidget.addItems(kospi_code_name_list)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    myWindow = MyWindow()
    myWindow.show()
    sys.exit(app.exec_())

 

 

 

 

 

 

 

 

 

 

 

 

 

실행 ( Ctrl + Shift + F10 ) 을 누르시면 아래와 같은 창이 뜨고,

코스피 버튼을 누르면 코스피 종목들이

코스닥 버튼을 누르면 코스닥 종목들이 출력되는 것을 확인할 수 있습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

여기서 코스피 버튼 클릭 시, btn1_clicked 메소드를 타게 설정해 주었고

 

btn1_clicked 메소드는 위에서 확인했던

키움Open API의 GetCodeList ByMarket을 이용하여 구성한 것을 확인할 수 있습니다.

 

 

self.kiwoom.dynamicCall("GetCodeListByMarket(QString)", ["0"])

 

여기서 ["0"] 대신에 ["10"]을 입력하면 코스닥 코드를 가져올 수 있는 것도 확인할 수 있습니다.

개발 가이드를 확인하여 가져오고 싶은 시장의 코드를 입력하면

원하는 시장의 코드를 가져올 수 있습니다.

 

 

 

이런식으로 개발가이드를 참고하여 키움Open API를 사용할 수 있습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

다음 스텝은 아래에서 확인해주세요 :D

 

sssinga.tistory.com/92

 

[주식] 파이썬과 키움Open API를 이용한 주식자동매매 프로그램 만들기

요거 사실 진짜 설명 잘해놓은 곳 많습니다. 다만 저는.. 파이썬의 파자도 모르는데, 게으르고 이해력이 딸리는데!!! 자동매매 프로그램 만들고싶다!!! 하는 저같은 사람들잌ㅋㅋㅋㅋ 빠르게 보

sssinga.tistory.com

 

댓글