PyQt5 에 조금 익숙해졌다면, PyQt5로 키움증권 API 를 연동해보도록 하겠습니다.
키움증권 Open API 는 OCX 방식의 API를 제공하고 있는데요. API 를 설치하게 되면 각 고유의 CLSID 또는 ProgID가 생성이 되고 이는 레지스트리에 자동등록 됩니다. 레지스트리에 자동 등록된 클래스를 읽어와서 구동되는 방식입니다.
이를 위해서 PyQt5에서 제공하는 QAxContainer 라는 모듈을 사용하게 됩니다.
QAxContainer 모듈은 클래스를 로드시켜 해당 클래스의 기능들을 호출하게 합니다.
먼저 PyQt5를 이용해 GUI프로그램을 실행시킵니다.
메인 윈도우에 로그인 버튼 하나와 상태체크 버튼을 추가합니다.
로그인 버튼은 login_clicked 라는 이벤트 함수와 연결 시켜주고, 상태체크 버튼은 statusCheck_clicked 이벤트 함수와 연결 시켜줍니다.
self.kiwoom = QAxWidget("KHOPENAPI.KHOpenAPICtrl.1")
여기서 중요한 라인은 위의 라인인데, 이 라인은 레지스트리에 등록되어있는 키움증권 API 를 연결시켜줍니다.
QAxWidget 은 QAxContainer 모듈의 하위 클래스입니다.
로그인 버튼 이벤트 함수입니다.
QAxWidget 클래스의 dynamicCall 이라는 함수를 사용하여, 키움증권 API 에 있는 method를 호출합니다.
CommConnect 라는 method를 호출합니다.
두번째 버튼에 연결된 이벤트 함수입니다.
여기서는 키움증권 API에서 제공하는 GetConnectState() 라는 method를 호출합니다.
GUI 구성을 마치고
QApplication 인스턴스를 생성하여 화면에 GUI프로그램을 출력해줍니다.
실행결과 정상적으로 GUI프로그램이 실행되는 것을 확인 할 수 있습니다.
여기서 로그인을 누르면 키움증권 API 로그인 창이 실행됩니다.
'코딩log > 알고리즘 트레이딩 시스템 구축' 카테고리의 다른 글
PyQt5 연결 import 오류 해결 및 PyQt5 익히기 -2 (0) | 2022.12.15 |
---|---|
PyQt5 연결 import 오류 해결 및 PyQt5 익히기 - 1 (0) | 2022.12.11 |
댓글