V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tomzhang
V2EX  ›  Node.js

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

  •  
  •   tomzhang · 2017-10-14 21:42:22 +08:00 · 7247 次点击
    这是一个创建于 2591 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本人开发了一个基于 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++处于同一个级别速度,且入门简单,能够快速开发程序。

    17 条回复    2017-11-12 22:56:30 +08:00
    SPACELAN
        1
    SPACELAN  
       2017-10-14 22:15:18 +08:00
    支持一个,如果能支持数字货币交易所就更厉害了
    tomzhang
        2
    tomzhang  
    OP
       2017-10-14 23:16:26 +08:00
    @SPACELAN 数字货币国内刚刚被封呢~还玩呢。以后要支持的话只能支持国外的平台哈,会考虑你的建议!
    v1024
        3
    v1024  
       2017-10-15 07:55:15 +08:00 via iPhone
    厉害了,求个跑虚拟盘的教程
    izayl
        4
    izayl  
       2017-10-15 09:57:02 +08:00 via Android
    做量化需要哪些金融知识,请楼主赐教
    tlday
        5
    tlday  
       2017-10-15 11:50:11 +08:00 via Android
    Node.js 的速度很快,与 C++处于同一级别速度。
    这句话有 benchmark 背书吗?希望能看到速度测试数据,这句话和我的认知不太符合。
    不过支持下开源,金融向的开源似乎一向很少。
    WuMingyu
        6
    WuMingyu  
       2017-10-15 12:55:34 +08:00
    1. 我看你的运行界面是 CLI,多个策略怎么的输出?有 web UI 的开发计划吗
    2. python 有那么多 ML 库,不知道 nodejs 有没有代替的
    3. vnpy 的策略是运行在线程内(目前的版本我不确定)一旦一个策略运行时的错误不能被捕获,整程序就挂了,不知道你那边怎么处理的
    5. 最重要的楼主有没有通过策略赚到钱?
    asuraa
        7
    asuraa  
       2017-10-15 13:40:01 +08:00
    话说这种交易不是有 mt 么? https://www.metatrader5.com/zh/automated-trading
    tomzhang
        8
    tomzhang  
    OP
       2017-10-15 13:46:20 +08:00
    跟 c++比同一级别的意思是还是比 c++慢。nodequant 系统速度方面 tick-to-finishsendorder 平均是 1.5ms ,比挺多非 c++平台快的
    tomzhang
        9
    tomzhang  
    OP
       2017-10-15 13:55:08 +08:00   ❤️ 1
    @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
        10
    tomzhang  
    OP
       2017-10-15 13:57:44 +08:00
    @luodaoyi 解决的问题不一样的。我用过 mt5,主要是外国的交易品种,而且比较难扩展。
    tomzhang
        11
    tomzhang  
    OP
       2017-10-15 13:58:43 +08:00
    @izayl 要知道期货,股票的交易知识。
    tomzhang
        12
    tomzhang  
    OP
       2017-10-15 13:59:27 +08:00
    @v1024 虚拟交易,可以上 simnow 了解 http://www.simnow.com.cn/
    tomzhang
        13
    tomzhang  
    OP
       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
        14
    tomzhang  
    OP
       2017-10-15 14:13:52 +08:00
    @WuMingyu 关于 node.js 做 ML,这里有个讨论 http://www.zcfy.cc/article/1861
    Elven
        15
    Elven  
       2017-10-15 19:04:57 +08:00 via iPhone
    膜拜大佬,然后默默的滚去写区块链
    china521
        16
    china521  
       2017-10-17 21:17:11 +08:00
    你需要 BotVS
    lightningx
        17
    lightningx  
       2017-11-12 22:56:30 +08:00
    请问有做回测系统的计划吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3745 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 10:38 · PVG 18:38 · LAX 02:38 · JFK 05:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.