def mongodbRowToTick(row_tick): tickData = VtTickData() tickData.lastPrice = float(row_tick['lastPrice']) tickData.date = row_tick['date'] tickData.time = row_tick['time'] tickData.datetime = datetime.strptime( ' '.join([row_tick['date'], row_tick['time']]), '%Y%m%d %H:%M:%S.%f') tickData.volume = int(row_tick['volume']) tickData.vtSymbol = row_tick['vtSymbol'] tickData.symbol = row_tick['symbol'] tickData.exchange = row_tick['exchange'] tickData.TradingDay = row_tick['TradingDay'] tickData.openInterest = int(row_tick['openInterest']) return tickData
def processLine(self, line): historyData = line.split(',') #historyDataLen = len(historyData) symbol = historyData[2] #print 'processLine, symbol:' + symbol #从list转化为tick对象 historytick = VtTickData() historytick._id = historyData[0] historytick.gatewayName = 'CTP' historytick.symbol = symbol historytick.TradingDay = historyData[1] historytick.exchange = historyData[3] historytick.vtSymbol = historytick.symbol # '.'.join([tick.symbol, tick.exchange]) historytick.lastPrice = self.convertFloatZero(historyData[5]) #lastVolume historytick.volume = historyData[12] historytick.openInterest = historyData[14] UpdateMillisec = int(historyData[20]) historytick.time = '.'.join([historyData[19], str(UpdateMillisec/ 100)]) historytick.date = historyData[42] historytick.datetime = datetime.strptime(' '.join([historytick.date, historytick.time]), '%Y%m%d %H:%M:%S.%f') historytick.openPrice = self.convertFloatZero(historyData[9]) historytick.highPrice = self.convertFloatZero(historyData[10]) historytick.lowPrice = self.convertFloatZero(historyData[11]) historytick.preClosePrice = self.convertFloatZero(historyData[12]) historytick.ClosePrice = self.convertFloatZero(historyData[15]) historytick.SettlementPrice = self.convertFloatZero(historyData[16]) historytick.upperLimit = self.convertFloatZero(historyData[17]) historytick.lowerLimit = self.convertFloatZero(historyData[18]) # CTP只有一档行情 historytick.bidPrice1 = self.convertFloatZero(historyData[21]) historytick.bidVolume1 = historyData[22] historytick.askPrice1 = self.convertFloatZero(historyData[23]) historytick.askVolume1 = historyData[24] historytick.AveragePrice = self.convertFloatZero(historyData[41]) return historytick
def loadTickData(self, tick): tickData = VtTickData() #tickData.lastPrice = float(tick['lastPrice']) #要处理小数位数,只保留一位小数 #线上录得数据写文件,比如原始数据是个整数3967,写到文件里的会是3967.000000000001 tickData.lastPrice = round(float(tick['lastPrice']), 1) tickData.date = tick['date'] tickData.time = tick['time'] tickData.datetime = datetime.strptime(' '.join([tick['date'], tick['time']]), '%Y%m%d %H:%M:%S.%f') tickData.volume = int(tick['volume']) tickData.vtSymbol = tick['vtSymbol'] tickData.symbol = tick['symbol'] tickData.exchange = tick['exchange'] tickData.TradingDay = tick['TradingDay'] #tickData.openInterest = int(tick['openInterest']) #防止持仓量可能带小数 tickData.openInterest = int(float(tick['openInterest'])) return tickData