CSV 列映射
CSV 列映射把行情文件中的列对应到模拟回测字段。左侧维护映射参数,右侧展示文件路径、校验结果和前五行原始内容。映射只定义如何读取文件,不修改原始行情。

打开与配置步骤
单独登录模拟回测账户,打开系统 → 模拟回测,选择 CSV 文件、输入服务端路径或点击齿轮按钮,即可进入本窗口。
- 核对右上方完整文件路径,确认读取的是目标文件。
- 从“CSV 格式”选择已有映射,或选择“新格式”。
- 填写带星号的“映射名称”,选择分隔符、表头选项及时间格式。
- 对照右侧预览,为各字段选择“第几列”。列号从 1 开始,“未映射”表示不读取该字段。
- 补齐六项必需字段,再检查可选字段的黄色影响提示。
- 点击“保存并启用”,内置格式点击“启用”;成功后窗口关闭,回到模拟回测控制窗口点击播放。
阅读预览表
右侧表格采用转置预览:每个数据行代表原文件的一列,左侧“列号”是应选择的列编号;“第1行”到“第5行”分别是原文件前五行的内容。
例如预览“列号 2”一行显示多个合约代码,则“合约代码”映射选择“第2列”。不要把表格里的“第2行”误当作字段列号。
勾选“首行是表头”只让回放跳过首行,预览仍显示原始首行,便于查看字段名。更改分隔符会重新拆分预览和调整列号选项;表格只读,不在单元格中修改行情。
预览支持横向、纵向滚动及调整列宽。长内容可能显示省略号,长原始行被截断时另有黄色提示,应核对原文件。
映射名称与格式参数
| 参数 | 说明 |
|---|---|
| CSV 格式 | 选择“新格式”、已有用户映射或“内置 hqtxt(40列)”。切换格式会重新载入对应配置,未保存的编辑不会自动保留。 |
| * 映射名称 | 必填,用于保存和后续选择。按 UTF-8 编码需小于 64 字节,中文名称不等于允许 63 个汉字;不要只输入空白。 |
| 分隔符 | 逗号、制表符或分号,应与文件实际分隔一致。 |
| 首行是表头 | 开启后回放跳过第一行。没有表头时不要勾选,否则第一条行情会被跳过。 |
| 时间格式 | 定义“更新时间”列的解析方式,详见下方时间格式表。 |
六项必需字段
| 字段 | 用途与要求 |
|---|---|
| * 合约代码 | 识别行情所属合约,例如 au2610;不能映射到中文名称列,数据行合约代码为空会被跳过。 |
| * 更新时间 | 驱动回放节奏和业务时间,须能按所选格式解析为时分秒。 |
| * 最新价 | 最新成交价,影响行情显示与撮合。 |
| * 累计成交量 | 累计成交量,用于计算相邻行情之间的成交增量;不要用“本笔成交量”或“现手”代替。 |
| * 买一价 | 买方最优报价,用于对手价、组合腿价格与撮合判断。 |
| * 卖一价 | 卖方最优报价,作用与买一价对应。 |
星号表示必须建立列映射,不能留为“未映射”。它不证明每一行字段值都有效;空值、错误数字或买卖价为零仍可能导致回放结果异常。
可选字段与缺失影响
| 字段组 | 未完整映射的影响 |
|---|---|
| 买一量、卖一量 | 对应排队初值为 0,模拟排队成交可能偏乐观,建议映射。 |
| UpperLimitPrice、LowerLimitPrice | 涨停价、跌停价缺失,对应涨跌停校验不可用。 |
| 二至五档买卖价量 | DOM 深档信息缺失,未映射字段按 0 处理。 |
| OpenPrice、HighestPrice、LowestPrice、ClosePrice、AveragePrice | 开盘、最高、最低、收盘、均价等统计不完整。 |
| OpenInterest、Turnover、PreClosePrice、PreOpenInterest、PreSettlementPrice | 持仓量、成交额及前一日参考统计不完整,未映射值为 0。 |
| UpdateMillisec | 独立毫秒列缺失时精度为秒,毫秒默认为 0;Unix 毫秒格式自带毫秒,不要求另映射此列。 |
黄色提示会列出这些影响,但不阻止必需字段齐全的映射启用。可选字段如果选择了超出预览范围的列号,也会使启用校验失败;不存在的列应设为“未映射”。
五种时间格式
| 格式 | 输入示例与说明 |
|---|---|
| HH:MM:SS | 09:30:15。亚秒部分通过独立 UpdateMillisec 列读取。 |
| HHMMSS | 093015,也支持前导零省略后的 93015。 |
| 日期和时间 | 2026-09-30 09:30:15 或 2026/09/30 09:30:15,读取空格之后的时间部分;不用于恢复原历史交易日。 |
| Unix 秒 | 正整数 Unix 秒时间戳,按后端主机本地时区转换为时分秒。 |
| Unix 毫秒 | Unix 毫秒时间戳,同时提取毫秒部分,优先于独立毫秒列。 |
选择与原文件一致的时间格式。C/S 模式使用 Unix 时间戳时,后端主机时区会影响转换结果。当前解析不提供“TradingDay / ActionDay”列映射,回放日期按模拟回测的当天时间规则处理。
校验与启用
- 红色:文件或格式读取失败、必需字段缺失、任一已映射列越界、名称不合法或文件没有数据行,启用按钮不可用。
- 黄色:必需条件通过,但存在可选字段缺失或预览截断等影响,仍可保存并启用。
- 绿色:当前预览和映射条件通过,可启用。
校验依据前五行及配置,不会验证整份文件的价量含义,也不会逐行证明时间格式正确。文件只有表头、没有数据行时不能启用。
保存并启用包含两个步骤:先保存用户映射,再应用到回放数据源。应用失败时窗口保留并提示错误,已经保存的映射可能仍在;修正路径或连接后可以重试。
成功启用会停止原回放并归零进度,即使文件没有换、只是重新启用映射也是如此。它不重置模拟账户资金与持仓,详见换源与 Restart 的区别。
保存、另存与删除
用户映射可编辑。同名保存会更新该名称对应的配置;更换为新的名称后保存相当于另存,原名称仍保留。映射列表最多 16 项,包含 1 项内置映射。
“内置 hqtxt(40列)”只读,名称、分隔符、表头及各字段不能直接修改,也不能删除。它按专用的四十列布局读取,并还原该格式中的特殊无效值;自定义 CSV 应创建用户映射,不要只凭扩展名套用内置格式。
选中用户映射后可点击删除,删除后返回“新格式”。删除仅移除映射配置,不删除 CSV 文件;曾使用该映射的数据源再次恢复时可能失败,需要重新选择有效映射。
点击取消关闭窗口,未保存的编辑不应用到当前回放。用户映射保存在后端工作目录下的 conf/csv_profiles.json,使用窗口即可维护,无需手动编辑文件。
文件要求
支持 csv、txt、hqtxt、tsv 等文本行情文件,最多读取前 128 列。字段不支持 CSV 引号包裹或分隔符转义;列值中不能嵌入所选分隔符。每个有效数据行都应包含映射使用的最大列号。
预览由后端读取,桌面文件选择不会上传文件。服务端路径须在后端主机上存在且可读;单机版通常使用本机路径。文件应按回放顺序排列,程序不自动按时间重排,也不提供时间非递增的专门界面告警。
常见问题
| 现象 | 检查方法 |
|---|---|
| 预览只有一列很长的文字 | 检查分隔符,制表符文件不能按逗号拆列。 |
| 启用按钮灰色 | 查看红色说明,补齐名称和必需映射,取消越界映射,确认有数据行。 |
| 黄色提示仍能启用 | 必需条件通过,可选字段影响需自行核对,尤其买卖一量及涨跌停价格。 |
| 内置映射不能编辑 | 内置 hqtxt 为只读;需要自定义布局时选择“新格式”。 |
| 改了名称后旧名称还在 | 不同名称保存属于另存,不会自动删除原映射。 |
| 保存通过,但回放没有有效行情 | 检查时间值、价量内容、合约资料和品种过滤;映射校验不替代全文件数据校验。 |
| 选择本机文件后服务端报找不到 | 文件没有上传;改用后端主机上的可读文件和服务端路径。 |