策略参数
策略界面上设置的策略参数在策略代码中以全局变量形式体现。JavaScript语言、C++语言、My语言策略代码中可以直接访问策略界面上设置的参数数值或修改参数。Python策略的函数中修改全局变量、策略界面参数时需要使用global关键字。PINE语言使用input()函数创建界面参数。Blockly可视化方式设计的策略没有界面参数。

界面参数种类
| 变量(命名举例) | 描述 | 类型 | 默认值(说明) | 组件配置(说明) | 备注 |
|---|---|---|---|---|---|
| pNum | 参数pNum的描述 | 数字型(number) | 举例:设置默认值为100,C++策略中为浮点型 | 用于设置当前参数绑定的界面控件:组件类型、最小值、最大值、分组、过滤器等 | 参数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。在策略代码中以全局变量形式存在,因此可以在代码中修改策略参数。
6、对于「加密串」和「字符串」类型的参数,输入默认值时无需添加引号,所有输入均作为字符串处理。「加密串」参数的使用方式与「字符串」参数相同,加密字符串会被加密传输,不会以明文形式发送。
7、「字符串」类型的参数如果设置为「选填」,当参数绑定的控件中未填写参数时,参数变量的值为空字符串;
同理,「数字型」参数的值为空值;
同理,「下拉框」参数的值为空值;
同理,「加密串」参数的值为空值。
8、对于下拉框类型的界面参数,例如变量名为pCombox。在「组件配置」中未开启「支持多选」时,pCombox的值为当前选中选项的索引或具体数据(给选项绑定数据时)。
如果开启了「支持多选」,pCombox的值为一个数组,包含所有当前选中选项的索引或具体数据(给选项绑定数据时)。
组件配置
策略界面参数的「组件配置」选项用于设置平台上5种参数类型对应的控件,增强功能并简化设计。
5种界面参数支持的组件类型:
- 数字型(number)参数
支持的组件类型:输入框控件(默认)、时间选择器控件、滑动输入条控件。 - 布尔型(true/false)参数
仅支持开关控件(默认)。 - 字符串(string)参数
支持的组件类型:输入框控件(默认)、文本框控件、时间选择器控件、颜色选择器控件、交易代码。 - 下拉框(selected)参数
支持的组件类型:下拉框控件(默认)、分段控制器控件、交易代码。 - 加密串(string)参数
仅支持加密输入框控件(默认)。
除了设置界面参数对应的控件类型外,还可以设置界面参数的分组和过滤。
- 分组
在组件配置的「分组」输入框中,可以输入一个标签名称,将若干个策略界面参数划分到同一个分组标签中(替代平台旧功能「策略分组」)。 - 过滤器
在组件配置的「过滤器」输入框中,可以输入过滤判定的表达式,控制界面参数是否生效(替代平台旧功能「参数依赖」)。
过滤器默认为空,不进行任何参数条件过滤;可以设置:a > b、a == 1、a、!a、a >= 1 && a <= 10、a > b等。当过滤器条件为真时,当前参数可用。- 当某个参数设置了过滤器:
a == 1时,该参数的可用性依赖于参数a的取值。当参数a等于1时该参数可用,否则该参数不可用。 - 当某个参数设置了过滤器:
a >= 1 && a <= 10时,表示过滤条件为:a大于等于1且a小于等于10。符合此条件时参数可用,否则参数不可用。 - 当某个参数设置了过滤器:
!a时,表示过滤条件为:非a;a可以是布尔值,也可以是数值(!0表示真值)。
- 当某个参数设置了过滤器:
保存参数设置
-
回测系统中的参数保存
在回测时如果希望保存策略参数,可以在修改策略参数后点击「保存回测设置」按钮,详情请参考回测系统「保存回测设置」。变量 描述 类型 默认值 number 数值类型 数字型(number) 1 string 字符串 字符串(string) Hello youquant 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 youquant"],["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 youquant"],["combox",2],["bool",false],["numberA@isShowA",666],["isShowA",true]] '''c++/*backtest start: 2020-02-29 00:00:00 end: 2020-03-29 00:00:00 period: 1d args: [["number",2],["string","Hello youquant"],["combox",2],["bool",false],["numberA@isShowA",666],["isShowA",true]] */ -
实盘参数导入导出
运行实盘时如需保存实盘配置的参数数据,可以点击策略实盘页面中的「参数设置」选项,然后点击「导出参数」按钮,导出的策略参数将以json文件格式保存。
导出的策略参数配置可以再次导入实盘,点击「导入参数」按钮即可将保存的策略实盘参数导入到当前实盘,导入后点击「更新参数」按钮使配置生效。