BitMEX已经成为了虚拟货币杠杆交易的首选平台,但其API交易限制严格,让人十分困扰。本文主要分享在FMZ量化交易平台实盘中API使用的一些技巧,主要针对做市策略。
1.BitMEX的特点
最显著的优势是交易活跃,特别是比特币永续合约,每分钟交易额常常超过百万甚至千万美元;BitMEX挂单交易后有返佣,虽然不高,但任吸引了大批做市交易者,所以买一卖一深度极佳,常常在百万美元以上;由于买一卖一积累的深度,所以交易价格常常在最小变动单位0.5美元上下波动。
2.BitMEX API频率限制
REST API 的请求频率限于每5分钟300次。 相当于1秒一次,这个限制对比其它交易平台可以说非常严格。超出限制后,会提示’Rate limit exceeded’,如果继续超出限制,IP可能被禁用一小时,在短时间内的多个禁用将导致禁用一周。对每个 API 的请求,BitMEX将返回标头数据,标头数据来查看当前的剩余的请求次数,事实上,如果API使用得当,是不会超出频率限制,一般不用检查。
3.使用websocket获取行情
BitMEX REST API 限制比较严格,官方推荐多用websocket协议,并且推送的数据类型比一般的交易所要多。具体使用要注意以下几点:
–深度数据推送时间长了会出现误差,和真实深度对应不上,估计是深度变化太多,推送有遗漏,但一般情况下由于流动性极佳,订阅ticker或trades即可 –订单详情推送遗漏很多,几乎不可用。 –账户信息推送会有明显延时,最好使用REST API确认。 –在行情波动大时,推送延时会达到几秒钟。 –以下代码为使用websocket协议,实时获取行情和账户信息,主要针对做市策略编写。具体使用需要在main()函数里执行。
完整文章和代码可继续到知乎查看:https://zhuanlan.zhihu.com/p/54881870
wufuhao100w 想问问,一行代码,比如一个GetTicker就算一次请求吗?那很容易超出限制啊,有没有办法让一次请求就返回行情、深度、订单等数据的合集,然后自己再另行解析呢?
诺女也 知乎上文章中,第四段《下单技巧》中,这么一句“可以根据仓位变化或修改订单失败辅助判断订单状态。” ,我有点疑惑,我的目的,是解决双向挂两个单的做市时,如何尽快对已经完成的订单进行补单。 如果是双向挂相同数量的单,可能两个单都完成了,那么仓位变化就无法作为判断依据。而修改订单只发生在需要修改的时候,一直挂着单,我为啥要修改呢?一但修改,我的订单难道不需要重新排队吗?
兔巴哥 老大,运行到获取签名那行var signature = exchange.HMAC("sha256", "hex", "GET/realtime" + expires, "{{secretkey}}")报错:Error: Uncaught ReferenceError: Exchange_HMAC is not defined at main (__FILE__:41),前面已经添加了API ID了
发明者量化-小小梦 赞~顶
wufuhao100w 好的吧
小草 用websocket ,行情限制应该没有这么严格,自己测试下
小草 只是为了减少API访问次数
兔巴哥 托管者重新下载安装了,也一样
小草 更新托管者