c. 파이썬
[파이썬 / 증권사 API활용](3) OpenAPI+ 메소드 사용
로봇쟁이
2024. 8. 27. 01:30
우선적으로 OpenAPI+에서 제공하는 API들은 다양하게 있으니 관련 문서를 보면 좋다.
역시나 구글링을 해보니
키움에서 기본적으로 제공하는 Guide 문서가 있어서 다운받아 올려놨다.
헷갈리거나 정확하게 확인이 필요할때 참고하면 여러모로 편할 것 같다.
kiwoom_openapi_plus_devguide_ver_1.5.pdf
2.16MB
이제 간단하게 OpenAPI+에 접속하여 코스피 종목을 검색을 해보고 리스트를 출력해보자.
import sys
from PyQt5.QtWidgets import *
from PyQt5.QAxContainer import *
import pythoncom
class App(QWidget):
def __init__(self):
super().__init__()
self.woom = QAxWidget("KHOPENAPI.KHOpenAPICtrl.1")
self.woom.OnEventConnect.connect(self.OnEventConnect)
self.CommConnect()
def CommConnect(self):
self.woom.dynamicCall("CommConnect()")
def GetMasterCodeName(self, code):
name = self.woom.dynamicCall("GetMasterCodeName(QString)", code)
return name
def GetCodeListByMarket(self, market):
codelist = self.woom.dynamicCall("GetCodeListByMarket(QString)", market)
return codelist
def OnEventConnect(self, err_code):
kospi = self.woom.GetCodeListByMarket('0').split(';')
for code in kospi:
name = self.woom.GetMasterCodeName(code)
print("종목코드:", code, " ", name)
if __name__ == "__main__":
app = QApplication(sys.argv)
myApp = App()
app.exec_()
함수 API 중 GetCodeListByMarket 을 보면 시장을 어떤 것을 선택하느냐에 따라 해당 종목코드를 반환해주고
이 반환된 코드를 이용해서 GetMasterCodeName 을 이용해서 종목명을 검색할 수 있다.
필자는 0번을 출력해서 장내에 있는 모든 주식을 리스트화하여 종목 검색을 했더니 엄청 많은 데이터를 출력했다.
필터링이 좀 필요할 것 같아 보이는 상황이다.
필터링은 약간의 꼼수를 이용해서 적용하면 될 것 같고....
그럼 이 함수들을 사용하기 편하게 그룹화(클래스화) 시켜야 겠다.
사실 pykiwoom 이란 패키지를 사용하면 될 것 같은데...어째선지 설치가 안된다..ㅜㅜ
이것도 한번 이유를 찾아봐야겠다.
반응형