开源加密货币量化交易机器人Gekko安装与部署——Linux篇

首先要强调的是,加密货币市场具有高风险性,本文只提供搭建的操作方法及其步骤,不提供任何风险担保。

经常看到一些分析师的文章,说“主力的砸盘进一步带动了机器人的交易”,我就比较好奇,机器人有这么多嘛?在币安那么多的小韭菜里面,个人认为程序员的比重是很低的。
某天,我突然对“搬砖套利”来了兴趣,结果误打误撞找到了Gekko这个项目。经过我锲而不舍的折腾,总算也是在服务器上搭了Gekko了。

▲全部配置完毕后的界面

按照官方文档的说法,你只要这么几步就能在你的服务器上搭建Gekko哦:

  • 安装node.js
  • 安装Git
  • 下载Gekko
  • 安装Gekko

这其实和“把大象装进冰箱 ” 没有啥区别……

好在官方也提供了详细的教程,这里我就说一下我遇到的一些坑:

在正式开始之前,先说明一下本机的系统为CentOS6.9 Final,面板为Appnode,测试的另一台服务器系统为Ubuntu 19.04,均在Vultr上运行。

1.安装Node.js

首先呢,由于Centos6带的Pyhton版本太低,在安装Node.js(10.0.15)的时候,频繁提示错误,而本人水平有限,在找了许许多多的资料以后发现基本无解,只能想到了“降级安装”这个方法。

Node.js 9.11.2 LTS版本经过测试可以正常安装编译!唉,CentOS6真的麻烦!

2.安装Git

这个就不用多废话了,网上教程一搜一大把

3.安装、编译Gekko

我在这个地方卡了好久,官网上的原文是这样的:

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

npm install --only=production

cd exchange

npm install --only=production

然后,我编译的时候在SQLite3这一步频繁报错!

5284 error Exit status 1
5285 error Failed at the sqlite3@4.0.4 install script.
5285 error This is probably not a problem with npm. There is likely additional logging output above.
5286 verbose exit [ 1, true ]

我当时翻来覆去的找,想破脑袋也没想明白到底是哪个地方出错了……

直到我决定下定决心自己解决这个问题!

我看了好几遍那个好长长长的报错说明,总算找到了问题所在了。

CentOS6自带的C++版本过低!

好了,这回问题变成CentOS怎么更新C++版本了……

问题又来了,RPM安装的时候安装不上!为啥?因为我这个土鳖服务器自从2014年开始就没更新过源!

好不容易卸载了原来的C++,又RPM安装了新的C++,编译才总算完成了。

4. 启动

node gekko --ui

看上去非常简单易懂?实际上的确挺简单的……

但是!在服务器上,我们还需要修改一个东西

cd web/vue/dist

nano UIconfig.js

打开之后,修改成下面的样子:

const CONFIG = {
headless: true,
api: {
host: '0.0.0.0',
port: 3000,
},
ui: {
ssl: false,
host: '本机IP',
port: 3000,
path: '/' // change this if you are serving from something like example.com/gekko
},
adapter: 'sqlite'
}
if(typeof window === 'undefined')
module.exports = CONFIG;
else
window.CONFIG = CONFIG;

注意!下方的Host千万不能写成0.0.0.0!否则就会导致服务器暴露在公网之下!

为了以防万一,建议把防火墙也打开,仅限本机流量通过3000端口!

5.Gekko的使用

我是使用S*S*R连接Gekko的,因此,没有加HTTPS,如果想要提高安全性的话,建议阅读官网教程。

首先,我们需要导入数据。

在Config栏下面找到添加API Key的按钮,把你的API KEY输入进去。

然后选择交易所,点击IMPORT即可。

这里要说另外一个坑了。

实测币安会拒绝某些通过S*S*R进行连接的IP段。联通4G、电信4G在用网高峰时段进行数据导入会返回CONNECTREFUSED。(Windows下)

6.数据的导入

本地的导入一般要花很长时间,而且又浪费CPU资源。Gekko论坛上也有人导入了币安的数据,上传到了Google Drive上:

点我访问

其中,.info是历史数据,.zip是压缩过的.db文件,把他放在Gekko程序目录下的history目录下即可。

如果想上传到服务器下,可以使用Onedrive直链,然后利用Wget下载。(实测FTP频繁丢包)

7.策略

Gekko论坛上有详细的对具体策略的分析。这个我就不多提了,大致说一说如何找到、导入策略。

Gekko-Strategies

这是整合了目前大多数策略的项目,目前仍然在更新中。

cd到Gekko文件夹下后,运行

git clone https://github.com/xFFFFF/Gekko-Strategies

cd Gekko-Strategiesba

sh install.sh

即可。

(Windows用户请自行复制粘贴, .toml 到\config\strategies下、.js至 \strategies 下 )

8.目前正在测试的策略

Gekko论坛上大多推荐神经网络策略,即neuralnet_v2策略。

仅供参考:

threshold_buy = 3.3
threshold_sell = -3.3
learning_rate = 0.01
momentum = 0.1
decay = 0.01
stoploss_enabled = true
stoploss_threshold = 0.89
hodl_threshold = 1
price_buffer_len = 100
min_predictions = 1000

Candlen Size时长为50分钟;Warming Up Period为2周;

此方法可以回避6000-3000那一波的暴跌,但拿17年12月的数据回测时收益率只有20%左右。

想要尝试的朋友们不妨试一试,至少比死扛强点。

futa: