全球人工智能
文章来源:GitHub 作者:Morpheus C. Door 翻译:马卓奇
如何利用机器学习创建全自动AI交易机器人?项目版本状态:目前Zenbot 3.X 正确设置电销机器人系统源码的时候,工作状态很好,但是配置比较困难。配置系统有些难以理解。有时为了支持你选择的交易所,甚至需要自己编写Java。作者目前在为4.X版本准备一个大的革新,4.X版本会整合一个用户界面,并且让更多的东西更容易得到用户的理解和管理。尽情期待!
项目功能简介:Zenbot是一个轻量级,可拓展的人工智能交易机器人。目前Zenbot有如下功能:
高频率的贸易,日交易,周交易
支持多种数字货币:比特币,以太币,莱特币(以及其电销机器人系统源码他网络货币)
支持多种货币:美元,欧元,人民币(以及其他)
支持多种交易平台:Bitfinex,GDAX,Kraken,Poloniex (均为比特币交易所)
实时消费和贸易数据分析
回测交易策略
输出数据格式包括CSV,JSON或K线图
性能:从2016年5月到8月的历史数据上的模拟可以看出,Zenbot 3.5.15使用默认参数,仅在3个月内,投资回报率就达到了1.531。Zenbot是个天才!然而要注意,一旦你将Zenbot挂到一个动态交易上,造成的损失就要由你自己负责了。总的来说,购买数字加密货币会有风险,需要十分谨慎。数字加密货币还是一个实验品,Zenbot也是。
技术亮点:
针对大规模实时交易数据的一个有力的规划、缩减系统。
一个插件系统,有助于任何交易、货币对、交易策略、或报道媒介的增量支持。
开箱即用,Zenbot是一个人工智能驱动的交易顾问(在观测实时数据的同时给出你买入或卖出的信号)。
包括对全球数字资产交易所(GDAX)的默认支持,所以如果你有一个GDAX账户,只要将你的GDAX API密钥放入config.js ,然后设置要交易的货币对种类,就可以使用交易机器人了。
对其他交易所的默认支持还在开发之中。
交易策略会完全显示在设置文件中。这可以让你对于交易机器人的行为和逻辑进行全面掌控。举个例子,你可以不在GDAX进行交易,而是在一个不同的交易所,使用不同的货币对进行交易,只要编写几行Jaca程序就好。
通过内置的HTTP服务器提供实时K线图。
软件截图:在下面的截图中,粉色的箭头代表机器人在循环遍历GDAX交易所的比特币/美元(BTC/USD)货币对产品的历史数据的同时,进行买入(向上的箭头)和卖出(向下的箭头)的操作。
进行仿真的原数据:https://gist.github.com/carlos8f/afcc18ba0e1f422b1f3b1f67a3b05c8e
快速入门:
1、要求:Node.js和MongoDB,不支持Windows。如果在Windows上的运行遇到错误,可能是因为Node.js在Windows系统下基本都会崩溃,应该尝试在Linuxdocker container(参考第七步,按照Windows下的指示)或Mac上使用。
2、安装Zenbot3
3、将config_sample.js复制到config.js,并用API密钥、数据库凭据以及交易逻辑等进行编辑。注意:将GDAX密钥添加到config.js才能开始真正的交易。
4、运行Zenbot(单货币对模式),下面的命令可以运行Zenbot的所有功能,默认使用比特币/美元(BTC/USD)货币对:
使用其它货币对(例如以太币-比特币货币对):
运行zenbot(多货币对模式),下面的命令会在分开的进程中,应用缩减器和服务器一起运行多货币对模式
必须运行:缩减器(处理贸易数据)
可选运行:服务器(K线图和)累计损失
必须运行:一个或多个运行程序(观测给定货币对的交易,并且在交易所或仿真中进行交易)
以及/或者交易以太币
以及/或者交易以太币/比特币
5、如果要运行服务器,打开console端口中提供的实时图的URL,获取命令行界面(CLI)
./run.sh程序结合了launch map --backfill reduce run server,所以可以用CLI来获取其它命令。
6、仿真
一旦回填完成(大概收集84天的数据),运行仿真:
Zenbot会返回一个虚拟交易的列表,以及一个投资回报率的图。打开控制器提供的URL链接(在服务器运行时),可以查看虚拟交易的K线图。调整default_logic.js可以有新的交易策略,如果要检查你的结果也是用这种方法。
仿真示例结果:https://gist.github.com/carlos8f/afcc18ba0e1f422b1f3b1f67a3b05c8e
关于default_logic.js中的默认交易逻辑
使用GDAX API
每5分钟的变化操作一次,但是可以自己设置操作速度更快或更慢。
计算最近14小时内的每5分钟变化的相对强弱指标
RSI >= 70为上升趋势,RSI = 30为下降趋势
在上升趋势初始买入,在下降趋势开始时卖出
对当前余额的98%进行交易,市场价
一次交易后最少保持24小时
可以调整JS为Bitfinex交易平台进行交易。在调整了default_logic.js后,使用./zenbot sim [--verbose] 命令来检查你的策略和历史交易。仿真一般在周三下午5点,太平洋标准时间,以及运行最多84天(12周),来保证输入的连续性。
对于自动学习的支持以及对于更多交易所的支持即将推出。支持Pull Request协作。对于3.X版本的插件结构,外部插件也是可以的。(作为他们自己的repo或模型发布)。
7、Docker
安装Docker,Docker Compose,Docker Machine(如果需要的话)可以按照安装指示:https://docs.docker.com/compose/install/ 安装之后,运行:
8、网络控制
当服务器运行时,并且你已经访问了控制器提供的 ?secretURL链接,你可以获取一个累积的,日志信息的实时反馈。地址:http://localhost:3013/logs,例如:
更新小贴士:如果要更新Zenbot安装,使用./update.sh命令。如果更新后出现冲突,解决冲突后运行 ./run.sh。如果更新后在运行时出现Java错误,你的数据库或许该淘汰了。尝试丢弃你的zenbrain数据库,然后再次运行run.sh,以一个干净的状态开始。
4大常见问题
1、电销机器人系统源码我可以在X交易平台上使用zenbot吗?
可以的!只要该交易平台有公共API,你就可以找到插口(或自己编写)。如果你想增加对X交易平台的支持,我接受协作。
2、有损失钱的情况吗?
我在仿真中见到过损失,所以是有可能的,尽管机器学习只需要花几分钟来获取一个合适的(尽管是虚拟的)利益边缘。如果机器人开始损失钱,你可以介入,然后进行人工交易或者关掉机器人来防止更多的损失。
3、交易机器人会基于什么准则来决定关闭交易?
Zenbot总是根据市场标签来交易,也就是说,该指令不是编写好的,不管最后系统交易的价钱是多少,交易总会进行下去。这样以来,Zenbot永远不需要取消指令或比较价格。
4、[bot] not enough currency to buy!是什么意思?
意思是机器人想要买入,但是没有足够的余额了。成交量计数器会置零。如果你觉得可以投资,你可以在账户存钱,Zenbot就会在下次贸易信号触发时使用你的金额。
GitHub项目:https://github.com/carlos8f/zenbot
《全球人工智能》旗下业务
AIJobs:免费为全球数万名AI开发者提供求职服务,目前提供约2000个AI技术岗位
(咨询加微信:aihr007)
OpenAI:免费为全球Top30AI开放平台的数十万AI开发者提供最新动态、交流和学习
(咨询加微信:bushyu)
AISchool:专注为全球AI科学家和学习者提供线上线下的技术交流、学习和直播等
(咨询加微信:AIzhineng007)
投稿:news@top25.cn活动合作:wxsaomu
热门文章推荐
如需要了解产品详情,可电话咨询专业客服人员:15358521011(微信同号)