Exemplo n.º 1
0
 def translate(this, obj):
     tick = market_tick()
     tick.time = long(obj[0]) / 1000
     tick.volume = float(obj[1])
     tick.close = float(obj[2])
     tick.high = float(obj[3])
     tick.low = float(obj[4])
     tick.open = float(obj[5])
     tick.amount = 0.0
     tick.count = 0.0
     tick.timezone_offset = this.timezone_offset
     tick.period = this.get_generic_period_name()
     return tick
Exemplo n.º 2
0
    def translate_ws(this, obj):
        tick = market_tick()
        tick.time = long(obj['t'] / 1000)
        tick.timezone_offset = this.timezone_offset
        tick.open = float(obj['o'])
        tick.close = float(obj['c'])
        tick.low = float(obj['l'])
        tick.high = float(obj['h'])
        tick.amount = 0.0
        tick.volume = float(obj['v'])
        tick.count = float(obj['n'])
        tick.period = this.get_generic_period_name(this.period)

        return tick
Exemplo n.º 3
0
    def translate(this, ts, obj):
        tick = market_tick()
        tick.time = long(obj['id'])
        tick.timezone_offset = this.timezone_offset
        tick.open = float(obj['open'])
        tick.close = float(obj['close'])
        tick.low = float(obj['low'])
        tick.high = float(obj['high'])
        tick.amount = float(obj['vol'])
        tick.volume = float(obj['amount'])
        tick.count = float(obj['count'])
        tick.period = this.get_generic_period_name(this.period)

        return tick
Exemplo n.º 4
0
    def translate(this, obj):
        tick = market_tick()
        tick.time = long(obj["date"])
        tick.timezone_offset = this.timezone_offset
        tick.open = float(format(obj["open"], '.12f'))
        tick.high = float(format(obj["high"], '.12f'))
        tick.low = float(format(obj["low"], '.12f'))
        tick.close = float(format(obj["close"], '.12f'))
        tick.volume = float(format(obj["quoteVolume"], '.12f'))
        tick.amount = float(format(obj["volume"], '.12f'))
        tick.count = 0.0
        tick.period = this.get_generic_period_name()

        return tick
Exemplo n.º 5
0
    def translate_tick(this, obj):
        tick = market_tick()

        tick.time = long(obj[0])
        tick.timezone_offset = this.timezone_offset
        tick.open = float(obj[1])
        tick.close = float(obj[2])
        tick.high = float(obj[3])
        tick.low = float(obj[4])
        tick.amount = 0.0
        tick.volume = float(obj[5])
        tick.count = 0
        tick.period = this.DEFAULT_PERIOD

        return tick
Exemplo n.º 6
0
 def translate_ticks(this, objs):
     ticks = []
     for obj in objs:
         tick = market_tick()
         tick.market = obj['values'][0][1]
         tick.symbol = obj['values'][0][2]
         tick.time = long(obj['values'][0][0])
         tick.high = float(obj['values'][0][3])
         tick.low = float(obj['values'][0][4])
         tick.open = float(obj['values'][0][5])
         tick.close = float(obj['values'][0][6])
         tick.volume = float(obj['values'][0][7])
         ticks.append(tick)
         this.logger.debug('k10 calc - Tick object generated from DB query: %s, %s, %s, %s, %s, %s, %s, %s', tick.time, tick.market, tick.symbol, tick.high, tick.low, tick.open, tick.close, tick.volume)
     this.logger.debug('k10 calc - length of Tick object generated from DB query: %s', len(ticks))
     return ticks
Exemplo n.º 7
0
    def translate_db(this, objs):
        ticks = []
        for obj in objs:
            tick = market_tick()
            tick.time = long(obj[0])
            tick.market = obj[1]
            tick.symbol = obj[2]
            tick.high = float(obj[3])
            tick.low = float(obj[4])
            tick.open = float(obj[5])
            tick.close = float(obj[6])
            tick.volume = float(obj[7])
            tick.period = obj[8]
            tick.timezone_offset = obj[9]
            # print('validation - market tick generated', tick.time, tick.market, tick.symbol, tick.high, tick.low, tick.open, tick.close, tick.volume, tick.period, tick.timezone_offset)
            ticks.append(tick)

        return ticks
Exemplo n.º 8
0
    def translate(this, objs):
        ticks = []
        for obj in objs:
            tick = market_tick()
            tick.time = long(obj[0])
            tick.timezone_offset = this.timezone_offset
            tick.open = float(obj[3])
            tick.high = float(obj[2])
            tick.low = float(obj[1])
            tick.close = float(obj[4])
            tick.volume = float(obj[5])
            tick.amount = 0.0
            tick.count = 0.0
            tick.period = this.period

            ticks.append(tick)

        return ticks
