Esempio n. 1
0
    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
Esempio n. 2
0
 def sendName(self, text):
     IPC.WritePath = "pipe\\name"
     IPC.Send(
         stockDB.dfstockcode.loc[self.stockName.text()][0])  # 종목코드로 보내기