当前位置:首页 > 知识 >

数字货币交易所聚合行情接口实现多品种策略

FMZ量化交易平台策略围观板块里面经常见到一些多品种策略,同时检测几十个甚至一个交易所全市场的行情。那么如何实现这样的功能呢?本篇文章将介绍如何使用交易所聚合行情接口构建多品种策略。

我们以币安火币这两个交易所为例,查看它们的API文档,发现它们都有聚合行情接口: 币安合约:https://fapi.binance.com/fapi/v1/ticker/bookTicker 火币现货币币:https://api.huobi.pro/market/tickers

但实际上,火币接口返回的结构并不是我们预想的那样。在处理接口返回的数据时需要注意。

接下来,我们来看如何封装这两个接口并处理数据。我们可以先编写一个构造函数来构造控制对象。使用FMZ的API函数HttpQuery函数发出请求,访问交易所接口。使用HttpQuery时需要使用异常处理try...catch处理接口返回失败等异常情况。

由于交易所接口返回的数据结构和字段命名各不相同,我们可以使用回调函数解决这个问题。通过将特殊处理的部分独立出来,我们可以在对象初始化后,根据具体情况使用回调函数处理数据。

例如,我们可以监控币安期货合约:["BTCUSDT","ETHUSDT","EOSUSDT","LTCUSDT","ETCUSDT","XRPUSDT"]和火币现货交易对:["btcusdt","ethusdt","eosusdt","etcusdt","ltcusdt","xrpusdt"]。

然后我们运行测试,将第一个交易所对象添加币安期货,第二个交易所对象添加火币现货。可以看到,通过使用回调函数对接口返回的数据做特异化处理,我们成功获取到了行情数据。

接下来,我们可以开始设计获取账户资产的方法。由于是多品种策略,所以账户资产数据也需要是多个的。好在大多数交易所的账户资产接口都是返回全资产数据的。因此,我们可以在构造函数createManager中添加获取资产的方法。

同样地,由于交易所接口返回的格式和字段命名不同,我们也需要使用回调函数对其进行特异化处理。以火币现货和币安期货为例,我们可以编写相应的回调函数。

最后,我们可以运行具有获取行情和资产功能的策略框架。通过获取到的行情数据,我们可以计算不同品种的差价,监控多个交易对的期现差价。通过这样的设计方式,我们还可以扩展到其他交易所。有兴趣的同学可以尝试一下!

猜你喜欢

关注我们

微信二维码

微信