dripjs开源量化框架(一)序言

前言

Drip.js 我的定位是用于构建高效且可扩展的交易程序的渐进式Node.js开源量化框架
简单的说,也就是面向想要开发量化交易/程序化自动交易程序、或者只想开发交易策略的同学。

github地址

https://github.com/drip-trader/dripjs

为啥要开发这个框架?为啥要重复造轮子?

  1. 主要我是刚毕业不久的萌新,还比较迷茫, 想做点可以拿的出手的东西。
  2. 我自己也一直在开发关于数字货币的交易程序,长期以来困扰我的就是没有一个比较强大的nodejs量化开发框架,能使我快速开发出高可用、易维护、并且功能全面的交易程序。
  3. 重复造轮子?我用的是nodejs,基本没啥轮子好吗。

为啥要写这个文章?

这个的文章将会写一些dripjs框架开发设计的思路或者心得、也会以个人的观点去评论其他的开源框架(粉丝们轻喷,我只是为了做调研)。

我在开发dripjs时也会尽量参考这些前辈们的开源项目。希望dripjs能让使用typescript或者javascript的量化开发者省去大部分精力、时间,将它们更多的花费在交易策略的开发上。

量化框架一般用python写的比较多,比如有名的有vnpy、abu等等,nodejs的也有个nodequote。
不过使用typescript来做量化框架的,我好像还没看到,有知道的同学可以在评论里告诉我。

框架目标

1、希望能提供一个开箱即用的量化交易程序体系架构,允许开发者轻松创建高可用、可扩展且易于维护的量化交易程序。

2、我打算开发出一款可以支持不同种类商品的框架,让使用者可以不去关心商品的类型或者交易所。(比如:同一策略,通过dripjs可以回测多种商品,例如:期货、A股、美股、数字货币等等。)

3、计划dripjs的目标是tool/library/platform三位一体(是不是有点太贪了),目前也是这样去做的。主模块、子模块、还有各个子项目,下面会有详细介绍。

现阶段框架说明

打开上面贴的github地址,大家可以看到这样的程序目录

目录名 说明
docs 说明文档
modules 系统模块
projects 功能项目

是的你没有看错,没有src目录,因为我想做到的是松耦合,大家相互独立,所以才能成为我上面说的tool/library/platform

  • docs 用来放文档说明、或者设计图纸等的一些文件。
  • module 是用来放各种子模块。
    • 比如说现在已发布的dripjs-bitmex是bitmex交易所的操作模块,他相对于其他代码是独立的,只通过bitmex相关操作的功能。
    • 还有dripjs-typesdripjs-common等等。这些都可以通过npm install 安装到开发者程序里。
    • 当然还有主模块dripjs,他包含上面说的全部子模块也包含projects中的全部子项目。
  • projects 相对独立的功能性项目
    • 比如说现在已经开放完成的:intelligence专门获取数据情报信息的(后面详细说明)
    • 再有就是数据的存储
    • 还有拥有交易功能的交易终端子项目等等

技术架构

  • 开发语言: typescript
  • 技术库:rxjs、typeorm、axios、ws
  • 测试库:jest
  • 数据库:mysql、redis(使用者如不需要存储数据,可以不安装)
  • 依赖管理工具:yarn(不是npm哟)

开发说明

目前以bitmex数字货币交易所为例,开发完数据获取相关子项目。
我打算先通过bitmex来搭一下全部流程(全部子项目)的架子。

使用ci自动化测试、及代码覆盖率测试来保证代码的质量。

下面这个图标是覆盖率的数值,现在是99%

暂时先写到这里,以后还会有其他功能的说明。

仅以此框架献给想要学习或者开发量化交易的朋友!
有兴趣的朋友也可以加qq群:310298370,互相交流共同进步!

你可能感兴趣的:(dripjs开源量化框架(一)序言)