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

「模拟回测」分页中的回测配置(时间范围、交易所、手续费等)和策略参数可以随策略保存,再次打开策略时自动载入。

保存

  • 点击「保存回测设置」:把回测配置和策略参数以注释(backtest注释块)的形式写在策略源码开头。
  • 点击「保存策略」:平台同时记录当前的回测配置和策略参数。

载入

  • 打开或刷新策略编辑页面时,优先载入源码中backtest注释块记录的配置。
  • 源码中没有backtest注释块时,载入最后一次「保存策略」时记录的配置。
  • 在源码中手动修改了backtest注释块后,点击注释块上方的「回测设置」按钮,把修改同步到回测页面的选项中。

注释块格式

在该语言的块注释起始符后紧接着写backtest,之后每行一个键: 值:

javascript
/*backtest start: 2024-01-01 00:00:00 end: 2024-03-01 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Binance","currency":"BTC_USDT","balance":10000,"stocks":0,"fee":[0.1,0.1]}] args: [["fast",5],["slow",20]] */

各语言的注释写法:JavaScript、TypeScript、Rust、PINE语言使用/*backtest ... */;Python使用'''backtest ... ''';My语言使用(*backtest ... *)。

键格式说明
start、endYYYY-MM-DD HH:mm:ss开始、结束时间,按浏览器所在时区解析。
period1m、1h、1d等,或秒数策略K线周期。
basePeriod同上底层K线周期,不写时与period相同;实盘级Tick模式下忽略。
mode1实盘级Tick模式;不写为模拟级Tick模式。
exchangesJSON数组每个元素对应一个交易所对象,字段见下表。
argsJSON数组策略参数,[["参数名", 值], ...];第三个元素为模板Id时设置该模板的参数:["参数名", 值, 模板Id]。

exchanges元素的字段,除eid、currency外都可以省略:

字段说明
eid交易所Id,例如Binance、Futures_OKX。
currency交易对,例如BTC_USDT。
balance、stocks计价币、交易币的初始余额。
fee[挂单费率, 吃单费率],单位为百分比。
feeMin每笔成交的最低手续费,只对部分市场生效。
depthDeep、depthAmount深度档位、模拟盘口每档的数量。
tradesMode实盘级Tick模式下是否回放逐笔成交:"0"回放,"1"不回放。
feeder自定义数据源地址,见自定义数据源。

「保存回测设置」还会写入一些以bt开头的键(例如btSlipPoint滑点、btNetDelay网络延迟、btFaultTolerant容错概率、btMaxBarLenK线最大条数),记录回测页面上其他选项的取值,不建议手工修改。本地回测引擎也读取同样的注释块,见本地回测引擎。