Exemplo n.º 9
0
 def translate_rest(this, key, symbol):
     if key == 'huobi':
         url = "https://api.huobi.pro/market/history/kline?peroid=1min&size=60&symbol=%s" % (symbol)
         rest = this.http_request_json(url, None)
         if not rest or not rest.has_key('data'):
             this.validation_logger.error('validation cannot get response from huobi (%s)' % symbol)
             return None
         ticks = []
         for obj in rest['data']:
             tick = market_tick()
             tick.time = long(obj['id'])
             tick.open = float(obj['open'])
             tick.close = float(obj['close'])
             tick.low = float(obj['low'])
             tick.high = float(obj['high'])
             tick.amount = float(obj['vol'])
             tick.volume = float(obj['amount'])
             tick.count = float(obj['count'])
             ticks.append(tick)
         return ticks
     if key == 'binance':
         url = "https://api.binance.com/api/v1/klines?symbol=%s&interval=1m&limit=60" % (symbol)
         rest = this.http_request_json(url, None)
         if not rest or not isinstance(rest, list):
             this.validation_logger.error('validation cannot get response from binance (%s)' % symbol)
             return None
         ticks = []
         for obj in rest:
             tick = market_tick()
             tick.time = long(obj[0] / 1000)
             tick.open = float(obj[1])
             tick.close = float(obj[4])
             tick.low = float(obj[3])
             tick.high = float(obj[2])
             tick.amount = float(obj[7])
             tick.volume = float(obj[5])
             tick.count = float(0)
             ticks.append(tick)
         return ticks
     if key == 'gateio':
         url = "http://data.gateio.io/api2/1/candlestick2/%s?group_sec=60&range_hour=1" % (symbol)
         rest = this.http_request_json(url, None)
         if not rest or not isinstance(rest, dict):
             this.validation_logger.error('validation cannot get response from gateio (%s)' % symbol)
             return None
         ticks = []
         for obj in rest["data"]:
             tick = market_tick()
             tick.time = long(obj[0])/1000
             tick.volume = float(obj[1])
             tick.close = float(obj[2])
             tick.high = float(obj[3])
             tick.low = float(obj[4])
             tick.open = float(obj[5])
             tick.amount = 0.0
             tick.count = 0.0
             ticks.append(tick)
         return ticks
     if key == 'gdax':
         start = (datetime.datetime.utcnow() - datetime.timedelta(minutes = 60)).strftime('%Y-%m-%dT%H:%MZ')
         end = (datetime.datetime.utcnow()).strftime('%Y-%m-%dT%H:%MZ')
         url = "https://api.gdax.com/products/%s/candles?start=%s&end=%s&granularity=60" % (symbol, start, end)
         rest = this.http_request_json(url, None)
         if not rest or not isinstance(rest, list):
             this.validation_logger.error('validation cannot get response from gdax (%s)' % symbol)
             return None
         ticks = []
         for obj in rest:
             tick = market_tick()
             tick.time = long(obj[0])
             tick.open = float(obj[3])
             tick.high = float(obj[2])
             tick.low = float(obj[1])
             tick.close = float(obj[4])
             tick.volume = float(obj[5])
             tick.amount = 0.0
             tick.count = 0.0
             ticks.append(tick)
             #print(tick.time,tick.high,tick.low,tick.open,tick.low,tick.volume,)
         return ticks
     if key == 'okcoin':
         url = "https://www.okcoin.com/api/v1/kline.do?symbol=%s&type=1min&size=60" % (symbol)
         rest = this.http_request_json(url, None)
         if not rest or not isinstance(rest, list):
             this.validation_logger.error('validation cannot get response from okcoin (%s)' % symbol)
             return None
         ticks = []
         for obj in rest:
             tick = market_tick()
             tick.time = long(obj[0] / 1000)
             tick.open = float(obj[1])
             tick.high = float(obj[2])
             tick.low = float(obj[3])
             tick.close = float(obj[4])
             tick.volume = float(obj[5])
             tick.amount = 0.0
             tick.count = 0.0
             ticks.append(tick)
         return ticks
     if key == 'okex':
         url = "https://www.okex.com/api/v1/future_kline.do?symbol=%s&type=1min&contract_type=this_week&size=60" % (symbol)
         rest = this.http_request_json(url, None)
         if not rest or not isinstance(rest, list):
             this.validation_logger.error('validation cannot get response from okex (%s)' % symbol)
             return None
         ticks = []
         for obj in rest:
             tick = market_tick()
             tick.time = long(obj[0] / 1000)
             tick.timezone_offset = this.timezone_offset
             tick.open = float(obj[1])
             tick.high = float(obj[2])
             tick.low = float(obj[3])
             tick.close = float(obj[4])
             tick.volume = float(obj[6])
             tick.amount = float(obj[5])
             tick.count = 0.0
             ticks.append(tick)
         return ticks
     if key =='poloniex':
         time_second = int(time.time())
         time_second = time_second - time_second % 60 - 3600
         url = "https://poloniex.com/public?command=returnChartData&currencyPair=%s&start=%s&period=300" % (symbol, time_second)
         rest = this.http_request_json(url, None)
         if not rest or not isinstance(rest, list):
             this.validation_logger.error('validation cannot get response from poloniex (%s)' % symbol)
             return None
         ticks = []
         for obj in rest:
             tick = market_tick()
             tick.time = long(obj["date"])
             tick.open = float(format(obj["open"], '.12f'))
             tick.high = float(format(obj["high"], '.12f'))
             tick.low = float(format(obj["low"], '.12f'))
             tick.close = float(format(obj["close"], '.12f'))
             tick.volume = float(format(obj["quoteVolume"], '.12f'))
             tick.amount = float(format(obj["volume"], '.12f'))
             tick.count = 0.0
             ticks.append(tick)
         return ticks