对于一个开源的基于 Node.js 量化交易平台有什么建议?

2017-10-14 21:42:22 +08:00
 tomzhang

本人开发了一个基于 Node.js 的量化交易平台 NodeQuant。

https://github.com/zhangshuiyong/nodequant

为什么要开发这个基于 Node.js 的量化交易平台呢? 其实我也用过开源的 python 量化交易平台 vn.py 但是几个月前在研究做套利,但是几个月前的 vn.py 也不能套利,而且 vn.py 作者测试了 vn.py 的性能,说实话有点慢,这里没有贬低的意思,单纯技术的角度,内心其实感谢 vn.py 对量化行业的知识贡献。vn.trader 的 tick-to-trade 延时测 所以用来做套利,就比较勉强了。综合考虑,走上了重新封装 ctp 等交易接口的路。量化交易是基于事件机制的,而 Node.js 天生就是基于事件的,它有自己的事件引擎,Node.js 平台上执行的脚本是 Javascript 也非常容易上手和开发,Node.js 的 Javascript 脚本引擎是谷歌浏览器的 Javascript 脚本引擎,脚本速度执行很快,综合考虑决定选用基于 Node.js 来开发一个既能做套利也能做趋势的量化交易平台。经过 vn.py 的同样测试,在 Windows 系统中 NodeQuat 系统内部 Tick-To-FinishSendOrder 的平均耗时 1.5ms,可以说用来做套利的话,滑点成本就相对比较少了。现在也只是我一个人在架构和开发这个基于 Node.js 的量化交易平台,如果有量化交易的爱好者和对 NodeQuant 开发感兴趣的,多多留下建议,我会根据建议继续完善这个交易平台

NodeQuant 可以这样支持量化交易

1.一个账号 —— 多策略,支持一个账号多个策略的量化产品模式

2.一个策略 —— 多合约,支持套利

3.一个策略 —— 多市场,支持跨市场交易、套利

4.多个市场 —— NodeQuant 未来将会全部集成 CTP、飞鼠 Sgit、富途证券、盈透证券 IB 的程序化 API 交易客户端,未来可在多市场中交易和套利

5.上期 CTP —— 中金所、上期所、大商所、郑商所的商品期货、期权合约

6.飞鼠 Sgit —— 期货、上海黄金交易所的贵金属现货

7.富途证券 —— 港股、美股、A 股

8.盈透证券 —— 全球 24 个国家 100 多个市场中心的股票、期权、期货、外汇等产品

9.使用 JavaScript 语言开发量化交易策略。与 C++相比不需要策略研究员处理琐碎但重要的内存管理问题。Node.js 的速度也非常快,与 C++处于同一个级别速度,且入门简单,能够快速开发程序。

7070 次点击
所在节点    Node.js
17 条回复
SPACELAN
2017-10-14 22:15:18 +08:00
支持一个,如果能支持数字货币交易所就更厉害了
tomzhang
2017-10-14 23:16:26 +08:00
@SPACELAN 数字货币国内刚刚被封呢~还玩呢。以后要支持的话只能支持国外的平台哈,会考虑你的建议!
v1024
2017-10-15 07:55:15 +08:00
厉害了,求个跑虚拟盘的教程
izayl
2017-10-15 09:57:02 +08:00
做量化需要哪些金融知识,请楼主赐教
tlday
2017-10-15 11:50:11 +08:00
Node.js 的速度很快,与 C++处于同一级别速度。
这句话有 benchmark 背书吗?希望能看到速度测试数据,这句话和我的认知不太符合。
不过支持下开源,金融向的开源似乎一向很少。
WuMingyu
2017-10-15 12:55:34 +08:00
1. 我看你的运行界面是 CLI,多个策略怎么的输出?有 web UI 的开发计划吗
2. python 有那么多 ML 库,不知道 nodejs 有没有代替的
3. vnpy 的策略是运行在线程内(目前的版本我不确定)一旦一个策略运行时的错误不能被捕获,整程序就挂了,不知道你那边怎么处理的
5. 最重要的楼主有没有通过策略赚到钱?
asuraa
2017-10-15 13:40:01 +08:00
话说这种交易不是有 mt 么? https://www.metatrader5.com/zh/automated-trading
tomzhang
2017-10-15 13:46:20 +08:00
跟 c++比同一级别的意思是还是比 c++慢。nodequant 系统速度方面 tick-to-finishsendorder 平均是 1.5ms ,比挺多非 c++平台快的
tomzhang
2017-10-15 13:55:08 +08:00
@WuMingyu 1.web 开发计划?金融程序保密性较强,目前单机版。web ui 是有计划的这样可以方便操作多个策略。目前多个策略是配置好久一起自动启动一起自动停止了。2. node.js 有 ML 库,请看 https://github.com/zhangshuiyong/nodequant/blob/master/README.md 3.多个策略的错误消息是会输出到数据库的 Error 表中,也会打印到控制台的。nodequant 和 vn.py 的封装技术不同,vnpy 有几个文件是不可 debug 的,只能输出到控制台,nodequant 多个策略的错误都是可以抓到的,而且也可以用 debug 模式去抓。5.本人目前专注于交易技术,认识公司的人可以通过策略赚到钱。
tomzhang
2017-10-15 13:57:44 +08:00
@luodaoyi 解决的问题不一样的。我用过 mt5,主要是外国的交易品种,而且比较难扩展。
tomzhang
2017-10-15 13:58:43 +08:00
@izayl 要知道期货,股票的交易知识。
tomzhang
2017-10-15 13:59:27 +08:00
@v1024 虚拟交易,可以上 simnow 了解 http://www.simnow.com.cn/
tomzhang
2017-10-15 14:09:35 +08:00
@WuMingyu 2. node.js 有 ML 库,请看 http://blog.csdn.net/hj7jay/article/details/71157976。 不过 node.js 做 ML 不是太擅长,建议用做 ML 擅长的语言做你的 ML 程序,可以用 node.js 跨进程调用 ML 程序
tomzhang
2017-10-15 14:13:52 +08:00
@WuMingyu 关于 node.js 做 ML,这里有个讨论 http://www.zcfy.cc/article/1861
Elven
2017-10-15 19:04:57 +08:00
膜拜大佬,然后默默的滚去写区块链
china521
2017-10-17 21:17:11 +08:00
你需要 BotVS
lightningx
2017-11-12 22:56:30 +08:00
请问有做回测系统的计划吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/397665

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX