728x90
반응형
키움증권 API 활용기 02. 정보불러오기
1. 순서 확인
1. 키움 로그인창 띄우기
2. API 연결 이벤트
3. 화면 설정
4. 계좌 얻기 버튼
5. 계좌 번호 출력 필드 설정
6. 버튼 클릭에 대한 메소드 생성 (계좌번호 정보를 가져오는 함수)
7. 로그인 성공에 매한 메시지 출력
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QAxContainer import *
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
# Kiwoom Login : 로그인창 띄우기
self.kiwoom = QAxWidget("KHOPENAPI.KHOpenAPICtrl.1")
self.kiwoom.dynamicCall("CommConnect()")
# OpenAPI+ Event : API 연결 이벤트
self.kiwoom.OnEventConnect.connect(self.event_connect)
# Title, Screen Size : 제목과 화면 크기
self.setWindowTitle("계좌 정보")
self.setGeometry(300, 300, 300, 150)
# Button 1 : 계좌 얻기 버튼 생성
btn1 = QPushButton("계좌 얻기", self)
btn1.move(190, 20)
btn1.clicked.connect(self.btn1_clicked)
# 계좌 번호 출력 필드 생성
self.text_edit = QTextEdit(self)
self.text_edit.setGeometry(10, 60, 280, 80)
# 버튼1을 클릭하면 다음 메소드를 실행 : 로그인 인포 중에서 계좌번호(ACCNO)
def btn1_clicked(self):
account_num = self.kiwoom.dynamicCall("GetLoginInfo(QString)", ["ACCNO"])
self.text_edit.append("계좌번호: " + account_num.rstrip(';'))
# 로그인 성공에 대한 확인 메시지
def event_connect(self, err_code):
if err_code == 0:
self.text_edit.append("로그인 성공")
if __name__ == "__main__":
app = QApplication(sys.argv)
myWindow = MyWindow()
myWindow.show()
app.exec_()
키움 API에 로그인하고, '계좌얻기' 버튼을 클릭하면
>> 계좌번호 : ******* 정보 출력 ('로그인 성공'은 API에 접속하면 바로 출력된다)
2. 계좌번호 인자값 확인해보기
위에서 6.번에 해당하는 '계좌번호 가져오는 메소드의 인자값'을 알아보자
- 코아스튜디오를 실행하고
- 로그인 버전처리 / 관련함수 / BSTR GetLoginInfo(BSTR) 을 찾아보면 아래와 같이 인자들이 나열되어 있다.
아래 목록의 정보들을 가져올 수 있는 것이 GetLoginInfo() 함수이다.
ACCOUNT_CNT | 보유 계좌 갯수 |
ACCLIST / ACCNO | 보유계좌 목록 (:로 구분) |
USER_ID | 사용자 ID |
USER_NAME | 사용자 이름 |
GetServerGubun | 접속 서버 구분 (1: 모의, 나머지:실거래) |
KEY_BSTECGB | 키보드 보안 해지여부 (0:정상, 1 : 해지) |
FIRE_SECGB | 방화벽 설정여부 (0: 미설정, 1 : 설정, 2 : 해지) |
3. 코드에서 사용한 예시 해설
우리는 위 코드에서 아래와 같이 사용하였다. 해석해보면
'GetLoginInfo 함수에서 어떤 스트링문자열을 가져오는데, 그것은 바로 계좌번호이다.'
그걸 accoun_num이라는 변수에 넣었다.
account_num = self.kiwoom.dynamicCall("GetLoginInfo(QString)", ["ACCNO"])
그 계좌번호 정보들을, (;)세미콜론으로 구분하여 나열하도록 하였다. 그것은 위에서 만들어놓은 text_edit라는 출력필드에 보여주도록한다.
self.text_edit.append("계좌번호: " + account_num.rstrip(';'))
4. 활용 예시
이 방법을 활용해서 '사용자 이름'도 출력해볼 수 있다.
'User Name'이라는 인자값을 넣으면 된다.
print(self.kiwoom.dynamicCall("GetLoginInfo(QString)", ["USER_NAME"]))
728x90
반응형
'Python' 카테고리의 다른 글
키움증권 API 활용기 01. 로그인창 (0) | 2025.09.23 |
---|---|
아나콘다 가상환경 32bit 설정 (0) | 2025.09.23 |
키움 Rest API 사용을 위한 설정 (0) | 2025.09.17 |
아나콘다 설치 및 파이참 설치 (0) | 2025.09.09 |
Python 버전확인 방법 (0) | 2024.04.14 |