模拟回测
模拟回测在独立模拟账户中读取历史 Tick 文件,以文件行情驱动图表、策略和模拟撮合。本窗口负责文件、映射、速度、播放、暂停及重跑控制;委托、成交和持仓仍在相应交易窗口中查看。

启用与登录
- 打开系统 → 系统参数,在客户端参数中勾选“启用模拟回测”并保存,默认关闭。
- 在登录账户选择窗口选择“模拟回测”。选中它会取消其他账户,选择其他账户也会取消模拟回测。
- 完成模拟账户登录后,从系统 → 模拟回测打开控制窗口。
模拟回测与其他账户不能同时登录。也可以从多账户管理登录模拟回测账户,但已有其他账户在线时应先注销。关闭“启用模拟回测”前须先注销模拟账户。
菜单入口要求功能已启用且模拟账户已登录。控制窗口是独立浮动窗口,再次点击菜单会将已有窗口带到前面。
选择文件与列映射
- 点击选择 CSV 文件,选择 csv、txt、hqtxt 或 tsv 行情文件。
- 连接独立服务端时,可点击服务端路径,输入后端主机能够读取的路径。
- 在弹出的CSV 列映射窗口检查前五行,选择内置格式或配置自己的映射。
- 点击“保存并启用”,内置格式点击“启用”。成功后返回本窗口,文件名及格式名称显示在按钮下方。
- 核对速度、品种范围,再点击“播放”。
文件由后端读取,桌面文件选择不会上传文件。单机版前后端在同一台电脑,通常可直接使用选择的路径;C/S 版本应将文件放在服务端可读的位置,再使用服务端路径。映射窗口会展示完整路径,本窗口仅显示文件名。
齿轮按钮重新打开当前文件的列映射;尚未选择文件时会先弹出文件选择。成功启用后,客户端记住文件路径和映射名称,后续打开控制窗口会尝试恢复;文件移动、权限变化或映射被删除时,需重新选择。
播放、暂停与速度
| 控制 | 作用 |
|---|---|
| 播放 | 未开播时从文件起点开始;已暂停时从当前进度继续。播放中再次点击不会另外启动一份回放。 |
| 暂停 | 暂停行情文件读取并保留当前回放位置,不重置模拟账户。 |
| 0.5x、1x、2x、5x、10x、50x | 按相邻 Tick 时间间隔缩放回放节奏。速度变化不等于跳到文件中的其他位置。 |
| 全速 | 取消按 Tick 时间差等待,以处理能力尽快回放;行情业务时间仍来自文件时间。 |
跨时段的大间隔不会完整等待:当前实现将超过 5 秒或负值的相邻 Tick 时间差按无等待处理。因此 1x 也不保证与整段历史的自然耗时一致。
按钮有悬停、按下及选中反馈,状态和进度约每秒核对一次。失败时下方短暂显示红色“控制失败”信息;应结合实际状态判断命令是否生效。
进度条仅显示进度,不能拖动定位。关闭控制窗口只关闭界面,不等同于暂停或注销;需要暂停请先点击“暂停”。
状态与进度
| 状态 | 说明 |
|---|---|
| 未开播 | 数据源已准备但尚未开始,或刚成功换源。开播前总行数可能仍显示 0。 |
| 播放中 | 后台正在读取并回放;大文件开始时会先扫描总行数,数字可能稍后更新。 |
| 已暂停 | 保留当前进度,点击播放继续。 |
| 已播完 | 已到文件末尾,模拟账户保持登录,可继续核对最终持仓与盈亏。 |
| 未读取到可回放数据 | 完成状态但总行数为零时提示检查文件与映射,不应把它当作成功完成一次有效回测。 |
状态行显示当前 Tick 的时分秒及“已处理 / 总行数”,不是电脑当前时间。进度按文件处理计算,被品种过滤掉的有效行也计入已处理数量,因此进度增加不代表当前图表一定有行情。
总行数包括文件表头和坏行,而已处理数不计入被跳过的表头及解析失败行,故“已播完”时百分比可能不到 100%。回放结束后应以状态、回报和数据完整性一起核对结果。
品种过滤
“品种:全部”表示不限制品种,点击后从交易所、品种面板选择一个品种。已有品种过滤时,再次点击品种按钮会直接清除过滤,恢复全部;若要换另一品种,先清除再重新选择。
过滤作用于后续回放 Tick,已经跳过的文件行不会自动补播。它同时影响进入模拟撮合的行情,不仅是隐藏图表;多腿策略需要各腿行情,筛选单一品种时应检查是否排除了其他腿的数据。
换源与 Restart 的区别
| 操作 | 数据与账户处理 |
|---|---|
| 启用文件或映射 | 停止原回放,更新数据源,归零回放进度并重载图表。不会执行模拟账户重新登录与资金重置,之后需要点击播放。 |
| 暂停后播放 | 沿用当前账户和文件,从暂停位置继续。 |
| 已播完后播放 | 从文件起点重新读取,但不会重置模拟账户。已有账户结果仍在,不等同于一次全新回测。 |
| Restart | 关闭并重新登录模拟账户,重置模拟资金及账户状态,重新应用已选文件和映射,再开始回放,图表自动重载。 |
Restart 直接执行,不弹出确认。需要保留当前回测结果时,应先记录结果。仅想临时停下来观察持仓,使用暂停。
Restart 过程中显示重登录提示;完成需要等待账户恢复。它会重建回放器,速度和品种过滤应重新核对,不要仅凭此前按钮显示认定已保留。
回放时间与数据准备
当前回放将行情日期映射到当天,时间使用 CSV 的时分秒。时间跨越夜盘零点时会处理日期进位。CSV 的历史日期不会原样成为模拟账户交易日;它不是任意历史日期的完整交易所环境重建。
数据应为按回放先后顺序排列的 Tick,累计成交量字段不能用每笔成交量替代。当前不会自动按时间排序文件,也不提供时间非递增的专门界面告警。
模拟交易还需要合约元数据,包括乘数、最小变动价位、保证金等。纯回测冷启动缺少合约资料时,可先登录一次真实 CTP 账户取得合约快照,退出后再单独登录模拟回测。C/S 模式须确认后端也具有所需合约资料。
撮合结果受价量映射、排队模型及合约元数据影响;CSV 映射通过只表示字段配置满足要求,不能证明整份行情数据正确。
常见问题
| 现象 | 检查方法 |
|---|---|
| 菜单没有模拟回测 | 检查系统参数是否启用,并确认模拟账户已单独登录。 |
| 文件存在却不能预览 | 检查文件是在客户端还是服务端,以及后端读取权限;桌面选择不会上传。 |
| 进度走了,图表没行情 | 检查品种过滤、图表合约、订阅与列映射;最新价、买一价或卖一价为零的 Tick 不进入程序行情链。 |
| 有行情但挂单难以成交 | 检查累计成交量、买卖一价量、品种过滤及模拟撮合条件。 |
| 已播完但进度不到 100% | 检查表头及坏行;总行数与实际解析成功的行数口径不同。 |
| 换源后仍有之前的资金和持仓 | 换源只重置行情流;需要全新模拟账户结果时使用 Restart。 |
| 提示控制失败 | 核对账户登录、连接、文件权限及当前映射是否存在,再查看操作日志。 |