Loading ...

FMZ发明者量化平台使用入门

Author: 小草, Created: 2019-08-09 14:54:48, Updated: 2019-10-18 17:29:54

[TOC] 学习完这篇教程你将了解FMZ发明者量化交易平台的架构和功能,能够创建策略并实际运行机器人。关于具体策略编写API将在初级教程里介绍。

FMZ发明者量化交易平台

简介


FMZ发明者量化平台(原BotVS)是国内最专业的量化社区,创建于2015年。在这里你可以学习、编写、分享、买卖量化策略,在线回测和使用模拟盘模拟交易,运行、公开、围观实盘机器人。支持商品期货与易盛外盘期货, 也支持几乎所有的常用的数字货币交易所。FMZ适用于量化交易初学者,即使无基础也可以快速入门,平台功能强大灵活,也可以能满足进阶需要。欢迎加入QQ官方5群讨论:863946592,以及首页微信群。

对于数字货币现货交易所,目前几乎支持所有的,如果有其它需要的交易所,提出后也会很快支持;数字货币期货交易支持有:OKEX、Huobi、GateIO、BitMEX、Deribit、BFX;支持的杠杆交易所有:OKEX、Huobi、Binance、FCoin、ZB、Bibox;支持的永续合约交易所有:BitMEX、Deribit、GateIO、OKEX、BFX、Bibox;模拟交易所:交易所的测试网如BitMEX以及FMZ官方现货模拟交易平台wex.app。

FMZ量化平台支持使用Javascript、Python、C++等完整的高级语言,也支持可视化语言和麦语言(兼容文华财经)实现策略。

平台按小时计费, 每个实盘运行的机器人, 每小时 0.125 元, 不足一小时按一小时计费,暂停后重启不重复收费,商品期货模拟盘simnow和wex.app免费。

平台架构


FMZ的架构特殊,具有很多优势。FMZ网站主要功能是编写策略,管理机器人,而机器人具体执行则在用户自己在服务器或电脑的托管者上,托管者负责和FMZ网站通信来传递日志、直接访问交易所获取行情和交易。如果FMZ网站出现短暂问题,也不会影响策略机器人的执行。用户可以将托管者部署到任何地方来提高交易速度,通过网站随时随地的管理机器人、查看日志、修改参数。更多介绍参考:https://www.fmz.com/bbs-topic/462

API-KEY安全性


API-KEY是用户重要隐私信息,FMZ并不保存用户的KEY,服务器保存浏览器根据用户密码加密过的数据,机器人创建时再发往托管者,托管者解密后使用,由于FMZ不保存用户密码明文,所以用户的API-KEY即使是FMZ这也无法获取。用户需要保护好API-KEY明文、FMZ网站密码以及托管者所在服务器。FMZ量化平台运行4年多,经过数万名用户使用,并未发生过任何安全问题。

新手入门步骤


  1. 学习一门编程语言,推荐Javascript和Python,只需要简单会使用即可。
  2. 熟悉FMZ平台使用,部署自己的托管者,熟悉策略、机器人、托管者、网站之间的关系。
  3. 浏览API文档,了解接口和功能。
  4. 学习策略广场的教学策略,并自己上手写一下简单的功能机器人,如价格推送,冰山委托之类。
  5. 构思自己的策略,熟悉具体API接口和常见的错误信息,学会正确提问和搜索相关帖子。
  6. 模拟盘和实盘运行策略,在实战中发现更多问题。

做重要的是要敢于开始学习,一步步来,所有步骤一定要亲自上手。即使初学看起来非常困难,但当你完成第一个策略后,会发现一切都如此简单。如果有一定的编程基础,一周内可以入门写出策略,如果编程知识也完全不懂,最多也就两周。

如果遇到问题,可以随时到论坛发帖提问 https://www.fmz.com/bbs ,或者发工单 https://www.fmz.com/m/tickets ,或者在QQ群或者微信群@管理员,一般都会很快解答。注意先尝试搜索文档或论坛解决,提问时问题需要提供充足的信息。

学习资源推荐


30分钟运行一个实盘机器人

从头开始运行一个机器人的步骤如下:

  1. 添加交易所API-KEY到FMZ网站。
  2. 创建需要运行的策略。
  3. 部署运行机器人的托管者。
  4. 创建机器人。

如果前三个步骤已经做过了,只需要第四步就行了,接下来就以一个微信价格预警机器人为例,从头介绍如何实盘一个机器人,更多关于平台详细功能将在下一章介绍。

1.添加交易所


首先需要登陆到相应的交易所网站申请API-KEY,KEY分为两个Access KeySecret Key,Access Key可能有其他名字,但只要记住一个是Secret Key,另外一个就是Access Key。API-KEY是加密数据和验证身份使用的,类似于用户名密码,非常重要不能泄露。不同的交易所申请位置不同,只要寻找“API”就能找到。注意如果交易所同时支持现货和期货,需要分别添加,如OKEX和OKEX期货,Huobi和Huobi期货,它们的API-KEY可以一样。 这里以FMZ官方模拟交易所Wex.app为例,商品期货交易商添加参考:https://www.fmz.com/bbs-topic/4158

