주식자동매매 프로그램을 만들기 위한 화면을 구성하였으면
이제 그 화면에 출력할 데이터를 가져오는 방법을 알아야 하겠죵!
아마 실제로는 영웅문의 조건검색 기능을 이용하여 종목을 가져오는 걸 먼저 사용하게 될 것 같아요!
그치만 이번에는
파이썬에서 키움Open API를 이용하여 영웅문 hts에서 데이터 가져오는 방법을 알기 위해
간단한 작업을 해보려고 합니다.
바~로 코스닥 종목과 종목명 가져오기!
키움Open API 개발 가이드
요게 꼭 필요합니다.
키움Open API 설치하실 때 다 다운로드 받아놓으셨죠 ?!
아직 설치하지 않으셨다면 아래 링크를 보고 설치해주세요 ㅎㅎ
개발가이드를 열어보면 주식 자동매매 프로그램 작성에 필요한 이모저모가 들어있는데요!
5.3 OpenAPI메소드 를 보시면 됩니다!
이런식으로 영웅문에 접근할 수 있는 메소드들이 쭈~욱 나와있는데요!
코스닥 종목, 종목명을 가져오기 위해서는
시장구분에 따른 종목코드를 반환하는 GetCodeListByMarket
종목코드의 한글명을 반환하는 GetMasterCodeName
요 두 메소드를 사용해보겠습니다 !
이제 PyCharm을 열어서 프로젝트를 생성해주세여!
아직 설치하지 않으셨거나 플젝어케생성함?? 하는 분들은 아래 링크 참고해주시구요!
sssinga.tistory.com/98?category=799114
프로젝트에 파이썬 파일에 아래 코드를 복붙해주세요!
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
'개발 > 주식 자동매매 프로그램' 카테고리의 다른 글
[주식] 주식 자동매매 프로그램 만들기 - 6. 자동매매 프로그램 소스코드 복붙하기 (11) | 2021.02.15 |
---|---|
[주식] 주식 자동매매 프로그램 만들기 - 4. Qt Designer 로 UI 구성하기 (0) | 2021.02.06 |
[주식] 주식자동매매 프로그램 만드는데 발생한 자잘한 오류들 정리 (0) | 2021.01.24 |
[주식] 주식 자동매매 프로그램 만들기 - 3. PyCharm (파이썬 IDE) 설치 및 초기설정 (0) | 2021.01.23 |
[주식] 주식 자동매매 프로그램 만들기 - 2. 키움Open API 설치 (0) | 2021.01.22 |
댓글