def trEvent(self, sScrNo, sRQName, sTrCode, sRecordName, sPreNext, nDataLength, sErrorCode, sMessage, sSplmMsg): # sScrNo(화면번호), sRQName(사용자구분), sTrCode(Tran명), sRecordName(레코드명), sPreNext(연속조회 유무) print("trEvent", sRQName) if sRQName == 'AT_opt10001': # 이름 출력 print('레코드이름', sRecordName) name = self.OCXconn.dynamicCall( "GetCommData(QString, QString, int, QString)", sTrCode, sRQName, 0, "종목명").strip() print(name) if sRQName == '주식분봉차트조회요청': self.sPreNext = sPreNext dataCnt = self.OCXconn.dynamicCall( "GetRepeatCnt(QString, QString)", sTrCode, sRQName) print('데이터 계속여부 : ', sPreNext, ', 가져온 갯수 : ', dataCnt) averageList = [] average = 0 sendData = [] if self.loadCount < self.totalDataCnt + dataCnt: dataCnt = self.loadCount - self.totalDataCnt self.totalDataCnt += dataCnt for i in range(dataCnt): date = self.OCXconn.dynamicCall( "GetCommData(QString, QString, int, QString)", sTrCode, sRQName, i, "체결시간").strip() start = int( self.OCXconn.dynamicCall( "GetCommData(QString, QString, int, QString)", sTrCode, sRQName, i, "시가").strip()) mount = self.OCXconn.dynamicCall( "GetCommData(QString, QString, int, QString)", sTrCode, sRQName, i, "거래량").strip() start = abs(start) averageList.append(start) if len(averageList) > 20: averageList.pop(0) for v in averageList: average += v average /= len(averageList) average = int(average) if self.saveType == 'e': sendData.append([start, int(mount), average]) if self.saveType == 'w': self.spamwriter.writerow([start, mount, average]) if self.saveType == 'e': print("ipc가 보내고 있는 데이터: ", sendData) IPC.Send(sendData) try: self.tr_event_loop.exit() except AttributeError: pass
def sendName(self, text): IPC.WritePath = "pipe\\name" IPC.Send( stockDB.dfstockcode.loc[self.stockName.text()][0]) # 종목코드로 보내기