对于一个开源的基于 Node.js 量化交易平台有什么建议?
对于一个开源的基于 Node.js 量化交易平台有什么建议?
本人开发了一个基于 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++处于同一个级别速度,且入门简单,能够快速开发程序。
支持一个,如果能支持数字货币交易所就更厉害了
数字货币国内刚刚被封呢~还玩呢。以后要支持的话只能支持国外的平台哈,会考虑你的建议!
厉害了,求个跑虚拟盘的教程
做量化需要哪些金融知识,请楼主赐教
Node.js 的速度很快,与 C++处于同一级别速度。
这句话有 benchmark 背书吗?希望能看到速度测试数据,这句话和我的认知不太符合。
不过支持下开源,金融向的开源似乎一向很少。
- 我看你的运行界面是 CLI,多个策略怎么的输出?有 web UI 的开发计划吗
2. python 有那么多 ML 库,不知道 nodejs 有没有代替的
3. vnpy 的策略是运行在线程内(目前的版本我不确定)一旦一个策略运行时的错误不能被捕获,整程序就挂了,不知道你那边怎么处理的
5. 最重要的楼主有没有通过策略赚到钱?
话说这种交易不是有 mt 么? https://www.metatrader5.com/zh/automated-trading
跟 c++比同一级别的意思是还是比 c++慢。nodequant 系统速度方面 tick-to-finishsendorder 平均是 1.5ms ,比挺多非 c++平台快的
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.本人目前专注于交易技术,认识公司的人可以通过策略赚到钱。
解决的问题不一样的。我用过 mt5,主要是外国的交易品种,而且比较难扩展。
要知道期货,股票的交易知识。
虚拟交易,可以上 simnow 了解 http://www.simnow.com.cn/
- node.js 有 ML 库,请看 http://blog.csdn.net/hj7jay/article/details/71157976。 不过 node.js 做 ML 不是太擅长,建议用做 ML 擅长的语言做你的 ML 程序,可以用 node.js 跨进程调用 ML 程序
关于 node.js 做 ML,这里有个讨论 http://www.zcfy.cc/article/1861
膜拜大佬,然后默默的滚去写区块链
你需要 BotVS
请问有做回测系统的计划吗?
对于基于Node.js的开源量化交易平台,我有以下几点专业建议:
-
性能优化: Node.js在处理高并发时表现出色,但仍需注意性能瓶颈。可以使用集群(cluster)模块来充分利用多核CPU资源。例如:
const cluster = require('cluster'); const numCPUs = require('os').cpus().length; if (cluster.isMaster) { for (let i = 0; i < numCPUs; i++) { cluster.fork(); } cluster.on('exit', (worker, code, signal) => { console.log(`worker ${worker.process.pid} died`); }); } else { // Your trading platform code here }
-
安全性: 确保所有输入都经过验证,避免注入攻击。使用HTTPS来保护数据传输,配置CORS策略限制API访问。
-
错误处理: 实施全面的错误处理机制,包括日志记录、异常捕获和重试逻辑。使用try-catch块和Promise的catch方法。
-
模块化设计: 将平台拆分为多个模块,如策略管理、订单执行、市场数据等,以便于维护和扩展。
-
文档和测试: 提供详细的文档,包括API说明和使用示例。编写单元测试、集成测试和性能测试,确保平台的稳定性和可靠性。
-
社区支持: 鼓励社区参与,接受用户反馈和贡献。建立代码审查流程,确保代码质量。
遵循这些建议,你的Node.js量化交易平台将更加健壮、高效和易于维护。