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

策略界面上设置的策略参数,在策略代码中以同名的全局变量(Rust 中为全局常量)出现,直接用变量名访问:

  • JavaScript、My语言:可以直接读取参数,也可以在代码中修改参数变量。
  • Python:可以直接读取;在函数中给参数变量重新赋值时,需要先用global声明。
  • Rust:参数是常量,只能读取,不能修改;各种参数对应的类型见 Rust。
  • PINE:使用input()函数创建界面参数。
  • Blockly可视化:没有界面参数。

策略参数设置界面

变量(命名举例)描述类型默认值(说明)组件配置(说明)备注
pNum参数pNum的描述数字型(number)举例设置默认值为:100,Rust策略中为f64用于设置当前参数绑定的界面控件的:组件类型、最小值、最大值、分组、过滤器等参数pNum的备注,pNum的值为数值类型
pBool参数pBool的描述布尔型(true/false)使用开关控件设置默认值,不具备选填控件同上参数pBool的备注,pBool的值为布尔类型
pStr参数pStr的描述字符串(string)举例设置默认值为:abc同上参数pStr的备注,pStr的值为字符串类型
pCombox参数pCombox的描述下拉框(selected)设置选项中的某一个选项或多个选项同上参数pCombox的备注,pCombox的值可能有多种形式
pSecretStr参数pSecretStr的描述加密串(string)举例设置默认值为:xyz同上参数pSecretStr的备注,pSecretStr的值为字符串类型

界面参数,在策略编辑页面代码编辑区下方策略参数区设置,需要注意:
1、参数设置的默认值选项中「选填」控件默认为选填状态,可以改变该控件的状态,设置当前参数为必填。设置参数默认值为必填后,如果策略在回测/实盘时没有设置该参数则无法进行回测/启动实盘。
2、界面参数在策略代码中的变量名不要设置为当前编程语言的保留字(关键字)。
3、在回测/实盘界面鼠标放在参数绑定的控件上时,会显示设置的参数备注信息。
4、参数的「描述」即参数绑定的控件的显示名称。
5、参数的「变量」即以上表格中的:pNum、pBool、pStr、pCombox、pSecretStr。在策略代码中是以全局变量形式存在的,也就是说可以在代码中修改策略参数(Rust 除外:Rust 中参数是全局常量,不能修改)。
6、对于「加密串」和「字符串」类型的参数,默认值输入时不需要加引号,输入均作为字符串处理。「加密串」参数的使用与「字符串」参数相同,加密字符串会被加密发送,不会明文传输。
7、「字符串」类型的参数如果设置为「选填」,当参数绑定的控件中不填写参数时,参数变量的值为空字符串;
同理,如果是「数字型」的参数,参数变量的值为空值。
同理,如果是「下拉框」的参数,参数变量的值为空值。
同理,如果是「加密串」的参数,参数变量的值为空值。
Rust策略中,没有填写的选填参数为该类型的零值:数字为0,字符串、加密串为空字符串,布尔为false。
8、对于下拉框类型的界面参数,例如变量名为pCombox。在「组件配置」中没有开启「支持多选」时,pCombox的值为当前选中的选项索引或具体数据(给选项绑定数据时)。
如果开启了「支持多选」时,pCombox的值为一个数组,数组包含所有当前选中的选项的索引或具体数据(给选项绑定数据时)。

策略界面参数和策略交互控件都有「组件配置」选项,用于设置参数(或交互控件)对应的界面控件,以及最小值、最大值、分组、过滤器等。

各种类型支持的组件:

  • 数字型(number)
    输入框控件(默认)、时间选择器控件、滑动输入条控件。
  • 布尔型(true/false)
    仅支持开关控件(默认)。
  • 字符串(string)
    输入框控件(默认)、文本框控件、时间选择器控件、颜色选择器控件、币种、交易代码。
  • 下拉框(selected)
    下拉框控件(默认)、分段控制器控件、币种、交易代码。
  • 加密串(string),仅策略参数
    仅支持加密输入框控件(默认)。
  • 按钮(button),仅交互控件
    只有一个按钮控件(默认),没有输入项。

分组

在组件配置的「分组」输入框中输入一个标签名,可以把若干个策略参数划分到同一个分组中(代替平台旧功能「策略分组」)。交互控件同样可以分组(代替旧功能「交互控件分组」)。

过滤器

策略参数的组件配置中,「过滤器」输入框可以填写判定表达式,控制参数是否可用(代替平台旧功能「参数依赖」)。
过滤器默认为空,不做任何过滤;可以设置:a > b、a == 1、a、!a、a >= 1 && a <= 10等。过滤条件为真时,当前参数可用。

  • 设置过滤器a == 1:该参数是否可用取决于参数a的值,a等于1时可用,否则不可用。
  • 设置过滤器a >= 1 && a <= 10:a大于等于1并且小于等于10时可用,否则不可用。
  • 设置过滤器!a:过滤条件为「非a」;a可以是布尔值,也可以是数值(!0为真)。

  • 回测系统中的参数保存
    在回测时如果希望将策略参数保存,可以在策略参数修改后点击「保存回测设置」按钮,参考 回测配置与保存。

    变量描述类型默认值
    number数值类型数字型(number)1
    string字符串字符串(string)Hello FMZ
    combox下拉框下拉框(selected)1|2|3
    bool布尔值布尔型(true/false)true
    numberA@isShowA数值A数字型(number)2
    isShowA是否显示numberA参数布尔型(true/false)false

    设置后的策略参数以代码形式保存在策略中,例如:

    javascript
    /*backtest start: 2020-02-29 00:00:00 end: 2020-03-29 00:00:00 period: 1d args: [["number",2],["string","Hello FMZ.COM"],["combox",2],["bool",false],["numberA@isShowA",666],["isShowA",true]] */
    python
    '''backtest start: 2020-02-29 00:00:00 end: 2020-03-29 00:00:00 period: 1d args: [["number",2],["string","Hello FMZ.COM"],["combox",2],["bool",false],["numberA@isShowA",666],["isShowA",true]] '''
    rust
    /*backtest start: 2020-02-29 00:00:00 end: 2020-03-29 00:00:00 period: 1d args: [["number",2],["string","Hello FMZ.COM"],["combox",2],["bool",false],["numberA@isShowA",666],["isShowA",true]] */

    Rust策略如果在开头用 frontmatter 声明了依赖,回测配置块要放在 frontmatter 之后,见 Rust。

  • 实盘参数导入导出
    运行实盘时需要保存实盘配置的参数数据,可以点击策略实盘页面中「参数设置」选项,再点击「导出参数」按钮,导出的策略参数将以json文件保存。
    导出的策略参数配置也可以再次导入实盘,点击「导入参数」按钮即可把保存的策略实盘参数导入到当前实盘,导入后点击「更新参数」按钮保存生效。