网址为 https://wex.app ,需要邮箱注册账户,注册完成后在Wex模拟交易所要把“我的钱包”中的虚拟资产转到“币币账户”上,初始是没有交易资产的。在网站右上角用户头像处点击API管理。点击“创建”,输入邮箱验证码即可创建。其中可以看到IP限制和权限管理。IP限制可以只让此IP地址下的程序访问账户,更加安全。权限不要忘记添加交易权限,否则无法下单。 img

这次演示得到的API-KEY,Access Key:9af1b5bfe833b2ee0d54bb95325579d5,Secret Key:2043b8629620d4d69590803c55fa92bc,只能看到一次,别忘了记录下来保存好。 img

进入添加交易所界面 https://www.fmz.com/m/platforms ,点击“添加交易所”按钮。 img

首先交易所类别选择数字货币,交易所名称选择WexApp(由于交易所很多,可以直接输入文字刷选),然后把刚刚申请的KEY复制进去,注意一个交易所可以多次添加,使用不同的标签区分。添加交易所需要输入FMZ网站密码,在这里浏览器对输入的KEY进行加密后上传。 img

添加完成后,就可以在这个页面看到已添加的交易所,也可以修改已添加的交易所。 img

2.创建策略


在策略页面:https://www.fmz.com/m/strategies ,点击“新建策略”即可。为了演示我们直接复制一个策略即可,在策略广场的教学策略中可以找到“设定比特币价格并微信推送(教学)"的公开策略,地址 https://www.fmz.com/strategy/125482 ,点击复制策略。

下图为复制后的策略,其中策略名称中有“|”分割中英文,如果你想发布一个英文名称的策略也可以用这个方法。参数是全局变量,在策略代码中可以直接引用。策略代码很简单,在死循环中不断使用GetTicker()获取最新价格,当达到推送标准后,就向微信推送一条消息(需要在FMZ网站绑定微信账户)。点击“创建策略",就可以在自己的策略库看到这个策略了。 img

3.部署托管者


托管者页面:https://www.fmz.com/m/nodes 。前面说过,用户的机器人不是由FMZ平台运行,而是由用户自己运行,所以需要一个执行策略的程序,就是托管者。托管者可以运行在Linux\Mac\Windows上。注意由于几乎所有的数字货币交易所在国内都无法使用,托管者需要运行在海外服务器上,用户可以自己选择服务器提供商购买Linux服务器,服务器可选Amazon、谷歌、digitalOcean等。如果没有双币信用卡也可以选择支持支付宝的服务商。服务器配置一般选最低即可,价格约为1元/天。

购买服务器看起来很困难,但是是进行数字货币量化的必须步骤,这里有一个详细的购买演示:。 如果觉得海外公司麻烦,也可以选择阿里云香港服务器。如果也觉得麻烦,可以从FMZ平台直接按时一键租用,FMZ会从阿里云等服务器厂商直接租用新的服务器并自动部署用户的托管者,最为简单但价格相对较贵。具体的Linux服务器部署和升级的详细步骤参考:https://www.fmz.com/bbs-topic/2848

本次演示由于是模拟交易所,可以直接部署到自己电脑上(商品期货也可以使用自己的电脑)。选择64位界面版,解压后右键以管理员权限运行robot程序。把网站上的地址(每个用户都不相同,登陆后在托管者页面查看)和FMZ网站密码信息填写到程序中,点运行,如出现2019/08/09 12:03:30 Login OK, SID: 90706, PID: 31376之类的字样说明运行成功。在托管在目录可以看到logs文件夹,机器人日志将保存在那里。在托管者管理界面可以看到刚才部署的托管者。 img img

一个托管者可以运行多个机器人(服务器最低配置运行十几个机器人也没问题),注意一个服务器可以部署多个托管者,但一般不需要。托管者和FMZ网站通信来返回机器人状态以及控制机器人,由于海外服务器和国内通信问题,偶尔会出现托管者离线提示,但并不影响机器人实际运行。如果一个托管者彻底离线,将无法操作由此托管者运行的机器人,则需要将此托管者删除。如果添加新功能旧托管者不支持,会发出公告,用户可以根据自己需要选择更新。

4.创建和管理机器人


以上工作做完后,才可以实际运行一个机器人。在机器人页面 https://www.fmz.com/m/robots 点击“创建机器人”,出现以下设置: img

创建机器人时需要设置指定的策略,指定的运行托管者,操作的交易所和交易对,默认K线周期,策略参数等。一个机器人可以添加多个交易所交易对,也可以控制同一个交易所的多个交易对,如果下拉中没有所需要的交易对,可以点击自定义手动输入。除了运行的策略外,其它参数都可以在机器人页面修改。 img

创建机器人后,可以在机器人页面找到,点击可进入正在运行的机器人。 img

至此,我们就创建了一个机器人,是不是很简单。

