资源加载中... loading...

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

Author: 发明者量化-小小梦, Created: 2017-05-05 19:03:55, Updated: 2020-03-30 13:51:24

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

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

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

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

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

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

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

策略参数是这样的:

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

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

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

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

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

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

    注意:

    • 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
    */
    

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

    注意:

    • 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")  

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

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

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

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

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

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

  • #### 测试策略地址:

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

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

注: 改动 args 调整为 defaults

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

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

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

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

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

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

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

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

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

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

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

更多内容

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

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

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

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

发明者量化-小小梦 费率 直接 在 策略界面上 设置一个参数 指定就可以了。

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

发明者量化-小小梦 这个不行 , 这个只是给回测系统 配置的 参数的代码。

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

hokshelato 倒不是刷新的问题,原来是我在语句后面还加了注释,BotVS 无法正确解析的原因。比如: ```js /*backtest mode: 1 // 实盘级 tick */ ``` 带了注释,`mode` 始终被设置为 **0**(模拟级)。

发明者量化-小小梦 哦 您说的 这几个 在 代码中设置不了。

发明者量化-小小梦 设置 后需要刷新下 页面 才生效,估计是这个问题,您试下。

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

Zero 可以保存手续费配置了

J +1

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

发明者量化-小小梦 这个因为 有些复杂,暂时还在设计中,看怎么设计最合理、方便、高效。

发明者量化-小小梦 感谢提出建议,确实这个也需要设置,我已记录下报告Z大。