#数字货币量化交易框架Gekko开发环境的搭建

数字货币量化交易框架Gekko开发环境的搭建

认识Gekko

Gekko是基于nodejs开发的一个数字货币量化交易的平台,支持回测,paper trading和实盘交易的开源框架。gekko的github地址为https://github.com/askmike/gekko目前它在github上的点赞的数量已经达到7000多个stars, fork的数量也达到2000多个,可见它是非常知名的框架,使用它来进行量化交易,应该是比较方便的,省去了很多制造轮子的工作,而且它支持的交易所也不少,有币安,bitfinex等知名交易平台。还有支持Ta-lib指标,以及自定义指标,还支持扩展和插件的功能。

开发环境搭建

开发环境的搭建,这里以阿里云的ubuntu 16.04作为开发环境搭建。通过ssh root@xxx.xxx.xxx.xxx 进入服务器终端。 具体过程需要配置安全组,开放22号端口,具体参考阿里云的配置。这里不多讲了。

安装nodejs

  1. 首先更新下unbuntu系统资源

sudo apt-get update

  1. 更新系统软件

sudo apt-get upgrade

  1. 安装 build-essential 和 libssl-dev两个依赖包

sudo apt-get install build-essential libssl-dev

  1. 安装nvm,nvm是node version manager, 在github上下载安装脚本, 脚本地址为https://github.com/creationix/nvm, 然后复制如下脚本,并在命令行输入如下内容:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

然后等待安装完成就可以了,安装完成后执行如下命令让安装脚本生效

source ~/.bashrc

然后如下命令查看nvm的功能和文档。

nvm --help # 查看帮助

nvm ls-remote # 查看可以安装的nodejs版本,

这里我们选择安装node v8.11.4版本

nvm install v8.11.4

安装完成后, 执行node 命令就可以使用了。或者查看版本

node --version

至此,我们的nodejs 开发环境搭建完成。

安装git代码管理工具

实际上这里是可选的,我们也可以直接从github上直接把gekko的代码下载下来,然后直接使用。但是为了方便我们通过git工具更为方便。

sudo apt-get install git

等待安装完成就可以了。
接下来下载gekko的稳定版本的代码

git clone git://github.com/askmike/gekko.git -b stable

或者下载最新的功能的代码,但是可能没那么稳定。

git clone git://github.com/askmike/gekko.git

下载完成后,在服务终端下执行

ls

在自己的服务下可以看到多了一个叫gekko的文件夹, 进入该文件夹

cd gekko

安装项目依赖,通过npm (node package manager), 这个工具在通过nvm 安装node的时候就已经自动安装了,我们直接使用就可以了。

npm install --only=production # 参数--only=production是指我们安装生产环境的依赖包

安装exchange交易所的依赖包,该依赖包是在exchange目录下安装的,所以我们要进入改目录

cd exchange

npm install --only=production

完成之后我们要返回gekko的目录,也就是上一级目录:

cd ..

至此,我们就可以启动gekko 了

node gekko --ui

或者

nohup node gekko.js --ui > gekko.txt 2>&1 &

这样你把终端的窗口关掉也不会影响使用的。

--ui就是我们用UI来进行操作, 当然他还有其他参数,具体可以参考官方的文档https://gekko.wizb.it/docs/introduction/about_gekko.html

当然如果你是要使用TA-lib指标库和Tulip指标库的话,你还需要自己安装第三方库。

npm install talib tulind --no-save

或者分开安装也可以

npm install talib --no-save

npm install tulind --no-save

但是分开安装可能会有问题,所以最好一块安装得了。 记得,这个两个库是在gekko当前目录下安装,安装的时候切记注意文件的路径,否则可能会报错。另外安装过程中,如果出现什么警告的,千万不要执行类似

npm audit fix # 不要执行该命令

npm audit // 不要执行该命令

这样的命令,检查下自己的nodejs版本,是否过高或者太低了。可以参考我的使用版本, v8.11.4。 不然可能会报错。切记!!!!

具体这些第三方库的文档可以到https://www.npmjs.org 上查看其官方文档。

远程访问执行操作

实际上你按照上面的操作完成nodejs和gekko的安装后,还是浏览器无法访问的。修改项目的配置文件, 路径为: gekko/web/vue/dist/UIconfig.js

cd /gekko/web/vue/dist

vi UIconfig.js

把文件修改为如下:

const CONFIG = {
  headless:false,  // 这个修改为false,这样就不会自动打开浏览器了。通过浏览器访问就可以了。
  api: {
    host: '0.0.0.0',  // 允许外部地址访问
    port: 3000, 
    timeout: 120000 // 2 minutes
  },
  ui: {
    ssl: false,
    host: 'xxx.xxx.xxx.xxx',  // 修改为自己的服务公网地址
    port: 3000,
    path: '/'
  },
  adapter: 'sqlite'
}

if(typeof window === 'undefined')
  module.exports = CONFIG;
else
  window.CONFIG = CONFIG;

当然你要在阿里云那里配置安全组,把80或者3000端口打开,然后允许该端口进行访问。弄好之后,你就可以访问你的地址了。
http://xxx.xxx.xxx.xxx:3000

当然了,这个部署可以用来做回测和paper trading的时候使用。如果是实盘交易的话, 建议你不要修改UIconfig.js配置文件了,毕竟把网页的地址暴露给外面很不安全, 很容易泄露你的apikey和secret.

另外你可以通过安装nginx然后进行服务器代理使用。具体更多的配置,你可以参考官方文档https://gekko.wizb.it/docs/installation/configuring_gekko_on_a_server.html以及我之前博客写的关于阿里云Ubuntu 搭建nodejs生产环境https://www.jianshu.com/p/7b660871fed1

后记

文章是安装ubuntu服务器来搭建的,mac或者其他linux环境相同。
后面有机会继续分享gekko的策略编写,回测、paper trading 以及实盘交易的经验分享。如果你也是在做数字货币的量化交易,欢迎一起来学习和交流。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 161,192评论 4 369
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,186评论 1 303
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 110,844评论 0 252
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,471评论 0 217
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,876评论 3 294
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,891评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,068评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,791评论 0 205
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,539评论 1 249
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,772评论 2 253
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,250评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,577评论 3 260
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,244评论 3 241
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,146评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,949评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,995评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,812评论 2 276

推荐阅读更多精彩内容