零成本快速打造你自己专属的多用户量化交易平台

Author: 小小梦, Created: 2018-04-14 14:30:55, Updated: 2019-07-31 17:42:26

零成本快速打造你自己专属的多用户量化交易平台

人人都可以使用发明者量化扩展API构建一个量化交易平台,本范例项目展示了使用Python与发明者量化扩展API构建立功能强大的量化交易平台。

  • 嵌入现有系统

    根据本DEMO项目可以参考编写服务端代码,增加前端页面以用来嵌入现有论坛,博客,社区等系统。 以实现灵活接入现有用户群体,并且现有用户群体完全体验不到发明者量化的底层技术支持,用户使用更加简洁,易操作。

  • 支持市场

    • CTP 商品期货 (上期所、郑商所、大商所、中金所)
    • 易盛外盘 (CME, CBOT等主流国外期货交易所)
    • 全球交易30多个区块链资产交易平台
  • 打造属于自己的量化平台

    • 高度自由的策略设计

      使用 Python 、JavaScript 、C++ 语言编写 量化交易策略,自由定制,可以在量化交易的世界天马行空般的实现自己的交易思路。

    • 强大高效的回测系统

      从此再也不用辛苦收集数据,本地回测系统引擎 只用一个命令轻松配置,链接:https://github.com/fmzquant/backtest_python

    • 精简的架构

      只用编写几个 前端页面,一个HTTP服务端程序,即可轻松搭建。

  • DEMO项目

    • 名称:发明者量化演示如何使用发明者量化的扩展API打造自己的资产管理量化平台

    • 本DEMO项目 安装

      • 首先 clone 本DEMO项目

        git clone https://github.com/fmzquant/fmz_extend_api_demo.git
        

        alt

      • 切换到这个 目录,执行 pip 安装

        img

        pip install -r requirements.txt 
        

        img

        注意:如果提示 Permission denied , 需要 sudo pip install -r requirements.txt 这样执行 pip ,根据要求输入操作系统密码。

      • 安装完成后,配置一下 服务端程序 要使用的 发明者量化 账号的 API KEY

        发明者量化 扩展 API KEY 使用 详见 发明者量化 API 文档:https://www.fmz.com/api

        创建 发明者量化 API KEY

        img

        把 API KEY 写入 ,本DEMO 的 app.py 服务端程序。

        img

    • 本DEMO项目 服务端运行命令

      python app.py
      
      • 运行显示:

        img

        运行服务端程序后,在浏览器打开 本地页面: http://127.0.0.1:5000

        img

      • 测试注册页面

        img

        本项目 DEMO 量化平台 已经运行起来了,注册好 这个测试平台的 账号(储存在本地数据的),登录进去 配置 作为这个平台用户的 交易所API KEY。

        img

        img

        现在配置好了如图:

        img

        页面显示的三个策略 仅仅是 UI显示,这些还需要 资产管理量化平台 的管理者 具体设计实现,这里只做演示用。

      • 配置一个测试策略 本DEMO项目 ,服务端 会检测到 “一键启动” 按钮按下,触发搜索发明者量化账号中 包含 “main” 关键字的策略,使用该策略 绑定机器人运行。 所以我们先创建一个 名为 main Test profit 的策略

        main Test profit 策略代码如下:

        function main() {
            while(true) {
            LogProfit(Math.random()*100);
                Sleep(1000);
            }
        }
        

        img

        编辑代码后,点击保存。

        注意:在运行前必须确保有一个托管者在线。(认识托管者:https://www.fmz.com/bbs-topic/463

      • 点击 “一键启动” 按钮, 会自动创建一个 机器人 运行,这个机器人绑定一个演示策略只会随机输出数值作为收益数值显示出来。

        可以看到 在发明者量化的控制中心上显示 出一个 新创建的机器人: img

        DEMO 网页上也显示出对应的 随机数值 img

      • 在发明者量化 上运行的机器人 由 appId 识别 当前DEMO平台 登录的 用户

        img

        def robot_run(robotId, appId, exchanges):
            strategyId = -1
            # 从策略库里选出一个包含main字符串的策略运行, 也可以预定义
            for ele in api("GetStrategyList")['data']['result']['strategies']:
                if 'main' in ele['name']:
                    strategyId = ele['id']
            if strategyId < 0:
                raise u"not found strategy"
            settings = {
                    "name":"robot for %s" % (appId, ),
                    "args": [], # our custom arguments for this strategey
                    "appid": appId, # 为该机器人设置标签,关联到本用户
                    "period": 60,
                    "strategy": strategyId,
                    "exchanges": [],
                    }
            for e in exchanges:
                settings["exchanges"].append({"eid": e.eid, "pair": get_default_stock(e.eid), "meta" :{"AccessKey": e.accessKey, "SecretKey": e.secretKey}})
            if robotId > 0:
                return api('RestartRobot', robotId, settings)
            else:
                return api('NewRobot', settings)
        

        可以看到 代码中 settings 是创建 机器人的配置信息, appid 就是用来 标记用户的。

  • 更新

    # Github 地址更新:  https://github.com/fmzquant/fmz_extend_api_demo
    

More

Nature量化投资 配置的环境一直不对。请问需要那个版本的python?与需要搭配什么环境

churchillxy 基于这种方式打造的量化平台,①其他用户注册,是不是只能看到管理者创建的策略?可以看到源码吗? ②用户是否可以基于管理者的策略,配置用户的交易所API,运行用户自己的实盘?

Lizza zero野心很大啊,关键是能力配得上野心

J 自己建的这个平台只能查看和控制机器人的运行,不能编写策略和添加机器人吧?

小小梦 这是一个DEMO,是开源的,可以直接看到源码。https://github.com/fmzquant/fmz_extend_api_demo.git

churchillxy 好的,谢谢

小小梦 ``` 另外,怎么加上论坛这些功能 ``` 这些可以具体开发。这个DEMO简单说就是您可以自己搭建一个网站,然后通过FMZ的扩展API,使用FMZ的实盘服务。这样您仅仅搭建一个网站,就可以做一个平台了。通过扩展API创建实盘,计费之类的和在FMZ上直接使用一样。

churchillxy 用户运行成本是不是也是 是不是0.05美元/小时?另外,怎么加上论坛这些功能

小小梦 您可以设计让用户看见策略,可以让用户配置自己的参数。这些都是基于您的产品设计(底层服务是FMZ)。就好比文章中的DEMO,可以根据产品需求自由设计属于你自己的量化平台。

小小梦 暂时 没有开放 策略编写接口(以后可能会开放),其他功能都有(比如 创建机器人等。) , 调试工具 接口也支持了。