最近HIVE的行情相当哇塞,于是我又升起了做一些自动交易的心思,不过想到之前写的傻叉机器人帮我赔了好多钱,这想法又冷却了。
(图源 :pixabay)
不过就算现在不做交易机器人,了解一下HIVE上的交易,也是不错的,说不定哪天我就搞出个能赚钱的交易机器人呢?!话说,HIVE自带稳定币(HBD)以及交易撮合功能,真的很适合用来做自动交易呢。
说到交易,最简单的操作,当然是使用内部市场了,在内部市场,我们可以买卖HIVE,查看内部市场当前买单&卖单,查看历史成交(Trade History),查看自己当前挂单(Open Orders)。其实内部市场大家应该都会用,这里就不再赘述了。
除了内部市场,我们还可以通过命令行钱包来进行交易,在交易方面,命令行钱包提供如下功能:
create_ordercancel_orderget_open_ordersget_order_book其实无论是内部市场上的操作,还是命令行钱包的操作,最终都是通过API来查询、广播交易信息来实现的。
我以前曾经写过两篇文章,介绍limit_order_create 以及 limit_order_create2以及查看(get_open_orders)与取消订单(limit_order_cancel),可以参考一下。
不过你知道嘛?订单的成交(fill_order)也是大有说法呢!fill order是啥意思呢?简单地说,可以理解成订单部分或者全部成交。
而无论是内部市场,命令行钱包,或者API进行操作,订单成交都是有两种方式:
比如说,当前HIVE价格大概是0.35 HBD,那么我创建一个HIVE卖单,价格定为0.38,那么这个订单是不会马上成交的,会进入到订单薄等HIVE价格上涨被人吃掉,这就是Maker。
同样以当前价格为例(0.35 HBD),我创建一个HIVE卖单,价格定为0.3,那么这个订单会瞬间匹配订单薄中的部分挂单,然后部分或者全部成交。那么,这个过程中,我的角色就是Taker。
通过上边的例子,也不难看出,Maker还是Taker,取决于挂单,还是吃单,与是买还是卖无关。
那么在fill_order中,是如何体现出来哪个是Maker,哪个是Taker呢?其实每当订单被全部或者部分被撮合,都会产生一个VOP(Virtual Operations):VOFillOrders。
比如下面这个就是我使用命令行钱包交易时产生的一个VOFillOrders
这里边用到了current_owner、current_pays、open_owner、open_pays等字段,那么分别代表什么意义呢?
我在libraries/protocol/include/hive/protocol/hive_virtual_operations.hpp中找到这段代码:
也就是说current_owner就是Taker,而open_owner就是Maker啦。
以上边那个VOFillOrders为例,简单解释就是,我作为Taker,吃掉了teamsmooth-mm的一部分挂单,我付出250个HBD,得到了920.329个HIVE。
计算一下价格,这笔订单相当于我以略低于0.272 HBD的价格,买到了920.329个HIVE,哇咔咔,按现在的价格我是赚了呢。
(图源 :pixabay)
所以,对于HIVE的交易而言,或者说对于所有的交易而言,是Maker还是Taker并不重要,重要的是赚钱而不是亏钱。(好吧,其实我赚钱的交易寥寥无几)
不过有些交易所可能会Maker和Taker采取不同的交易费费率,所以,多了解一下这方面的内容,也不是完全没有用处。
今天就啰嗦到这里了,你学废了嘛?