Exemplo n.º 1
0
 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))
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
 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)
Exemplo n.º 4
0
    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)
Exemplo n.º 5
0
    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)
Exemplo n.º 6
0
    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)
Exemplo n.º 7
0
    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)
Exemplo n.º 8
0
    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)
Exemplo n.º 9
0
    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)
Exemplo n.º 10
0
    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)
Exemplo n.º 11
0
    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)
Exemplo n.º 12
0
    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
        )
Exemplo n.º 13
0
    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)
Exemplo n.º 14
0
    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)
Exemplo n.º 15
0
    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)
Exemplo n.º 16
0
    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)
Exemplo n.º 17
0
    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})
Exemplo n.º 18
0
 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))