输入/搜索内容
入门
欢迎使用发明者量化交易平台
快速开始
密钥安全性
平台基础
账号与计费
实盘计费与充值
子账号
交易所
通用协议
本地凭据文件
交易所特殊说明
证券与期货
加密货币
托管者
策略库
实盘
编写策略
开发工具
回测系统
进阶专题
数据与研究
对外接口

编写和调试策略的工具:策略编辑器、调试工具、在本地编辑器里远程编辑。

在新建策略页面或者从策略库打开一个现有策略,进入编辑页面(例如策略ID为123456的地址为https://www.fmz.com/m/edit-strategy/123456)编写策略。

线上策略编辑器界面

本章介绍编辑器的辅助功能。与编辑页面相关的其它功能:

策略编辑器内置AI助手,可以根据描述生成策略代码,解释、修改选中的代码,调整策略参数和交互控件,并自动回测、分析回测结果。

  • AI助手面板
    代码编辑区右侧是AI助手面板,可以收起和展开。在输入框中描述需求即可对话;先在编辑器中选中代码,选中的代码会作为对话的上下文。
    AI给出的代码、参数和交互控件修改以差异形式显示,可以逐处「接受」或「拒绝」,也可以全部接受;修改策略或自动回测前会先询问是否允许。

  • 选中代码的快捷操作
    选中代码后点击鼠标右键,菜单中有AI操作(例如解释这段代码、优化代码),也可以用⌘1、⌘2……(Windows为Ctrl+1、Ctrl+2……)触发。

    策略编辑器中的AI助手解释代码

  • 智能补全
    在右键菜单中选择开启或关闭智能补全,快捷键为⌘J(Windows为Ctrl+J)。

AI助手按使用量从账户余额扣费,对话中会显示本次费用。

除了编辑器内的AI助手,也可以把自己使用的外部AI助手接入平台,通过对话管理策略、回测和实盘,见AI接入。

在策略代码编辑区域点击鼠标右键,选择弹出菜单中的「命令面板」选项,可查看各种功能的快捷键组合和编辑器命令。

策略编辑器中菜单的命令面板显示

在策略编辑页面的「代码」编辑区内,可以快速查询「语法手册」。根据操作系统不同,使用相应的快捷键:

策略编辑器中语法手册速查

  • Mac系统(苹果电脑)的浏览器中:按住⌘键不放。
  • Windows系统的浏览器中:按住Ctrl键不放。

然后将鼠标移动到需要查询的变量名或函数名上时,会出现跳转链接。点击该链接即可弹出「语法手册」,并自动定位到查询的内容。

选中需要查询的内容,点击鼠标右键弹出菜单。

  • 转到定义:跳转至所查询内容的定义位置。
  • 转到引用:跳转至所查询内容的引用位置。
  • 快速查看-速览定义:在不离开当前代码行的情况下查看所选代码的定义。
  • 快速查看-查看引用:在不离开当前代码行的情况下查看其他代码行中对当前代码的引用情况,支持快速跳转,便于更好地理解代码逻辑和结构。

线上策略编辑页面把策略代码、策略描述、使用说明、开发记录等信息分开记录。

策略文档选项说明

  • 代码:策略程序的源码。
    平台上一个完整的策略包含:策略源码、策略参数设计、交互控件设计、模板类库引用。
  • 笔记:记录策略开发过程中的内容。
  • 描述:策略公开展示时显示的介绍。
  • 手册:只有租用策略后才能看到的说明。

平台支持策略开发过程中的版本迭代功能,在策略编辑页面「代码」编辑区内,点击「历史版本」按钮可以打开策略历史版本管理页面。

  • 当前策略没有任何历史版本快照时,点击「立即创建」按钮创建当前策略的快照。快照内容包括:策略代码、笔记、描述、手册、参数设计、交互设计等。

  • 创建历史快照后,历史版本管理页面右侧会显示已保存的历史快照列表。点击该列表上方的「创建历史版本」按钮可以继续保存新的历史快照。

  • 编辑、使用历史快照:可以对已记录的策略历史快照进行修改历史快照名称、删除历史快照、恢复到历史快照的策略版本等操作。

  • 预览当前选定的历史快照:点击历史版本管理页面左下角的「预览」按钮,可以预览当前历史快照中的策略代码、笔记、描述、手册、参数设计、交互设计等内容。

  • 对比当前选定的历史快照与当前策略的差异:点击历史版本管理页面左下角的「对比」按钮,可以对比当前历史快照与当前策略之间的差异。

实盘运行历史版本

策略的历史版本不仅可以用于代码管理和版本回滚,还可以直接在实盘中运行:

  • 设置默认运行版本:在策略编辑器页面点击「历史版本」按钮,选中某个历史版本后,点击菜单中的「修改」按钮,在弹框中可以勾选「设置为默认版本」选项。如果不设置,默认运行最新版本。

  • 在实盘中使用历史版本:创建实盘或修改实盘参数时,策略所有者可以选择策略的某个历史版本来运行。此功能仅对策略所有者有效。

  • 出租策略的版本控制:当策略出租给其他用户时,租用方只能运行策略所有者设置的「默认运行版本」,无法选择其他历史版本。策略所有者可以通过设置默认运行版本来控制出租策略使用的版本。

调试工具页面提供了一个用于快速测试实盘代码的免费环境,目前仅支持JavaScript语言。

调试工具

使用调试工具测试代码时,代码将直接在指定的托管者上运行,最长运行时间为3分钟。支持调用发明者量化交易平台的所有API函数,但仅支持单个交易所对象。

可以用本地编辑器编写策略,保存时自动同步到发明者量化交易平台。支持VSCode、Vim、Sublime Text 3,JavaScript策略还可以用WebStorm,Python策略还可以用PyCharm。Blockly可视化策略不支持远程编辑。

远程编辑截图

使用步骤

  1. 在策略编辑页面点击「远程编辑」。弹出的窗口上方是各编辑器插件的下载链接,点击跳转到对应的插件页面安装,不同编辑器的安装方式略有差别。
  2. 窗口中显示当前策略的远程同步密钥(token)。密钥为空时,点击「更新密钥」生成。
  3. 把策略源码保存到本地,在源码第一行插入窗口中给出的密钥行(例如JavaScript为// fmz@<密钥>,Python为# fmz@<密钥>),之后每次保存都会自动同步到平台。

也可以不装插件,用curl直接上传本地源码(窗口中有带密钥的完整命令),例如:

bash
curl -T quant.js -H "Authorization: Bearer <密钥>" https://www.fmz.com/rsync

管理密钥

  • 「更新密钥」:生成新密钥,原密钥随即失效。
  • 「删除密钥」:删除当前策略的密钥,关闭远程编辑。

拿到密钥的人可以改写这个策略的源码,不要把密钥公开。