使用python-bitshares 生成抵押排行榜

在昨天的帖子中,我们使用python-bitshares中Asset类的feeds属性生成了bitCNY的喂价列表。可是朋友问我,喂价列表有什么用啊?况且在微信公众号不是可以查喂价信息吗?

抵押排行榜

想想也是啊,对于我们小玩家而言,知道了喂价知道了自己的爆仓价,这就足够了,至于喂价列表,是大人物们才需要关注和关心的问题。如果说我们小人物还需要知道点啥,我想那一定是抵押排行榜了。因为即使喂价还没低到你的爆仓价,但如若你在抵押排行榜中比较靠前,嗯,你还是有被清算的风险。如果知道了抵押排行榜,我们就可以让自己排的靠后一些,让大户们在前边抵挡😀

原本在bitshares区块链浏览器中,是可以看到抵押排行榜的,不过现在我却找不到了。不知道是去掉了,还是说我没找对地方,不管了, 自己用python-bitshares 弄一个吧。

Python 代码

我们可以使用python-bitshares中的Asset类实现这个功能。

具体方法是使用Asset类的get_call_orders方法

简单的示例代码如下:

from bitshares import BitShares
from bitshares.asset import Asset
from prettytable import PrettyTable

node = "wss://bitshares-api.wancloud.io/ws"
limit = 20

bitshares = BitShares(node=node)
asset=Asset(asset="CNY", bitshares_instance=bitshares)
call_orders = asset.get_call_orders(limit=limit)

t = PrettyTable(["Borrower", "Collateral", "Debt", "Call_price", "Ratio"])
t.padding_width = 1
t.align["Borrower"] = "l"
t.align["Collateral"] = "r"
t.align["Debt"] = "r"

for item in call_orders:
        ratio = "{:.3f}".format(item['ratio'])
        t.add_row([
                str(item['account']['name']),
                str(item['collateral']),
                str(item['debt']),
                str(item['call_price'].invert()),
                ratio
        ])
print(t)

执行效果

运行效果如下:


拍拍我的小心脏,还好我不在名单里。

继续完善

我们已经获得了抵押排行榜,但是略有不足,比如我想看前二十名一共抵押出来多少CNY,上边是没有显示的。当然了, 我们可以调出计算器逐项累加,但是那不是傻吗?

于是我对代码进行了一些修改,让其显示累加CNY,效果如下:

前二十名才抵押出来200多万啊,为了安全起见,至少猫在5000W以后我会比较放心。

封面图源:https://pixabay.com

参考文档

H2
H3
H4
3 columns
2 columns
1 column
11 Comments