Exemplo n.º 1
0
 def parse_orderbook_response(cls, response, poloniex_currency_pair):
   validate_response(response, required_keys=['asks', 'bids', 'timestamp'])
   assert len(response['asks']) != 0, 'INVALID_VALUE: orderbook:asks should not be empty'
   assert len(response['bids']) != 0, 'INVALID_VALUE: orderbook:bids should not be empty'
   equity_pair = EQUITY_PAIRS.from_exchange_pair(poloniex_currency_pair)
   asks = map(lambda elem: {'price': float(elem[0]), 'volume': float(elem[1])}, response['asks'])
   bids = map(lambda elem: {'price': float(elem[0]), 'volume': float(elem[1])}, response['bids'])
   timestamp = int(response['timestamp']) * 1000
   return Orderbook('poloniex', equity_pair, asks, bids, timestamp)
Exemplo n.º 2
0
 def parse_orderbook_response(cls, response, binance_equity_pair):
     validate_response(response,
                       required_keys=['asks', 'bids', 'lastUpdateId'])
     assert len(response['asks']
                ) != 0, 'INVALID_VALUE: orderbook:asks should not be empty'
     assert len(response['bids']
                ) != 0, 'INVALID_VALUE: orderbook:bids should not be empty'
     equity_pair = EQUITY_PAIRS.from_exchange_pair(binance_equity_pair)
     asks = map(
         lambda elem: {
             'price': float(elem[0]),
             'volume': float(elem[1])
         }, response['asks'])
     bids = map(
         lambda elem: {
             'price': float(elem[0]),
             'volume': float(elem[1])
         }, response['bids'])
     timestamp = ts()
     return Orderbook('binance', equity_pair, asks, bids, timestamp)
Exemplo n.º 3
0
    def parse_orderbook_response(cls,
                                 response,
                                 okex_equity_pair,
                                 contract_type=None):
        validate_response(response, required_keys=['asks', 'bids'])
        assert len(response['asks']
                   ) != 0, 'INVALID_VALUE: orderbook:asks should not be empty'
        assert len(response['bids']
                   ) != 0, 'INVALID_VALUE: orderbook:bids should not be empty'
        equity_pair = EQUITY_PAIRS.from_exchange_pair(okex_equity_pair)

        # 만약 contract_type이 주어진 경우 선물에 대한 오더북이다.
        # 이 경우에는 equity_pair를 선물 포맷에 맞게 변형해서 넣어줘야 한다.
        if contract_type is not None:
            expiry_yymmdd = get_future_expiry_symbol(contract_type)
            equity_pair = 'f_{}_{}'.format(equity_pair, expiry_yymmdd)

        asks = sorted(response['asks'], key=lambda b: b[0])
        bids = sorted(response['bids'], key=lambda b: b[0], reverse=True)
        asks = map(lambda elem: {'price': elem[0], 'volume': elem[1]}, asks)
        bids = map(lambda elem: {'price': elem[0], 'volume': elem[1]}, bids)
        timestamp = ts()
        return Orderbook('okex', equity_pair, asks, bids, timestamp)