首页 > 世链号 > 使用数字货币交易所聚合行情接口构建多品种策略
发明者量化  

使用数字货币交易所聚合行情接口构建多品种策略

摘要:FMZ量化交易平台策略围观板块里面经常见到一些多品种策略,同时检测几十个甚至一个交易所全市场的行情。是如何做到的呢?并且需要如何设计呢?本篇文章带你一起来探讨如何使用交易所聚合行情接口构建多品种策略。

FMZ量化交易平台策略围观板块里面经常见到一些多品种策略,同时检测几十个甚至一个交易所全市场的行情。是如何做到的呢?并且需要如何设计呢?本篇文章带你一起来探讨如何使用交易所聚合行情接口构建多品种策略。列举币安和火币这两个交易所,查看交易所API文档,发现都有聚合行情接口:

 

行情接口

币安合约:

https://fapi.binance.com/fapi/v1/ticker/bookTicker

接口返回数据

 

火币现货币币:

https://api.huobi.pro/market/tickers

接口返回数据

 

但是,实际不是这样的,火币接口实际返回的结构是:

在处理接口返回的数据时需要注意。

 

构建策略程序框架

如何在策略中封装这两个接口,又如何处理数据呢?一起慢慢来看。先来写一个构造函数,用于构造控制对象。

使用FMZ的API函数HttpQuery函数发出请求,访问交易所接口。使用HttpQuery时需要使用异常处理try...catch处理接口返回失败等异常情况。看到这里有的同学可能会问:“交易所接口返回的数据结构各不相同,要怎么处理呢?用同样的处理方式肯定不行吧。”确实如此,不仅交易所接口返回的数据结构不同,就连返回的数据字段命名也不同。同样的一个意思可能是不同的命名。例如以上我们列举的接口。同样表达的意思是买一价格,在币安称为:bidPrice,在火币称为bid。

 

我们这里使用回调函数解决,把这些特殊处理的部分独立出来。所以上面这个对象初始化后,具体使用时就成了这样:(以下代码省略了构造函数createManager)

以币安期货监控这些合约:["BTCUSDT", "ETHUSDT", "EOSUSDT", "LTCUSDT", "ETCUSDT", "XRPUSDT"]

火币现货监控这些币币交易对:["btcusdt", "ethusdt", "eosusdt", "etcusdt", "ltcusdt", "xrpusdt"]为例子。

 

运行测试:

第一个交易所对象添加币安期货,第二个交易所对象添加火币现货

可以看到,这里把如何取接口返回的数据等操作使用回调函数进行不同交易所的特异化处理。

 

制定了行情获取,接下来可以制定账户资产获取,因为多品种策略,账户资产数据同样也要是多个的。好在交易所账户资产接口一般都是返回全资产数据。在构造函数createManager中添加获取资产的方法

 

同样由于交易所接口返回的格式,字段命名各不相同,这里也需要使用回调函数特异化处理。以火币现货,币安期货为例子,可以这样写回调函数:

 

运行具有获取行情、资产功能的策略框架

行情:

资产:

可以看到获取到行情数据后,可以处理数据计算各个品种的差价,监控多个交易对的期现差价。进而可以设计一个多品种的期现对冲策略。根据这样的设计方式,还可以扩展其它的交易所,有兴趣的同学可以动手试下~

免责声明
世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:msy2134。