
前言
Drip.js 我的定位是用于構建高效且可擴展的交易程序的漸進式Node.js開源量化框架。
簡單的說,也就是面向想要開發(fā)量化交易/程序化自動交易程序、或者只想開發(fā)交易策略的同學。
github地址
https://github.com/drip-trader/dripjs
為啥要開發(fā)這個框架?為啥要重復造輪子?
- 主要我是剛畢業(yè)不久的萌新,還比較迷茫, 想做點可以拿的出手的東西。
- 我自己也一直在開發(fā)關于數(shù)字貨幣的交易程序,長期以來困擾我的就是沒有一個比較強大的nodejs量化開發(fā)框架,能使我快速開發(fā)出高可用、易維護、并且功能全面的交易程序。
- 重復造輪子?我用的是nodejs,基本沒啥輪子好嗎??。
為啥要寫這個文章?
這個簡書的文章將會寫一些dripjs框架開發(fā)設計的思路或者心得、也會以個人的觀點去評論其他的開源框架(粉絲們輕噴,我只是為了做調(diào)研)。
我在開發(fā)dripjs時也會盡量參考這些前輩們的開源項目。希望dripjs能讓使用typescript或者javascript的量化開發(fā)者省去大部分精力、時間,將它們更多的花費在交易策略的開發(fā)上。
量化框架一般用python寫的比較多,比如有名的有vnpy、abu等等,nodejs的也有個nodequote。
不過使用typescript來做量化框架的,我好像還沒看到,有知道的同學可以在評論里告訴我??。
框架目標

1、希望能提供一個開箱即用的量化交易程序體系架構,允許開發(fā)者輕松創(chuàng)建高可用、可擴展且易于維護的量化交易程序。
2、我打算開發(fā)出一款可以支持不同種類商品的框架,讓使用者可以不去關心商品的類型或者交易所。(比如:同一策略,通過dripjs可以回測多種商品,例如:期貨、A股、美股、數(shù)字貨幣等等。)
3、計劃dripjs的目標是tool/library/platform三位一體(是不是有點太貪了??),目前也是這樣去做的。主模塊、子模塊、還有各個子項目,下面會有詳細介紹。
現(xiàn)階段框架說明
打開上面貼的github地址,大家可以看到這樣的程序目錄
| 目錄名 | 說明 |
|---|---|
| docs | 說明文檔 |
| modules | 系統(tǒng)模塊 |
| projects | 功能項目 |
是的你沒有看錯,沒有src目錄,因為我想做到的是松耦合,大家相互獨立,所以才能成為我上面說的tool/library/platform
- docs 用來放文檔說明、或者設計圖紙等的一些文件。
- module 是用來放各種子模塊。
- 比如說現(xiàn)在已發(fā)布的
dripjs-bitmex是bitmex交易所的操作模塊,他相對于其他代碼是獨立的,只通過bitmex相關操作的功能。 - 還有
dripjs-types、dripjs-common等等。這些都可以通過npm install安裝到開發(fā)者程序里。 - 當然還有主模塊
dripjs,他包含上面說的全部子模塊也包含projects中的全部子項目。
- 比如說現(xiàn)在已發(fā)布的
- projects 相對獨立的功能性項目
- 比如說現(xiàn)在已經(jīng)開放完成的:intelligence專門獲取數(shù)據(jù)情報信息的(后面詳細說明)
- 再有就是數(shù)據(jù)的存儲
- 還有擁有交易功能的交易終端子項目等等
技術架構
- 開發(fā)語言: typescript
- 技術庫:rxjs、typeorm、axios、ws
- 測試庫:jest
- 數(shù)據(jù)庫:mysql、redis(使用者如不需要存儲數(shù)據(jù),可以不安裝)
- 依賴管理工具:yarn(不是npm喲)
開發(fā)說明
目前以bitmex數(shù)字貨幣交易所為例,開發(fā)完數(shù)據(jù)獲取相關子項目。
我打算先通過bitmex來搭一下全部流程(全部子項目)的架子。
使用ci自動化測試、及代碼覆蓋率測試來保證代碼的質(zhì)量。
下面這個圖標是覆蓋率的數(shù)值,現(xiàn)在是99%??
暫時先寫到這里,以后還會有其他功能的說明。
僅以此框架獻給想要學習或者開發(fā)量化交易的朋友!
有興趣的朋友也可以加qq群:310298370,互相交流共同進步!