def testSanitize(self): self.assertEqual(bfcommon.sanitize_ohlc(10, 12, 9, 10), (10, 12, 9, 10)) self.assertEqual(bfcommon.sanitize_ohlc(10, 12, 9, 13), (10, 13, 9, 13)) self.assertEqual(bfcommon.sanitize_ohlc(10, 9, 9, 10), (10, 10, 9, 10)) self.assertEqual(bfcommon.sanitize_ohlc(10, 12, 11, 10), (10, 12, 10, 10)) self.assertEqual(bfcommon.sanitize_ohlc(10, 12, 10, 9), (10, 12, 9, 9))
def parseBar(self, row): if isinstance(row[0], str): if len(row[0].strip()) == 19: dateTime = parse_date19(row[0]) elif len(row[0].strip()) == 16: dateTime = parse_date16(row[0]) else: dateTime = parse_date(row[0]) else: dateTime =row[0] open_ = float(row[1]['open']) high = float(row[1]['high']) low = float(row[1]['low']) close = float(row[1]['close']) volume = float(row[1]['volume']) adjClose = float(row[1]['close']) pchange = float(row[1]['pchange']) preclose = float(row[1]['preclose']) if self.__sanitize: open_, high, low, close = common.sanitize_ohlc(open_, high, low, close) key_dict = dict() key_dict['pchange'] = pchange key_dict['preclose'] = preclose if 'atr' in row[1].keys(): atr = None if np.isnan(row[1]['atr']) else float(row[1]['atr']) key_dict['atr'] = atr return bar.BasicBar(dateTime, open_, high, low, close, volume, adjClose, self.__frequency, extra = key_dict)
def parseBar(self, row): if isinstance(row[0], str): if len(row[0].strip()) == 19: dateTime = parse_date19(row[0]) elif len(row[0].strip()) == 16: dateTime = parse_date16(row[0]) else: dateTime = parse_date(row[0]) else: dateTime =row[0] open_ = float(row[1]['open']) high = float(row[1]['high']) low = float(row[1]['low']) close = float(row[1]['close']) volume = float(row[1]['volume']) adjClose = float(row[1]['close']) if self.__sanitize: open_, high, low, close = common.sanitize_ohlc(open_, high, low, close) key_dict = dict() origin_keys = row[1].keys() normal_keys = ['open', 'high', 'low', 'close', 'volume', 'code'] special_keys = list(set(origin_keys).difference(set(normal_keys))) for sitem in special_keys: value = None if np.isnan(row[1][sitem]) else float(row[1][sitem]) key_dict[sitem] = value return bar.BasicBar(dateTime, open_, high, low, close, volume, adjClose, self.__frequency, extra = key_dict)
def parseBar(self, row): dateTime = self.__parseDate(row[0]) #date close = float(row[1]['close']) open_ = float(row[1]['open']) high = float(row[1]['high']) low = float(row[1]['low']) volume = float(row[1]['volume']) adjClose = None if self.__sanitize: open_, high, low, close = common.sanitize_ohlc(open_, high, low, close) return bar.BasicBar(dateTime, open_, high, low, close, volume, adjClose, self.__frequency)
def parseBar(self, csvRowDict): dateTime = self.__parseDate(csvRowDict["TimeStamp"]) close = float(csvRowDict["Close"]) open_ = float(csvRowDict["Open"]) high = float(csvRowDict["High"]) low = float(csvRowDict["Low"]) volume = float(csvRowDict["Volume"]) adjClose = float(csvRowDict["Close"]) if self.__sanitize: open_, high, low, close = common.sanitize_ohlc(open_, high, low, close) return bar.BasicBar(dateTime, open_, high, low, close, volume, adjClose, self.__frequency)
def parseBar(self, row): dateTime = self.__parseDate(row[1]['date']) #date close = float(row[1]['close']) open_ = float(row[1]['open']) high = float(row[1]['high']) low = float(row[1]['low']) volume = float(row[1]['volume']) adjClose = float(row[1]['close']) if self.__sanitize: open_, high, low, close = common.sanitize_ohlc(open_, high, low, close) return bar.BasicBar(dateTime, open_, high, low, close, volume, adjClose, self.__frequency)
def parseBar(self, csvRowDict): dateTime = self.__parseDate(csvRowDict["Date"]) close = float(csvRowDict["Close"]) open_ = float(csvRowDict["Open"]) high = float(csvRowDict["High"]) low = float(csvRowDict["Low"]) volume = float(csvRowDict["Volume"]) adjClose = float(csvRowDict["Adj Close"]) if self.__sanitize: open_, high, low, close = common.sanitize_ohlc(open_, high, low, close) return bar.BasicBar(dateTime, open_, high, low, close, volume, adjClose, self.__frequency)
def parseBar(self, csvRowDict): dateTime = self.__parseDate(csvRowDict["Date"].replace(',', '')) close = float(csvRowDict["Close"].replace(',', '')) open_ = float(csvRowDict["Open"].replace(',', '')) high = float(csvRowDict["High"].replace(',', '')) low = float(csvRowDict["Low"].replace(',', '')) volume = float(csvRowDict["Volume"].replace(',', '')) if self.__sanitize: open_, high, low, close = common.sanitize_ohlc( open_, high, low, close) return self.__barClass(dateTime, open_, high, low, close, volume, None, self.__frequency)
def parseBar(self, csvRowDict): dateTime = self.__parseDate(csvRowDict["startTime"]) close = float(csvRowDict[" close"]) open_ = float(csvRowDict[" open"]) high = float(csvRowDict[" high"]) low = float(csvRowDict[" low"]) volume = float(csvRowDict[" counterVolume"]) adjClose = float(csvRowDict[" vwap"]) # if self.__sanitize: open_, high, low, close = common.sanitize_ohlc(open_, high, low, close) return bar.BasicBar(dateTime, open_, high, low, close, volume, adjClose, self.__frequency)
def parseBar(self, csvRowDict): dateTime = self.__parseDateTime(csvRowDict["<DTYYYYMMDD>"], csvRowDict["<TIME>"]) close = float(csvRowDict["<CLOSE>"]) open_ = float(csvRowDict["<OPEN>"]) high = float(csvRowDict["<HIGH>"]) low = float(csvRowDict["<LOW>"]) volume = float(csvRowDict["<VOL>"]) if self.__sanitize: open_, high, low, close = common.sanitize_ohlc( open_, high, low, close) return bar.BasicBar(dateTime, open_, high, low, close, volume, None, self.__frequency)
def parseBar(self, csvRowDict): dateTime = self.__parseDate(csvRowDict['\xc8\xd5\xc6\xda']) close = float(csvRowDict['\xca\xd5\xc5\xcc\xbc\xdb(\xd4\xaa)']) open_ = float(csvRowDict['\xbf\xaa\xc5\xcc\xbc\xdb(\xd4\xaa)']) high = float(csvRowDict['\xd7\xee\xb8\xdf\xbc\xdb(\xd4\xaa)']) low = float(csvRowDict['\xd7\xee\xb5\xcd\xbc\xdb(\xd4\xaa)']) volume = int(csvRowDict['\xb3\xc9\xbd\xbb\xc1\xbf(\xb9\xc9)']) adjClose = close if self.__sanitize: open_, high, low, close = common.sanitize_ohlc( open_, high, low, close) return self.__barClass(dateTime, open_, high, low, close, volume, adjClose, self.__frequency)
def parseBar(self, csvRowDict): dateTime = self.__parseDate(csvRowDict["Date"]) close = float(csvRowDict["Close"]) open_ = float(csvRowDict["Open"]) high = float(csvRowDict["High"]) low = float(csvRowDict["Low"]) volume = float(csvRowDict["Volume"]) adjClose = float(csvRowDict["Adj Close"]) if self.__sanitize: open_, high, low, close = common.sanitize_ohlc(open_, high, low, close) return self.__barClass( self.__instrument, dateTime, open_, high, low, close, volume, adjClose, self.__frequency )
def parseBar(self, csvRowDict): dateTime = self.__parseDate(csvRowDict["timestamp"]) #dateTime = csvRowDict["timestamp"] close = float(csvRowDict["close"]) open_ = float(csvRowDict["open"]) high = float(csvRowDict["high"]) low = float(csvRowDict["low"]) volume = float(csvRowDict["volume"]) adjClose = float(csvRowDict["adjusted_close"]) if self.__sanitize: open_, high, low, close = common.sanitize_ohlc( open_, high, low, close) return self.__barClass(dateTime, open_, high, low, close, volume, adjClose, self.__frequency)
def parseBar(self, csvRowDict): if(self.__rowFilter!=None and self.__rowFilter(csvRowDict)): return None dateTime = self.__parseDate(csvRowDict["Date"]) close = float(csvRowDict["Close"]) if csvRowDict["Close"] != "-" else None open_ = float(csvRowDict["Open"]) if csvRowDict["Open"] != "-" else None high = float(csvRowDict["High"]) if csvRowDict["High"] != "-" else None low = float(csvRowDict["Low"]) if csvRowDict["Low"] != "-" else None volume = float(csvRowDict["Volume"]) if csvRowDict["Volume"] != "-" else None adjClose = None if self.__sanitize: open_, high, low, close = common.sanitize_ohlc(open_, high, low, close) return bar.BasicBar(dateTime, open_, high, low, close, volume, adjClose, self.__frequency)
def parseBar(self, row): if isinstance(row[0],str) or isinstance(row[0],unicode) : if len(row[0].strip())==19: dateTime = datetime.datetime.strptime(row[0], '%Y-%m-%d %H:%M:%S') #date elif len(row[0].strip())==16: #tushare~~~~ dateTime = datetime.datetime.strptime(row[0][:16], '%Y-%m-%d %H:%M') # date else: dateTime = datetime.datetime.strptime(row[0][:10],'%Y-%m-%d' ) #date else: dateTime =row[0] close = float(row[1]['close']) open_ = float(row[1]['open']) high = float(row[1]['high']) low = float(row[1]['low']) volume = float(row[1]['volume']) adjClose = float(row[1][5]) if self.__sanitize: open_, high, low, close = common.sanitize_ohlc(open_, high, low, close) return bar.BasicBar(dateTime, open_, high, low, close, volume, adjClose, self.__frequency)
def parseBar(self, row): if isinstance(row[0],str) or isinstance(row[0],unicode) : if len(row[0].strip())==19: dateTime = parse_date19(row[0]) #date elif len(row[0].strip())==16: #tushare~~~~16位数据 dateTime = parse_date16(row[0]) # date else: dateTime = parse_date(row[0]) #date else: dateTime =row[0] close = float(row[1]['close']) open_ = float(row[1]['open']) high = float(row[1]['high']) low = float(row[1]['low']) volume = float(row[1]['volume']) adjClose = float(row[1][5]) if self.__sanitize: open_, high, low, close = common.sanitize_ohlc(open_, high, low, close) return bar.BasicBar(dateTime, open_, high, low, close, volume, adjClose, self.__frequency)
def parseBar(self, row): if isinstance(row[0], str): if len(row[0].strip()) == 19: dateTime = parse_date19(row[0]) elif len(row[0].strip()) == 16: dateTime = parse_date16(row[0]) else: dateTime = parse_date(row[0]) else: dateTime = row[0] open_ = float(row[1]['open']) high = float(row[1]['high']) low = float(row[1]['low']) close = float(row[1]['close']) volume = float(row[1]['volume']) adjClose = float(row[1]['close']) pchange = float(row[1]['pchange']) #preclose = float(row[1]['preclose']) #aprice = float(row[1]['aprice']) #uprice = float(row[1]['uprice']) #npercent = float(row[1]['npercent']) #outstanding = float(row[1]['outstanding']) #sri = float(row[1]['sri']) if self.__sanitize: open_, high, low, close = common.sanitize_ohlc( open_, high, low, close) return bar.BasicBar(dateTime, open_, high, low, close, volume, adjClose, self.__frequency, extra={"pchange": pchange})