测试报告
数字资产合约交易平台系统性能测试报告
1.数字资产合约交易蓬勃发展
合约交易无疑是整个数字资产市场近期最火热的主题,不仅传统金融机构对此青睐有加,CME在2017年便推出了比特币合约,而且背靠洲际交易所的Bakkt也在今年9月正式开盘交易。此外,也有越来越多的数字资产交易平台开始布局合约业务,CoinGecko的统计显示,提供数字资产合约交易的平台已有25家,而在7月份还只有6家,目前的合约市场日交易总量已达180亿美元。
从未平仓合约量来看,BitMEX超过10亿美元,遥遥领先,其次是OKEx,接近8亿美元;从交易量来看,OKEx、Huobi、Bitmex均突破30亿,其中OKEx接近40亿美元,综合来看头部几家断层明显。
数据来源:CoinGecko
当前市场上,既有BitMEX、Deribit这样专注合约的平台,也有像Binance这样从现货交易起家继而进入合约市场的玩家。已经有非常多关于产品设计层面的讨论,而对于交易平台而言,交易系统才是一切的根本,系统性能是决定用户交易体验的基础。随着越来越多的交易者,包括更多的专业交易员进入数字资产的市场,无论交易频率还是交易策略的复杂性均有较大幅度提升,对于平台而言都到了比拼硬实力的阶段。接下来我们将会通过真实的测试,来观察一些具有代表性的平台,其系统性能究竟如何?
2.关于交易平台的系统性能测试
对于系统而言,高并发和低延时是两个重要的性能,由于并发量的情况难以通过外部渠道测量,本次测试的重点是系统的交易延时情况。
链塔研究团队选择了五家具有代表性的合约交易平台:BitMEX、Deribit、OKEx、HuobiDM、Binance Futures,其中BitMEX是老牌的合约交易,一直保持最高的市场份额;Deribit是2016年便开始专注于衍生品的平台,有交割合约、永续合约和期权产品;OKEx具有丰富的产品种类,其合约产品涵盖9个币种,交易量和交易深度都很有优势;而Huobi与Binance则是两家现货交易活跃的平台,分别在去年底今年初推出了自己的合约服务。
为避免外部因素的干扰,我们将在统一的环境中对五个平台进行测试:
注:①在选择服务器所在地时,首先排除了交易平台服务器所在地,如香港(OKEx)、日本(Binance)等,其次排除了美国等因服务限制而无法进行测试的国家和地区。最终选择了新加坡。新加坡是全球金融中心,有良好的网络基础设施,对于数字资产交易有着相对宽松的法律环境,五家平台对该地区都没有服务限制。
②我们用真实的资金账户进行挂单,由于研究目的只是探测系统的反应延时,并不需要真实成交,所以挂单价会与实时成交价有一定的距离。
在前期API搭建过程中,OKEx与Binance Futures的官方文档内容全面且清晰,利用SDK搭建API过程十分便捷,但由于Binance Futures官方未开放下单和撤单的推送权限,导致最终只拿到1个测试指标(to ACK);Huobi DM在GITHUB上SDK文件过多,且未有官方说明,无法明确哪个是官方SDK,在官方群进行询问后解决;Deribit提供的官方SDK缺失websocket,导致测试中通过自行封装websocket后才完成API搭建,消耗了大量时间;BitMEX因官方提供的SDK包存在问题未能成功对接,与官方通过邮件沟通也并未获得有效解答,后续针对官方SDK进行了代码修改才成功对接,搭建过程耗时最久。
3. 测试结果的分析
经过连续24h的挂单测试,链塔研究团队获得了5家平台的数据,根据我们的挂单策略,理论上每个指标应该获得4320个数据,但在实际测试中,会出现系统监听不到的个别情况,而导致一定的数据缺失。此外,Bitmex对高频低成交的挂单情况有一定的限制,我们在测试中收到了平台的提醒邮件,而其他平台没有出现这种情况。最终我们的样本情况如下:
3.1 To ACK
To ACK衡量的是用户下单请求到系统响应的时间延迟,也就是订单到达柜台的时间。从样本分布来看,五家平台的To ACK指标都呈现出尖峰长尾的形态,但分布差异也很显著。
从频率密度最大的样本取值范围来看,BitMEX集中在170-200毫秒,Deribit在160-200毫秒,OKEx是50-100毫秒,Huobi在150-200毫秒,Binance在80-100毫秒。
从极端值分布来看,BitMEX和Deribit的尾部相对较厚,从200-500毫秒均有大量的样本数据,OKEx、Huobi以及Binance的尾部极端数据比较稀薄,但Binance在400-450之间有显著的增加。
从平均值与中位数来看,OKEx
从极端情况来看,OKEx的优势更加显著,95%的下单请求会在79毫秒内得到相应,而其他几家平台均只有不到5%的订单延迟在79毫秒以内,尤其BitMEX与Deribit的极端值显著大于其他几家,极端情况出现的概率也更高。币安相比于火币,虽然平均而言延迟更低,但币安的方差更大,系统延时的上下浮动的范围更大。
3.2 To Live
To Live衡量的用户下单到系统把用户的单挂到交易深度(OrderBook)上面的时间,几家平台的性能差异显著。
BitMEX呈现出了双峰的形态,分别集中在180毫秒左右和250毫秒左右,整个尾部也是呈现了厚尾的情况,从300-1000毫秒都有比较均匀的样本数据被观测到。Deribit的样本大部分集中在170-200毫秒这个非常小的区间里,在200-500毫秒也连续有观测值,500毫秒以上有断断续续的观测值。OKEx的样本集中在70-150毫秒,尾部呈现急速衰减,在500毫秒之后只有极个别的观测结果。Huobi的样本集中在300-400毫秒,之后也呈现缓慢衰减的情况。
平均来看,OKEx的延迟最低,从用户发出下单请求到订单被挂在交易深度上,平均只需要100毫秒左右,而Huobi与BitMEX几乎为OKEx的4倍。
从极端情况来看,OKEx上95%的订单会在142毫秒之内被挂在order book上,优于其他3个平台最好的5%的情况。BitMEX与火币的平均水平都较差,但火币的浮动范围更小,99%的订单在1000毫秒以内会挂到交易深度上,而BitMEX接近20%的订单需要超过1000毫秒。
Deribit测得的To Live数据比To ACK要低,有悖于常识。我们分析,可能与其系统设计有关,订单未到达交易深度,便发出了返回数据。
3.3 To Cancel
To Cancel指标是用于衡量发出cancel request 到订单websocket cancelled的时间延迟。从样本分布来看,BitMEX的大部分样本集中在180-200毫秒的区间里,而在200-1000毫秒连续有较为平均的观测值。Deribit集中在170-180毫秒的狭窄区间里,尾部样本的占比低于BitMEX。OKEx整体集中在100-200毫秒之间,在200-400毫秒内有部分观测值,而只有极个别的样本落在大于400毫秒的区间里。火币呈现出多峰的形态,随后逐渐衰减。
在撤单指令的执行上面,OKEx依然是优于其他平台的,95%以上的订单都会在发出撤单请求之后200毫秒以内被撤销,BitMEX大概有50%的订单能达到这个水平,而Huobi最好的情况也需要242毫秒。
OKEx出现了一个极大值,125572毫秒,我们检查了数据,发现这个极端取值只有1个样本,而次于其的最大值为2888。由于没有确定这个极端情况的原因,我们没有将其剔除。若剔除这个极端值,okextocancel的平均值将会是148毫秒。
4 总结
我们经过这次测试获得五家平台的样本数据,对系统延时性能有更加直观的展示。
注:数值越低,延迟越低,表明系统性能越好。
BitMEX与OKEx整体交易量水平相当,但在系统延时问题上,无论挂单还是撤单,OKEx的系统反应都显著的优于BitMEX;Deribit整体的挂单与撤单都属于中等水平;Huobi的挂单延迟处于中等水平,而撤单延迟最高;Binance由于权限问题只能获得一个指标to ACK,虽然样本数据较好,但还不具有充分的说服力。
我们通过这次测试,也对各家交易所的API易用性也有了真实的体验,OKEx在搭建过程中比较友好,而其他的平台在接入API过程中都或多或少遇到了一些问题。数字资产合约交易的市场会吸引越来越多的专业交易员,对系统性能及API的需求也会更高,这个市场的竞争也才只拉开序幕,希望每个平台都能持续提升自己的系统,为用户带来更好的交易体验。