在之前的几篇文章中,我们简单介绍了如何安装python-bitshares 、python-bitshares的钱包相关操作、BitShares类以及Account类。
详情可以参考文末的参考链接。
(图源 :pixabay)
这节我们来继续学习python-bitshares 。
Market类
bitshares中最激动人心的特点是啥,我个人认为无疑就是去中心化交易所了,在这个市场你可以交易很多资产,和中心化交易所相比,交易都是由bitshares自动撮合完成的,公开透明。无需担心交易所搞鬼,侵吞你的资产。其实还有很多特性和有点,但是我水平有限,理解还不够深入,就不多加评论了,大家自己去慢慢发掘。
好啦,既然bitshares的交易所这么牛叉,我们来看看用python-bitshares咋玩。
创建实例
我们可以使用以下代码创建Market实例
from bitshares.market import Market
market = Market("BTS:CNY")
其中"BTS:CNY"
为我们指定的市场。前边BASE
, 后边QUOTE
,亦即以BTS为基础的CNY报价。
其中市场交易对可以已如下方式指定(三者效果相同):
base:quote
以:
分隔base/quote
以/
分隔base-quote
以-
分隔
查看报价
创建Market类实例之后,我们就可以随时查看市场报价了
from pprint import pprint
from bitshares.market import Market
market = Market("BTS:CNY")
pprint(market.ticker())
有没有发现,其实获取的信息和我们公众号获取的一样
所以你要仅仅想查个行情啥的,用我们公众号就好啦:)
获取24小时内的交易量
除了报价以外,还有个功能是获取24小时内的交易量
from pprint import pprint
from bitshares.market import Market
market = Market("BTS:CNY")
pprint(market.volume24h())
其实ticker信息中已经包含了交易量信息,但是bitshares还设计了这个API,估计是为了访问快速吧?我瞎猜的。😀
获取市场订单信息/orderbook
以下代码获取市场当前订单信息
from pprint import pprint
from bitshares.market import Market
market = Market("BTS:CNY")
pprint(market.orderbook(5))
我们可以通过指定limit参数,来返回指定数量的订单信息,示例中我指定为5。
获取历史成交信息
可以用history获取账户信息,参数定义如下:
from pprint import pprint
from bitshares.market import Market
market = Market("BTS:CNY")
pprint(market.trades(5))
我们同样可以通过指定limit参数来限制返回记录的个数。
除了获取整个市场的历史交易信息以外,我们还可以获得指定账户的历史交易信息,方法定义如下:
def accounttrades(self, account=None, limit=25):
我测试了一下,返回为空,看了一下代码,它是使用get_fill_order_history
API 获取所有的撮合订单信息,再按用户筛选出属于对应用户的订单。此处有很明显的BUG!
另外还有一个
accountopenorders
方法,个人认为和Account类的openorders属性重复。
如何买卖对应资产
上述内容,我们介绍了如何使用Market类获取市场的各种信息。接下来则是激动人心的时刻了,亦即如何使用Market类下单。
buy方法
我们可以使用buy
方法来挂买单:
from pprint import pprint
from bitshares.market import Market
market = Market("BTS:CNY")
market.buy(1.00001, 2, account='xxxxx')
挂单成功了,不过现在以这个价位挂单,想买到BTS,那无异于痴心妄想。
sell方法
用法和buy方法大同小异啦
from pprint import pprint
from bitshares.market import Market
market = Market("BTS:CNY")
market.sell(2.00001, 2, account='xxxx')
cancel方法
除了能挂买单、卖单以外,取消订单功能也很重要。
cancel方法 用于取消订单。
from pprint import pprint
from bitshares.market import Market
market = Market("BTS:CNY")
market.cancel(['1.7.42839275'], 'xxxx')
查看账户活动记录,可以发现订单取消成功。
总结
Market类可以用于获取bitshares交易所指定交易对的市场信息,也可以用来挂买单卖单以及取消订单。强大的不要不要的。
感兴趣的,自己去体验一下吧,写不动了,本文就此打住啦。
sorry i can't relate....
非常感谢您的更新,共享bitshare程序,祝你好运 @oflyhigh
My translation is less supportive of your writing .. But I think your writing is very interesting friend. I upvote 100%
非常感谢您分享信息。成功和祝福
Good job
awesome tutorial , on python , will try and see if it works
I loved your tutorial more than me that I am learning Python
感谢您的信息
技术大牛
Come and learn how AI processes images :)
请问:取消订单,程序怎么获取到挂单的单号?
我用这个测试时候,不值得为什么,提示钱包锁定。
from pprint import pprint
from bitshares.market import Market
market = Market("BTS:CNY")
market.buy(0.1, 1, account="bitw002")
错误信息如下:
参考这个:
https://steemit.com/python-bitshares/@oflyhigh/3ab1oc-python-bitshares
非常感谢!
问题解决了!
同时我还找到了这个链接,希望给后来查阅的人提供帮助
http://python.usyiyi.cn/sources/pythonbitshares/latest/index.html#document-market
bitshares中是不是没办法提交市价单啊