Type/to search
8
Follow
1364
Followers
如何使用代码精确调整“回测系统默认设置”
Tutorials
Created 2017-05-05 19:03:55  Updated 2020-03-30 13:51:24
 17
 4432

如何使用代码精确调整“回测系统默认设置”

部分内容已经调整,最新参看API 文档。

在策略的参数测试,不同时间段回测,多个标的物回测等,回测策略时由于参数需要反复调整,而且不能记录,下次回测时又要重新设置。平台为了方便参数调整,新增加功能 -- 使用代码精确调整“回测系统默认设置”。

  • 1、没有使用该功能的时候

    img

    可以看到这是一个测试 策略,代码如下:

    function main(){ while(true){ LogStatus("测试默认参数!"); Sleep(); } }

    策略参数是这样的:

    img

    此时的【回测界面】中参数是如下图的默认设置

    img

  • 2、使用代码 调整回测默认设置

    • 回测系统参数部分:
      /*backtest start: 2017-03-01 end: 2017-03-02 period: 15 mode: 1 */

      img

      注意:

      • period : 15 15指的是15分钟, 平台支持的周期为 1分钟、5分钟、15分钟、30分钟、 1小时、1天
        那么1小时怎么表示? 1小时 = 60分钟, 写成 period : 60 就可以了。
        那么1天怎么表示? 1天 = 24 * 60 分钟, 写成 period : 1440 就可以了。

      • mode: 1 mode 指的是 回测的模式, 回测系统支持 模拟级别回测实盘级别回测 。 这里1代表的是下拉框的索引, 0 为 模拟级别回测 , 1为实盘级别回测

    • 回测策略参数部分:
      /*defaults number : 0 bool: false string: Hello BotVS! comboBox : 2 */

      img

      注意:

      • comboBox : 2 这个2 指的是 下拉框的索引, 下拉框第一个选项的索引是0, 第二个选项的索引是1,第三个选项的索引是2。
      • 加密串 类型参数 和 字符串类型 相同操作设置。
    • 完整的测试代码

Javascript

/*backtest start: 2017-03-01 end: 2017-03-02 period: 15 mode: 1 */ /*defaults number : 0 bool: false string: Hello BotVS! comboBox : 2 */ function main(){ while(true){ LogStatus("测试默认参数!"); Sleep(); } }

Python

''' /*backtest start: 2017-03-01 end: 2017-03-02 period: 15 mode: 1 */ /*defaults number : 0 bool: false string: Hello BotVS! comboBox : 2 */ ''' def main(): Log("OK")

刷新一下,然后看看回测页面 与 之前有没有变化。(注意: 代码修改的默认参数设置在第一次进入页面时生效,中途修改不生效,保存后刷新即生效)。

img

可以看到,不论是 “回测系统的默认参数” ,还是 “策略的默认参数” ,都根据代码做出了相应的修改。
保存需要的设置,再也不用点来点去设置回测参数了。

  • 3、使用 MATE 按钮 将回测页面设置的参数 以代码形式 插入到策略代码中:

    img

    这样在第一次 以代码形式 设置 默认回测参数 时就不用手写了, 可以在回测页面设置好,直接插入到代码中。

  • 测试策略地址:

    img

    https://www.fmz.com/strategy/40155

注: 改动 args 调整为 defaults

  • 2017.12.17 优化 “保存回测设置” 功能 (按钮控件原名为 META )

    img

    例如:
    在设置完回测选项时(比如 时间、交易所、K线周期 等等)
    可以点击 策略编辑页面的 “保存回测设置” 按钮, 将回测配置 以代码形式保存在策略中,下次回测会以此代码 默认配置回测选项。

    img

    代码会自动添加到编辑区最开始,以注释形式保存。

    img

    这样 随手保存下,下次就不用再配置回测信息了。

    如果调整了 回测 的交易所对象的 费率设置:

    img

    然后 保存回测设置 ,就可以看到 回测的 设置 中出现了 一个费率设置。

    # 注意: 尽量不要手动修改 或者 设置 回测设置 (即 backtest 段代码) 代码。
Related Recommendations
Comment
All comments (17)

    生成了这个配置信息,在策略里面可以直接调用的吗?比如说这个费率,余额余币做收益计算呢?

    8 years ago

    这个不行 , 这个只是给回测系统 配置的 参数的代码。

    8 years ago

    梦神,有办法在策略中获得回测平台设置的费率参数吗?

    8 years ago

    费率 直接 在 策略界面上 设置一个参数 指定就可以了。

    8 years ago

    mode: 1 似乎无效,界面上始终显示的是 模拟级 Tick

    8 years ago

    设置 后需要刷新下 页面 才生效,估计是这个问题,您试下。

    8 years ago

    倒不是刷新的问题,原来是我在语句后面还加了注释,BotVS 无法正确解析的原因。比如:

    javascript
    /*backtest mode: 1 // 实盘级 tick */

    带了注释,mode 始终被设置为 0(模拟级)。

    8 years ago

    好的 明白了 ^^ , 这个 本身是 注释代码,可能里面再注释 就引起解析错误了。

    8 years ago

    nice work!是不是把添加交易所和买入卖出手续费设置一并给代码化了,每次都要调这几个

    9 years ago

    可以保存手续费配置了

    8 years ago

    这个因为 有些复杂,暂时还在设计中,看怎么设计最合理、方便、高效。

    9 years ago

    简单啊,设置一个按钮,功能为保存当前设置为默认设置选项。弄完之后你们自己生成这串代码插入,还是后台记录也好,都比现在方便的多

    9 years ago

    要是能设置 余额 和余币 那就更好了。

    9 years ago
    J

    +1

    9 years ago

    感谢提出建议,确实这个也需要设置,我已记录下报告Z大。

    9 years ago

    同问,不知现在余额余币买入卖出能否在 /*backtest 中设置了?

    8 years ago

    哦 您说的 这几个 在 代码中设置不了。

    8 years ago
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)