如何查看币安加密货币的汇总清算?

Posted

技术标签:

【中文标题】如何查看币安加密货币的汇总清算?【英文标题】:How to view aggregated liquidations for cryptocurrencies from Binance? 【发布时间】:2021-08-03 04:27:32 【问题描述】:

在这些网站(https://coinalyze.net/ethereum-classic/liquidations/、BTC/USDT)上,我可以将以下指示添加到 grpah [LiquidationsLong LiquidationsShort LiquidationsAggregated Liquidations COIN-margined ContractsAggregated Liquidations STABLECOIN-margined Contracts]。

汇总清算 = 币本位合约清算 + 稳定币保证金合约的清算转换为美元。为了 目前仅包括 BTC/USD 和 BTC/USDT 合约。见 指标选项,您可以选择/取消选择单个合约。


=> 主要问题是如何从 Tradingview 或 Binance 等交易所获取数据流以进行加密货币清算。

我已尝试将Aggregated liquidations 或只是Liquidations 添加到我在https://www.tradingview.com 上的图表中,用于期货下的加密货币。我找不到它的 pine-script 代码或它的内置指示器,所以我认为数据是私有的,对我来说是死路一条。

是否可以从Binance 或其他交易所获取加密货币清算的数据流?或将Aggregated liquidations 添加到 TradingView 的加密货币图表中?

【问题讨论】:

【参考方案1】:

我从这里开始:

https://binance-docs.github.io/apidocs/futures/en/#liquidation-order-streams

https://github.com/Binance-docs/Binance_Futures_python/blob/master/binance_f/model/liquidationorder.py

您必须安装以下软件包:pip install websocket-client websocket


#!/usr/bin/env python3

import websocket


class Liq:
    def __init__(self):
        self.socket = "wss://fstream.binance.com/ws/!forceOrder@arr"
        self.ws = websocket.WebSocketApp(self.socket, on_message=self.on_message, on_close=self.on_close)
        self.symbol: str = ""
        self.order_quantity = 0
        self.event_time: int = 0
        self.average_price: float = 0.0
        self.side = ""
        self.price: float = 0.0
        self.order_last_filled_quantity = 0.0
        self.order_filled_accumulated_quantity = 0
        self.order_trade_time = 0

    def print_result(self):
        amount = int(self.order_quantity * self.average_price)
        print(f"==> symbol=self.symbol")
        print(f"==> side=self.side | ", end="")
        if self.side == "BUY":
            print("shorts liquadated")
        else:
            print("longs liquadated")

        print(f"==> order_quantity=self.order_quantity")
        print(f"==> event_time=self.event_time")
        print(f"==> order_last_filled_quantity=self.order_last_filled_quantity")
        print(f"==> order_filled_accumulated_quantity=self.order_filled_accumulated_quantity")
        print(f"==> order_trade_time=self.order_trade_time")
        print(f"==> price=self.price")
        print(f"==> average_price=self.average_price")
        print(f"==> liq_amount=amount")
        print("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-")

    def on_message(self, ws, message):
        """Fetch liquidation Order Streams.

        __ https://binance-docs.github.io/apidocs/futures/en/#liquidation-order-streams
        """
        for item in message.split(","):
            item = item.replace("", "").replace("", "").replace('"', "").replace("o:s:", "s:")
            if "forceOrder" not in item:
                _item = item.split(":")
                if _item[0] == "E":
                    self.event_time = int(_item[1])
                elif _item[0] == "s":
                    self.symbol = _item[1]
                elif _item[0] == "S":
                    self.side = _item[1]
                elif _item[0] == "q":
                    self.order_quantity = float(_item[1])
                elif _item[0] == "p":
                    self.price = _item[1]
                elif _item[0] == "ap":
                    self.average_price = float(_item[1])
                elif _item[0] == "l":
                    self.order_last_filled_quantity = _item[1]
                elif _item[0] == "z":
                    self.order_filled_accumulated_quantity = _item[1]
                elif _item[0] == "T":
                    self.order_trade_time = _item[1]

        self.print_result()


    def on_close(self):
        print("closed")


liq = Liq()
liq.ws.run_forever()

示例输出,将打印所有 liquadated 对:

==> symbol=KEEPUSDT
==> side=SELL | longs liquadated
==> order_quantity=4705.0
==> event_time=1634474643639
==> order_last_filled_quantity=278
==> order_filled_accumulated_quantity=4705
==> order_trade_time=1634474643630
==> price=0.9877
==> average_price=1.0
==> liq_amount=4705
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
==> symbol=FTMUSDT
==> side=BUY | shorts liquadated
==> order_quantity=1458.0
==> event_time=1634474896201
==> order_last_filled_quantity=1240
==> order_filled_accumulated_quantity=1458
==> order_trade_time=1634474896197
==> price=2.257972
==> average_price=2.236581
==> liq_amount=3260
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

之后,您可以将此结果存储在 mongadb 之类的数据库中。

【讨论】:

【参考方案2】:

简短的回答是否定的,这是不可能的,因为 Tradingview 不提供该级别的数据。像 coinalyze 这样的网站正在使用 Tradingview 插件并提供自己的数据流进行清算。

要在 Trandingview 平台本身上创建等效项,有一些解决方法,但并不理想。它不是实时数据,您必须自己手动更新数据数组。您还必须自己获取清算数据。

您必须记下第一个数据条目的时间戳,并将清算数据解析为一组逗号分隔值。

您可以从那里使用array.from()将其“导入”到脚本中

start_timestamp = timestamp(2021, 7, 9, 0, 0, 0)

var float[] a_longLiqs = array.from(17, 13458.4, 87453.56, 2345.23 , 23457.983, 353, .... etc)

var int index = na
var bool started = false
float longLiqs = na

if time == start_timestamp
    started := true
    index := 0
else if time > start_timestamp
    index += 1

if started and index < array.size(a_longLiqs)
    longLiqs := array.get(a_longLiqs, index)

plot(longLiqs)

此时,您已经有效地将数组转换为时间序列变量longLiqs,您可以像使用其他任何变量一样使用它,例如closevolume 等。但是您只会获得新数据当您手动将其添加到数组中时。

获取聚合数据本身就是一个过程。您必须使用交易所的 API。

例如: https://www.bitmex.com/api/explorer/#/Liquidation

https://bybit-exchange.github.io/docs/inverse/#t-query_liqrecords

github 上已有相当多的 js 和 python 项目,我建议你从那里开始而不是重新发明***。例如,cryptofeed py 包可能是一个不错的起点,因为它似乎支持通过多个交易所提取清算数据。

https://pypi.org/project/cryptofeed/

https://github.com/bmoscon/cryptofeed/blob/master/docs/callbacks.md

一旦你有了数据,你就必须自己聚合它并像我上面提到的那样解析它,以便能够将它插入到一个松树数组中。

或者,如果您愿意为数据付费,也有付费数据提供商可能会更容易一些。您可能仍需要对其进行聚合和解析,但您只需要处理一个 API,而不必从每个交换中管理它。

这是我发现的似乎提供汇总清算数据的一个:https://www.cryptometer.io/api-doc/

【讨论】:

这就是我要问的问题,我如何/在哪里可以获得与清算数据流相关的数据数组信息。 用数据源信息更新了答案 www.cryptometer.io/api-doc/ 似乎不是免费的。我希望为此找到一种免费的方式。 不,来自 cryptometer.io 的数据不是免费的,但可能是最快和最简单的方法。据我所知,没有免费的聚合来源。如果您不想为此付费,则必须从每个交易所分别提取数据来构建自己的数据。 这就是我要寻找的问题,比如如何从 Binance 等每个交易所提取数据?如果我能拉,它很容易构建数据。

以上是关于如何查看币安加密货币的汇总清算?的主要内容,如果未能解决你的问题,请参考以下文章

中国数字资产交易平台官网怎么交易的

点宽专栏央行发声:交易炒作加密货币?STOP!

用 Python 和币安 API 构建数字货币交易机器人

挖矿每年耗电比阿根廷一国还高,中国政府严打加密货币

加密市场指南:如何开发自己的加密数字货币-MasterDAX

“竞赛”加速:全球央行数字货币最新进展