交易系统的性能测试
对于交易类的系统而言,一个是它的稳定性,另一个则是它的高并发和低延时的性能,由于并发量的情况难以通过外部渠道测量,那么我们本次测试的重点是系统的交易延时情况。
现在我们选择了4家具有代表性的合约交易平台:Huobi、OKEx、Binance、KKUBEx?,本次KKUBEx也在其中。其主要目的就是为了让KKUBEx和几大头部流量交易所做出鲜明的对比,其中OKEx是最老的也是最开始从事合约的交易所,一直保持着比较高的市场份额;从2016年便开始专注于衍生品交易的平台,有交割合约、永续合约和期权产品,其合约产品涵盖多个币种,交易量和交易深度都很有优势;而Huobi与Binance则是两家现货交易活跃的平台,也分别推出了各自的合约交易。
那么我们将在统一的环境中对4个平台进行集中测试,接下来我们会通过数据对比分析出他们的性能到底如何:
A:我们在筛选服务器所在地的同时,首先排除了交易平台服务器所在地,如OKEx、Binance等,因为他们分别在中国的香港和日本,由于海底线路网络常受到抖动其影响,影响其网络的不稳定因素。其次排除了美国等因服务限制而无法进行测试的国家和地区。最终选择了新加坡。新加坡是全球金融中心,有良好的网络基础设施,对于数字资产交易有着相对宽松的法律环境,这4家交易所对该地区都没有服务限制。尤其KKUBEx本身就是在新加坡境内,受其政府支持的和颁发相关牌照的交易所。其特有的稳定性就高于其他几家交易所。
B:我们用真实的资金账户进行挂单,由于测试目的只是探测系统的反应情况,并不需要真实成交,所以挂单价会与实时成交价有一定的距离。在前期API搭建过程中,OKEx与Binance 的官方文档内容全面且清晰,利用SDK搭建API过程十分便捷,但由于Binance官方未开放下单和撤单的推送权限,导致最终只拿到1个测试指标(toack)。
3. 测试结果的分析
我们经过一段时间连续24h的挂单和交易测试,根据这4家平台的测试数据,和我们的挂单策略,理论上每个指标应该获得1万个数据,但在实际测试中,会出现系统监听不到的个别情况,而导致一定的数据缺失。此外,Huobi、OKEx对高频低成交的挂单情况有一定的限制,我们在测试中收到了平台的提醒邮件,而其他平台没有出现这种情况。最终我们的样本情况如下:
3.1 Toack测试反馈
Toack衡量的是用户下单请求到系统前端展示的时间,也就是订单到达软件交易界面的时间。从样本分布来看,4家平台的Toack指标都呈现出不同的的数值,分布有差异,但都相差不是很大。说明从Toack来看KKUBEx的软件性能也和和一线前三的交易所媲美。我们承认在有差距同时,但从测试数据中能够看出,还是高于市面绝大多少交易所的性能。从频率密度最大的样本取值范围来看,KKUBEx集中在50-120毫秒,OKEx是50-100毫秒,Huobi在150-200毫秒,Binance在80-100毫秒。从极端值分布来看,,Huob和OKEx的尾部相对较厚,从200-500毫秒均有大量的样本数据,OKEx、Huobi以及Binance的尾部极端数据比较稀薄,但Binance在400-450之间有显著的增加。
从平均值与中位数来看,OKEx<Binance<Huobi<KKUBEx,平均情况而言OKEx的延迟最低,从用户下单到系统响应的延迟只有50多毫秒,排名第二的Binance约为OKEx的两倍,而KKUBEx几乎为OKEx的2倍。从毫秒学的角度而言,对于这种差距。我们人类在感知上是无法感觉到差异。从极端情况来看,OKEx的优势更加显著,90%的下单请求会在80毫秒内得到相应,而其他几家平台均只有不到10%的订单延迟在80毫秒以内,尤其KKUBEx的极端值显著大于其他几家,极端情况出现的概率也更高。币安相比于火币,虽然平均而言延迟更低,但币安的方差更大,系统延时的上下浮动的范围更大。
3.2 To Live测试反馈
To Live衡量的用户下单到系统把用户的单挂到交易深度(OrderBook)上面的时间,几家平台的性能差异显著。
KKUBEx呈现出了双峰的形态,分别集中在180毫秒左右和250毫秒左右,整个尾部也是呈现了厚尾的情况,从300-1000毫秒都有比较均匀的样本数据被观测到。Binance的样本大部分集中在170-200毫秒这个非常小的区间里,在200-500毫秒也连续有观测值,500毫秒以上有断断续续的观测值。OKEx的样本集中在70-150毫秒,尾部呈现急速衰减,在500毫秒之后只有极个别的观测结果。Huobi的样本集中在300-400毫秒,之后也呈现缓慢衰减的情况。
平均来看,OKEx的延迟最低,从用户发出下单请求到订单被挂在交易深度上,平均只需要100毫秒左右,而Huobi与KKUBEx几乎为相差无几。
从极端情况来看,OKEx上90%的订单会在140毫秒之内被挂在order book上,优于其他3个平台最好的10%的情况。KKUBEx与火币的平均水平都相对落后一点点,但火币的浮动范围更小,99%的订单在1000毫秒以内会挂到交易深度上.Binance测得的To Live数据比Toack要低,有悖于常识。我们分析,可能与其系统设计有关,订单未到达交易深度,便发出了返回数据。
3.3tocancel测试反馈
以上2个部分的数据经过我们系统性的测试之后我们大概能看出,各项数据基本接近火币、ok、币安,那么tocancel的数据测试需要很长时间,期待下一期技术员给出数据,希望大家持续关注我们KKUBEx交易所最新动态。