具体平台功能详解

首先是登陆后的控制中心主页面,其中侧边和顶端是导航栏目,下面将一一介绍。 img

机器人管理


img

  • 1.当前账号余额和消费。
  • 2.点击创建新的机器人。
  • 3.机器人的名字,点击可进入此机器人管理页面。
  • 4.此机器运行的策略名称。
  • 5.机器人的排序方式,可以根据名称、策略、状态、创建时间、盈利等排序。
  • 6.机器人状态,由正在运行、停止、出现错误三种状态。
  • 7.公开自己的机器人,可以在围观中让其它用户看到。
  • 8.停止或重启机器人。
  • 9.搜索机器人。
  • 10.当前机器人可运行的时间。

策略管理


img

  • 1.新建策略
  • 2.注册码管理,管理出售或分享策略的注册码,接下来会详细介绍。
  • 3.策略分组。
  • 4.策略名称。
  • 5.添加和管理新的分组,可以把不同类型的策略分组,方便管理。

策略编写界面说明


策略编写可以在FMZ网站进行,也可以通过远程编写。策略参数将放在下个教程讲解。 img

  • 1.点此进入回测,关于回测的具体说明将放在策略编写初级教程里。
  • 2.策略使用的语言选择,策略创建后不可切换语言。
  • 3.笔记是编写策略的记录,仅自己可见;描述是策略说明,策略公开后其他人可以在策略页面将看到;手册是策略的使用说明,购买或复制策略的可以看到。
  • 4.策略类型,分为通用策略和模板,关于模板以后教程会有详细说明。可参考: https://www.fmz.com/bbs-topic/483
  • 5.策略分组。
  • 6.远程编辑,包含常用的代码编辑器插件,可在本地编写策略,自动同步到FMZ。具体说明:https://www.fmz.com/bbs-topic/276
  • 7.保存,可在编辑状态使用Ctrl+S的快捷键。
  • 7.保存回测设置:会把回测参数保存在代码前面,重新代开策略将保留.
  • 7.下载源码:将代码下载到本地。
  • 7.导入导出策略:顾名思义,并且策略的参数和各种设置一并保留。
  • 7.皮肤:不同的代码背景和着色风格。
  • 7.代码美化:自动整理代码。
  • 7.开启VIM模式,Vim是常用的无界面编辑器,功能强大。全屏 + VIM = 专注的大神
  • 8.选择要引用的模板,要先在策略广场把模板复制下来。

分享或出售自己的策略


img

在操作项的下拉选项中可以看到“公开”选项,有内部分享和公开分享两者方式。内部分享流程如下: img

最后生成复制链接,其他人打开此链接即可,输入复制码,就可以获得这个策略的源码和参数了。

复制地址: https://www.fmz.com/m/t/161415
复制码: e3d2e2edd3060bd6f477c1106cf182f5

选择公开分享,你的策略就会出现在策略广场中,所有人都能看到。

选择“售卖”有三种方式,内部出售、软件注册、公开出售,和公开策略的不同是,其他人通过复制地址将无法获取源码,只能运行机器人。

内部出售是最常用的方式,如果你有策略需要单独分享给他人(不一定收费)可以选择此方式,填写好有效期和并发数量。软件注册不推荐。公开出售的策略出现在策略广场的收费策略中,需要经过审核并且公开一段时间的实盘。

交易终端


交易终端是一个网页版的交易页面,在这里可以手动操作自己添加的所有交易所。 img

  • 1.执行指令的托管者,账户信息、下单之类的都要发到托管者上执行。
  • 2.选择交易所和交易对。
  • 3.部分行情是由FMZ网站推送的,此时提示高速通道。
  • 4.对于没推送的数据,可以选择手动刷新或定时刷新。
  • 5.账户信息。

充值


注意留意FMZ官方的活动,有时会举办充值8折的活动。 img

账户管理


在这个页面管理自己的FMZ账户,这里简要介绍。 img

  • 消息中心:各种消息汇总,包括论坛回帖、工单信息等消息。
  • 谷歌验证:最好开启谷歌二次验证,提高安全性。
  • 额度预警:当账户可用余额小于此值时, 您将会收到邮件与微信通知, 设置为0禁止用此功能, 没有充值或者更改此设置的情况下, 24小时内只通知一次
  • 推送设置:这里可以绑定微信,Telegram,邮箱等,用于接收机器人的推送消息。
  • API接口:FMZ也有自己的API,基本上机器人的所有操作都可以通过API完成,提供了丰富的扩展性。
  • 子账户组:可以创建只有部分权限的子账户功能,可用于策略修改共享账户等作用。
  • 推广返佣:推广FMZ平台,可以获得注册用户充值的返佣,推广链接的形式如下:https://www.fmz.com/sign-up/1247886 。具体说明: https://www.fmz.com/bbs-topic/3828

微信控制机器人


绑定微信后,可以查看机器人状态、FMZ账户余额、以及发送指令控制机器人。具体参考: https://www.fmz.com/bbs-topic/4058


More