def get_orderbook(self, market, exchange=None): client = self.clients[exchange] self.logger.debug("get orderbook %s %s" % (str(market), exchange)) #market = models.conv_markets_to(market, exchange) if exchange == exc.CRYPTOPIA: book, err = client.get_orders(market) if err: self.logger.error("error " + str(err)) else: book = models.conv_orderbook(book, exchange) return book elif exchange == exc.BITTREX: try: book = client.get_orderbook(market)["result"] book = models.conv_orderbook(book, exchange) return book except: self.logger.error("error fetching orderbook", exchange) elif exchange == exc.KUCOIN: try: ob = client.get_order_book(market, limit=20) book = models.conv_orderbook(ob, exchange) #timestamp return book except Exception: raise Exception elif exchange == exc.HITBTC: try: ob = client.get_orderbook(market) book = models.conv_orderbook(ob, exchange) return book except: self.logger.error("error fetching orderbook", exchange) elif exchange == exc.KRAKEN: r = client.get_orderbook(market) book = models.conv_orderbook(r, exchange) return book elif exchange == exc.BINANCE: try: ob = client.get_orderbook_symbol(market) book = models.conv_orderbook(ob, exchange) #self.logger.debug("book %s"%book) return book except Exception: raise Exception elif exchange == exc.BITMEX: bookdepth = 20 ob = client.market_depth(market, depth=bookdepth) #self.logger.debug("book %s"%ob) book = models.conv_orderbook(ob, exchange) return book elif exchange == exc.DERIBIT: book = client.getorderbook(market) #book = models.conv_orderbook(ob, exchange) return book
def get_orderbook(self, product_id, exchange): client = self.clients[self.session_user_id][exchange] if exchange == exc.DELTA: book = client.get_L2_orders(product_id) return book elif exchange == exc.BITMEX: bookdepth = 10 ob = client.market_depth(product_id, depth=bookdepth) book = models.conv_orderbook(ob, exchange) return book
import numpy import time import json import atexit import logging import threading import time import redis from archon.metrics import calc_mid_price from archon.model import models #from topics import * if __name__ == '__main__': try: abroker = BrokerService(setAuto=True, initFeeder=False) abroker.set_keys_exchange_file(exchanges=[exc.BITMEX]) book = abroker.orderbook(exc.BITMEX) book = models.conv_orderbook(book, exc.BITMEX) mid = calc_mid_price(book) print("bitmex mid", mid) pos = abroker.position(exc.BITMEX) #print (pos) print(pos[0]["currentQty"]) #oo = abroker.openorders(exc.BITMEX) #print (oo) except Exception as e: print("error ", e)