[Python] 키움증권 OpenAPI 종목 기본정보 요청하기
로그인 완료 후 종목코드로 요청하여 종목명과 거래량을 수신하는 간단한 예제 입니다.
평소때는 Right margin을 신경 안쓰고 코딩을 하는데..
블로그로 붙여넣기 하니깐 문제가 생기네요ㅠㅠ
라인을 보기 어렵다는 점!!!
계속 블로그에 코드를 붙여넣기 하려면 뭔가 해결책이 필요 할 것 같습니다. 힝
Github : https://github.com/ResetDy/Blog_Python/blob/master/TrRequest.py
import sys
from PyQt5.QtWidgets import *
from PyQt5.QAxContainer import *
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("DonDon Test")
self.setGeometry(1600, 400, 1000, 1000)
self.kiwoom = QAxWidget("KHOPENAPI.KHOpenAPICtrl.1")
btn1 = QPushButton("Login", self)
btn1.move(20, 20)
btn1.clicked.connect(self.btn1_clicked)
btn2 = QPushButton("Click State", self)
btn2.move(20, 70)
btn2.clicked.connect(self.btn2_clicked)
btn3 = QPushButton("조회", self)
btn3.move(250, 150)
btn3.clicked.connect(self.btn3_clicked)
self.text_edit = QTextEdit(self)
self.text_edit.setGeometry(10, 300, 500, 200)
self.text_edit.setEnabled(False)
self.kiwoom.OnEventConnect.connect(self.event_connect)
self.kiwoom.OnReceiveTrData.connect(self.receive_trdata)
label = QLabel('종목코드: ', self)
label.move(20, 150)
self.code_edit = QLineEdit(self)
self.code_edit.move(140, 150)
self.code_edit.setText("039490")
def btn1_clicked(self):
self.login()
def btn2_clicked(self):
if self.kiwoom.dynamicCall("GetConnectState()") == 0:
self.statusBar().showMessage("Not Connect")
else:
self.statusBar().showMessage("Connected")
def btn3_clicked(self):
code = self.code_edit.text()
self.text_edit.append("종목코드 : " + code)
self.kiwoom.dynamicCall("SetInputValue(QString, QString)", "종목코드", code)
self.kiwoom.dynamicCall("CommRqData(QString, QString, int, QString)", "opt10001_req", "opt10001", 0, "0101")
def receive_trdata(self, screen_no, rqname, trcode, recordname, prev_next, data_len, err_code, msg1, msg2):
if rqname == "opt10001_req":
name = self.kiwoom.dynamicCall("CommGetData(QString, QString, QString, int, QString)", trcode, "", rqname, 0, "종목명")
volume = self.kiwoom.dynamicCall("CommGetData(QString, QString, QString, int, QString)", trcode, "", rqname, 0, "거래량")
self.text_edit.append("종목명 : " + name.strip())
self.text_edit.append("거래량 : " + volume.strip())
def login(self):
self.kiwoom.dynamicCall("CommConnect()")
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_()
'Programming > Python' 카테고리의 다른 글
[Python] Qt designer으로 만들어진 ui 파일 파이썬에서 로드시키기 (0) | 2018.03.30 |
---|---|
[Python] 키움증권 OpenAPI 로그인 이벤트 연결 및 적용 (0) | 2018.03.29 |
[Python] 키움증권 OpenAPI 모듈 사용 시 동작이 안할때! (0) | 2018.03.29 |
[Python] 데이터 시각화 중 신기했던 로또번호 (0) | 2018.03.26 |
[Python] 간단한 웹페이지 읽어오기 (0) | 2018.03.22 |
[Python] 파일 오픈시 Encoding 오류 (미결) (0) | 2018.03.21 |
[Python] List 자료형 (0) | 2018.03.20 |
[Python] Thread 테스트 (2) | 2018.03.20 |
댓글
이 글 공유하기
다른 글
-
[Python] Qt designer으로 만들어진 ui 파일 파이썬에서 로드시키기
[Python] Qt designer으로 만들어진 ui 파일 파이썬에서 로드시키기
2018.03.30 -
[Python] 키움증권 OpenAPI 로그인 이벤트 연결 및 적용
[Python] 키움증권 OpenAPI 로그인 이벤트 연결 및 적용
2018.03.29 -
[Python] 키움증권 OpenAPI 모듈 사용 시 동작이 안할때!
[Python] 키움증권 OpenAPI 모듈 사용 시 동작이 안할때!
2018.03.29 -
[Python] 데이터 시각화 중 신기했던 로또번호
[Python] 데이터 시각화 중 신기했던 로또번호
2018.03.26