def __init__(self):
     self.r = ConnectRedis()
     self.hb = huobipro()
     # 获取交易界面上的交易对,
     # 接口返回信息
     self.response_symbols = None
     # 交易所目前的市场  3/2
     self.markets = None
     # 交易所支持的市场名称   ETH/BTC
     self.marketNames = None
     # 市场id与市场name映射s
     self.marketId_ccxtsymbol_mapping = None
     self.getMarketInfos()
     print(self.marketNames)
    def __init__(self):
        # 从coinbase获取法币的价格
        self.r = ConnectRedis()
        self.pool = multiprocessing.dummy.Pool(8)
        self.bt = bytetrade()
        # 获取交易界面上的交易对,
        # 接口返回信息
        self.response_symbols = None
        # 交易所目前的市场  3/2
        self.markets = None
        # 交易所支持的市场名称   ETH/BTC
        self.marketNames = None
        # 市场id与市场name映射
        self.marketId_ccxtsymbol_mapping = None
        self.getMarketInfos()

        self.dataReady = False
        self.refExchanges = []
        self.tarExchange = TARGETEXCHANGE
        for v in PAIRS.values():
            if v['mode'] == 'refDirect':
                if v['exchange'] not in self.refExchanges:
                    self.refExchanges.append(v['exchange'])
            if v['mode'] == 'refDouble':
                if v['basePair']['exchange'] not in self.refExchanges:
                    self.refExchanges.append(v['basePair']['exchange'])
                if v['quotePair']['exchange'] not in self.refExchanges:
                    self.refExchanges.append(v['quotePair']['exchange'])
        super(Quote, self).__init__()
        # 自动生成的价格
        self.generatedPrice = {}
        # 币对参考价
        self.refPrice = {}
        # 币对最后价格
        self.lastPrice = {}
        # 最后成交数据
        self.lastDeal = {}
        # 最后ticker数据
        self.lastTicker = {}
        # 最后深度数据
        self.lastDepth = {}
        self.marketData = {}
        self.tickerSymbols = {}
        self.tickLock = threading.Lock()
        self.dealLock = threading.Lock()
        self.depthLock = threading.Lock()
Exemplo n.º 3
0
    def resolve_symbols(self, info, symbol_name=None, currency=None, **kwargs):

        key_bytetrade = "price_server_bytetrade1"
        key_huobipro = "price_server_huobipro1"
        key_coin_base = "coinbase_currency_price1"
        # key_path_price = "price_server_path_price1"

        r = ConnectRedis()

        bytetrade_price = r.hgetall(key_bytetrade)
        huobi_price = r.hgetall(key_huobipro)
        coinbase_price = r.hgetall(key_coin_base)
        # path_price = r.hgetall(key_path_price)

        calprice = CalPrice(bytetrade_price, huobi_price, coinbase_price)

        if currency:
            # 传来的法币是一个字符串  用,分割
            temp = currency.split(",")
            currency_list = [i.replace(" ", "") for i in temp]
        else:
            # 没传就返回所有的法币价格
            currency_list = CURRENCY_LIST

        if symbol_name:
            # 如果传了市场的列表 分割
            temp = symbol_name.split(",")
            symbol_list = [i.replace(" ", "") for i in temp]
        else:
            symbol_list = SYMBOL_LIST
            # symbol_list = MARKET_LIST
            # all 就是我们交易所目前支持的所有的币对
            # 返回所有
        t1 = time.time()
        res = [
            create_symbol_obj(i, currency_list, calprice) for i in symbol_list
        ]
        print(time.time() - t1)
        return res
    # 开始的时候将原来的键删掉,构建新的  一旦加了新的交易对,重启程序

    def push_bear():
        PUSH_BEAR_KEY = "11970-ba5f3d1644a4bd880a04ebdef3560f69"
        import requests
        url = "https://pushbear.ftqq.com/sub"
        data = {
            "sendkey": PUSH_BEAR_KEY,
            "text": "PriceServer——GraphQL",
            "desp": "huobipro数据获取重启"
        }
        headers = {
            "Accept":
            "application/json, text/javascript, */*; q=0.01",
            "Accept-Encoding":
            "gzip, deflate, br",
            "User-Agent":
            "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0"
        }
        requests.post(url, data=data, headers=headers)

    # push_bear()
    r = ConnectRedis()
    # r.delete("price_server_huobipro")

    # 用来维护兑换法币的redis hash
    q = Quote()
    q.get_price_by_rest()
    #
    q.subscribeAllTicker()  # 维护各个marketId的实时价格
 def __init__(self):
     # 从coinbase获取法币的价格
     self.r = ConnectRedis()
     self.coinbase_api = COIN_BASE_URL + "v2/assets/summary"
     self.pool = Pool(20)
Exemplo n.º 6
0
 def __init__(self, bytetrade_price, huobi_price, coinbase_price):
     # 初始化图
     self.r = ConnectRedis()
     self.bytetrade_price = bytetrade_price
     self.huobi_price = huobi_price
     self.coinbase_price = coinbase_price