NodeQuant:一个基于Node.js的开源量化交易平台
NodeQuant的愿景
让Node.js社区轻巧地开发和部署量化金融交易程序,成为一个简单、高效、可依赖的量化交易平台:NodeQuant开发文档
NodeQuant如何支持量化交易
- 一个账号 —— 多策略,支持一个账号多个策略的量化产品模式
- 一个策略 —— 多合约,支持套利
- 一个策略 —— 多市场,支持跨市场交易、套利
- 多个市场 —— NodeQuant 将会全部集成上期CTP、飞鼠Sgit 、富途证券、盈透证券IB的程序化API交易客户端,可在多市场中交易和套利
- 上期CTP —— 中金所、上期所、大商所、郑商所的商品期货、期权合约
- 飞鼠Sgit —— 期货、上海黄金交易所的贵金属现货
- 富途证券 —— 港股、美股、A股
- 盈透证券 —— 全球24个国家100多个市场中心的股票、期权、期货、外汇等产品
- 使用JavaScript语言开发量化交易策略。与C++相比不需要策略研究员处理琐碎但重要的内存管理问题。Node.js的速度也非常快,与C++处于同一个级别速度,且入门简单,能够快速开发程序。
NodeQuant简介
国内的量化交易平台大多是C、C++、C#、Java、Python等语言编写量化策略。从事量化交易的人员在学会金融数据的分析的同时也要学好一门编程语言,往往学好一门编程语言对于很多人是一个不小的门槛。JavaScript语言是一门简单轻便的脚本语言,学习和编写JavaScript程序都非常简单。脚本语言具有弱类型的特点,不需要开发者在编写程序的过程中适配各种数据类型,入门快速。
JavaScript有大量的开发者,它是GitHub上最热门的编程语言。JavaScript语言借助Node.js运行环境,可以使得JavaScript也可以像C++、C#等高级语言一样运行在服务器端,可以进行读写文件,数据库,访问网络等操作。
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
Node.js 的包管理器 npm,是全球最大的开源库生态系统。使用npm可以找到各种各样的第三方库,开发者可以集成到自己的程序当中。
量化金融交易程序是一种是基于高频网络访问和各种事件(OnTick,OnOrder,OnTrade)的数据密集型程序。由于Node.js非阻塞的,事件驱动的 I/O 操作等特点,使得它处理数据密集型实时应用时非常轻巧高效,可以认为是数据密集型分布式部署环境下的实时应用系统的完美解决方案。
使用Node.js来编写和运行量化交易策略程序是一个非常好的解决方案。
这就是NodeQuant量化金融交易平台诞生的背景。
NodeQuant 最新特性
- 支持上期CTP的API客户端(Windows Node.js-8-32位、Windows Node.js-8-64位、Linux x64 Node.js-8)。可交易中金所、上期所、大商所、郑商所的所有期货品种合约
- 支持飞鼠Sgit的API客户端(Windows Node.js-8-32位、Linux x64 Node.js-8-64位)。可交易中金所、上期所、大商所、郑商所的所有期货品种合约,并且可交易上海黄金交易所的现货合约。可程序化交易现货黄金、白银。
- 支持一个账号 —— 多策略,支持一个账号多个策略的量化产品模式
- 支持一个策略 —— 多合约,支持趋势、套利交易
- 支持一个策略 —— 多市场,支持跨市场交易、套利
- 支持交易K线周期:秒、分钟、小时
- 支持交易所支持的多种类型订单:限价单,市价单,FAK单,FOK单,条件单。可灵活使用于趋势,套利,钓鱼等交易策略
- 支持盘后自动计算策略盈亏净值
- 极速响应实盘交易。使用Redis内存数据库,记录与查询交易信息
- 支持可视化策略运行状态。使用Redis数据库Windows图形化客户端查看策略运行交易数据,可以查看本地和云服务器的策略运行状态
- 无人值守。支持配置非交易时间自动停止,交易时间自动启动交易策略
- 支持打包加密策略
- 更小的滑点成本。Windows系统中对CTP交易客户端进行测试,系统内Tick-To-FinishSendOrder平均耗时:1.5ms(基于python的vn.py平均耗时22.6ms)
NodeQuant 2.0即将来到的特性
- 支持连接Tick数据行情服务器,使得策略可预先加载Tick,分钟行情数据。方便策略获取预处理数据
- 支持策略运行异常邮件通知
详情请看:NodeQuant开发文档