class MyWindow(QMainWindow, form_class): def __init__(self): super().__init__() self.setupUi(self) self.kiwoom = Kiwoom() self.kiwoom.CommConnect() self.timer = QTimer(self) self.timer.start(1000) self.timer.timeout.connect(self.timeout) # Get Account Number accouns_num = int(self.kiwoom.GetLoginInfo("ACCOUNT_CNT")) accounts = self.kiwoom.GetLoginInfo("ACCNO") accounts_list = accounts.split(';')[0:accouns_num] self.comboBox.addItems(accounts_list) self.lineEdit.textChanged.connect(self.code_changed) self.pushButton.clicked.connect(self.send_order) def timeout(self): current_time = QTime.currentTime() text_time = current_time.toString("hh:mm:ss") time_msg = "현재시간: " + text_time state = self.kiwoom.GetConnectState() if state == 1: state_msg = "서버 연결 중" else: state_msg = "서버 미 연결 중" self.statusbar.showMessage(state_msg + " | " + time_msg) def code_changed(self): code = self.lineEdit.text() code_name = self.kiwoom.GetMasterCodeName(code) self.lineEdit_2.setText(code_name) def send_order(self): order_type_lookup = {'신규매수': 1, '신규매도': 2, '매수취소': 3, '매도취소': 4} hoga_lookup = {'지정가': "00", '시장가': "03"} account = self.comboBox.currentText() order_type = self.comboBox_2.currentText() code = self.lineEdit.text() hoga = self.comboBox_3.currentText() num = self.spinBox.value() price = self.spinBox_2.value() self.kiwoom.SendOrder("SendOrder_req", "0101", account, order_type_lookup[order_type], code, num, price, hoga_lookup[hoga], "")
class MyWindow(QMainWindow, form_class): def __init__(self): super().__init__() self.setupUi(self) self.kiwoom = Kiwoom() self.kiwoom.CommConnect() # Timer self.timer = QTimer(self) self.timer.start(1000) self.timer.timeout.connect(self.timeout) # Timer2 self.timer2 = QTimer(self) self.timer2.start(1000 * 10) self.timer2.timeout.connect(self.timeout2) # Get Account Number accouns_num = int(self.kiwoom.GetLoginInfo("ACCOUNT_CNT")) accounts = self.kiwoom.GetLoginInfo("ACCNO") accounts_list = accounts.split(';')[0:accouns_num] self.comboBox.addItems(accounts_list) self.lineEdit.textChanged.connect(self.code_changed) self.pushButton.clicked.connect(self.send_order) self.pushButton_2.clicked.connect(self.check_balance) def timeout2(self): if self.checkBox.isChecked() == True: self.check_balance() def timeout(self): current_time = QTime.currentTime() text_time = current_time.toString("hh:mm:ss") time_msg = "현재시간: " + text_time state = self.kiwoom.GetConnectState() if state == 1: state_msg = "서버 연결 중" else: state_msg = "서버 미 연결 중" self.statusbar.showMessage(state_msg + " | " + time_msg) def code_changed(self): code = self.lineEdit.text() code_name = self.kiwoom.GetMasterCodeName(code) self.lineEdit_2.setText(code_name) def send_order(self): order_type_lookup = {'신규매수': 1, '신규매도': 2, '매수취소': 3, '매도취소': 4} hoga_lookup = {'지정가': "00", '시장가': "03"} account = self.comboBox.currentText() order_type = self.comboBox_2.currentText() code = self.lineEdit.text() hoga = self.comboBox_3.currentText() num = self.spinBox.value() price = self.spinBox_2.value() self.kiwoom.SendOrder("SendOrder_req", "0101", account, order_type_lookup[order_type], code, num, price, hoga_lookup[hoga], "") def check_balance(self): self.kiwoom.init_opw00018_data() # Request opw00018 self.kiwoom.SetInputValue("계좌번호", "8080996211") self.kiwoom.SetInputValue("비밀번호", "0000") self.kiwoom.CommRqData("opw00018_req", "opw00018", 0, "2000") while self.kiwoom.prev_next == '2': time.sleep(0.2) self.kiwoom.SetInputValue("계좌번호", "8080996211") self.kiwoom.SetInputValue("비밀번호", "0000") self.kiwoom.CommRqData("opw00018_req", "opw00018", 2, "2000") # Request opw00001 self.kiwoom.SetInputValue("계좌번호", "8080996211") self.kiwoom.SetInputValue("비밀번호", "0000") self.kiwoom.CommRqData("opw00001_req", "opw00001", 0, "2000") # balance item = QTableWidgetItem(self.kiwoom.data_opw00001) item.setTextAlignment(Qt.AlignVCenter | Qt.AlignRight) self.tableWidget.setItem(0, 0, item) for i in range(1, 6): item = QTableWidgetItem(self.kiwoom.data_opw00018['single'][i - 1]) item.setTextAlignment(Qt.AlignVCenter | Qt.AlignRight) self.tableWidget.setItem(0, i, item) self.tableWidget.resizeRowsToContents() # Item list item_count = len(self.kiwoom.data_opw00018['multi']) self.tableWidget_2.setRowCount(item_count) for j in range(item_count): row = self.kiwoom.data_opw00018['multi'][j] for i in range(len(row)): item = QTableWidgetItem(row[i]) item.setTextAlignment(Qt.AlignVCenter | Qt.AlignRight) self.tableWidget_2.setItem(j, i, item) self.tableWidget_2.resizeRowsToContents()