量化研究QRI-开源量化交易系统评测系列之ccxt评测

量化研究QRI-开源量化交易系统评测系列之ccxt评测

量化研究QRI

币圈10个玩量化的,我想至少有8~9个人知道CCXT这套框架,与其说他是量化框架,倒不如说他是一整套API接口标准化解决方案。

ccxt库包含了众多交易所的抽象类,提供访问多个数字货币交易所的统一的API。 每个类都实现了一个特定的加密货币交易所的公开和私有API。所有的交易所 实现类都派生子Exchange基类,有一组公共的方法。要使用ccxt库访问某个 特定的交易所,你需要创建该交易所对应的ccxt交易所类的实例。ccxt会定期 增加新的交易所并更新支持的交易所。

一、交易所支持:

CCXT目前支持127个数字货币交易所和交易API:

量化研究QRI

从上表可以看出,目前所涉及交易的交易所基本都支持。

二、方法结构分析:

方法介绍:

量化研究QRI

CCXT很好的地方将币圈不规则的API功能按照具体需求做了抽象封装成了标准方法。

公共方法分类:

loadMarkets: 将交易所列表作为由符号索引的对象返回,并将其缓存在交易所实例中。如果已加载,则返回缓存的市场,除非强制使用reload = true标志fetchMarkets:从交易所获取所有可用市场的列表,并返回一系列市场交易对象(具有符号,基础,报价等属性的对象)。fetchCurrencies:获取交易所所有可用的货币,并返回货币的关联字典(具有代码,名称等属性的对象)。fetchTicker:获取市场币对tick数据fetchTickers:获取多个币对的tick数据fetchOrderBook:获取订单簿数据fetchOHLCV:获取K线数据fetchStatus:获取交易所状态信息fetchTrades:获取市场交易数据

私有请求方法封装:在币圈交易所基本都是基于http请求的方式来进行交互,在ccxt中也封装了常用的基于http请求的方式,如publicGet、publicPost,同样的私有方法也有Get和Post请求,另外还添加了Put、Delete方法,还有常用的签名方式。

量化研究QRI

架构图:

量化研究QRI

其实CCXT的整体设计逻辑很简单。作为第三方中间组件,很容易能够看出,设计思路比较清晰也比较完整,下面我们从代码层面来解析详细的封装逻辑。

代码层面,我们分析的是python的源码,涉及两方面,一方面是python原始代码,另一方面我们分析的是异步封装。在Python中异步多任务是一个很重要的部分,后面我们会详细分析AioQuant,这是一个完全基于异步多任务的量化框架,不论是效率还是项目管理都极高。

3.源码解析:

我们通过okex的源码来解析:

整个源码中最重要的两类方法:

parse_***:parse开头的方法,这类方法主要处理的是对应交易所接口的抽象封装,返回对应满足CCXT封装的数据格式。ftech_***:fetch开头的方法属于公开或者是封装后的标准方法,ccxt中封装和很多对外暴露的标准化方法,按照功能需求做了分类处理,如果对应交易所没有此类方法的将不会适配对应方法,无返回值。dexscribe方法:这个方法属于这个类的核心,也是能够访问交易所接口的基础类,在这个方法中一般会封装很多常量数据,作为固定返回来使用。比如在okex接口中,就封装了现货、币币杠杠、交割合约、永续合约等相关数据、账户、交易等接口的请求参数和接口参数。还有一些交易所定义的错误类型和错误编码。在ccxt封装的过程中,会将相关错误编码按照标准格式一并返回。方便用户解析具体错误类型。

三、使用难度:

对于CCXT来说,说不上使用难度,官方给出了详细的使用手册,有简单的代码功底就可以很容易地掌握这套接口。并按照自己的需求来自定义更多的功能模块。难的是耐心,看是否有耐心把整个文档看完,熟悉里面的方法类型,并按照相应的结构来请求数据和接口。

四、策略编写难度

使用CCXT编写策略和使用交易所接口编写策略唯一的不同是,ccxt将交易所接口标准化了,提供了更加完善功能可读性更强的接口模式,用到策略中其实还需要更加健全的框架模板来帮助使用者完成对应的仓位和订单管理。

为了帮助大家可以快速实现量化模块,我们也封装了一套基于ccxt开源接口的简易量化框架供大家学习使用。

量化研究QRI

五、风控难度

对于ccxt来说谈不上任何风控能力,它本身也只是提供了交易所常用的交易接口,具体的风控功能需要使用者实行解决。

六、二次开发难易度

对于完全开放源码的系统来说,只要你代码能力过得去,二次开发没什么问题,就算重构都没有任何问题。CCXT本身的设计就很容易被多个系统所兼容并存。你可以将这套框架一并用到你的量化系统中,按照功能需求定制你自己的策略。

接下来我们会推出一系列根据tradingview的指标信号通过自带的webhook功能再结合ccxt的功能实现一套通过tradingview给信号,按照cta的标准模式实现一整套完整的cta策略模型。

量化研究QRI

详细内容大家可以通过关注我们,获取最新更新,一起学习进步。

以前文章:

QRI量化研究专题工作开展安排

量化研究QRI-开源量化交易系统评测之QUANTAXIS评测

量化研究QRI-开源量化交易系统评测系列之Zipline评测

量化研究QRI-开源量化交易系统评测系列之VNPY开箱评测

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Proudly powered by WordPress | Theme: HoneyWaves by SpiceThemes