回放时段报告:净结果、比率、离场原因与结论
在回放中按下“结束”时会打开时段报告。它读取自该时段开始以来在模拟账户上平掉的交易,并显示净盈亏、十二项比率、离场原因,以及一段关于该样本能证明什么、不能证明什么的说明。
Senzoukria · 文档 · 更新于 2026 年 9 月
位置
- 位置
- 回放 → 播放控制行 → 结束(标题为“时段结果”)
- 数据
- 模拟考核账户中在时段开始时或之后平掉的交易;此外别无其他
- 小样本
- 少于 20 笔交易时,报告会说明样本过小,无法得出任何结论
- 不可计算项
- 显示为“n/a”,绝不显示为 0;没有任何亏损时的盈利因子显示为 ∞
它做什么
报告只回答一个问题:这次手动回放时段是否有价值?它是一个标题为“时段结果”的模态框,副标题给出合约、日期以及实际回放的时段比例(例如“已回放该时段的 42 %”)。只覆盖一天 12 % 的回测不是全天回测,报告会直说这一点。
统计数据来自 lib/replay/sessionStats.ts,采用与本项目量化回测器相同的约定:盈利因子为毛利润除以毛亏损的绝对值(无亏损时为 Infinity),期望值为每笔交易的平均盈亏,盈亏比为平均盈利除以平均亏损,最大回撤为逐笔权益曲线上最深的谷底(以美元计)。任何无法计算的值都是 NaN,并呈现为“n/a”。
没有任何交易时,正文显示“本次回放期间没有任何交易。请打开交易面板,在模拟考核账户上交易,以便在此获得报告。”
报告的各个字段
| 区块 | 内容 | 说明 |
|---|---|---|
| 首要区 | 净盈亏(盈利带显式“+”)、“N 笔交易的净值”、权益迷你曲线 | 迷你曲线没有坐标轴:它展示形状(稳健还是被一笔交易带动),而不是数值。只有两个及以上数据点时才绘制。 |
| 比率网格 | 盈利因子、每笔期望值、胜率、盈亏比(盈利/亏损)、平均盈利、平均亏损、最佳交易、最差交易、最大回撤、最长连亏、最长连盈、盈利/亏损笔数 | 打平(盈亏恰为 0)显示为“(+n 平)”,既不中断也不开启连续记录。 |
| 离场 | 每个离场原因一个标签,附带次数 | 原因取自模拟账户:平仓、止损、目标、反手。 |
| 说明 | 样本量警告或执行提醒,外加“回撤仅基于已平仓交易计算。” | 少于 20 笔交易时:“样本远远太小,无法就优势得出任何结论”。否则:手动回放衡量的是一个时段中的执行,而不是一套策略。 |
结论阈值
同一批统计数据也驱动性能面板的结论句(“这会重现吗?”)。检验顺序就是层级顺序:先看样本量,再看 SQN。0 笔交易时无可解读;少于 20 笔时,比率虽然精确但不具统计意义;如果 SQN 无法计算,系统会请你依据曲线判断。
当 SQN 可计算时(√N × 交易盈亏的均值 / 标准差):低于 0 表示样本中没有优势;低于 1.6 表示系统偏弱;低于 2.5 表示一般;2.5 及以上为“在本样本上稳健”。SQN 达到 5 或以上而交易少于 100 笔时会被标记为可疑,因为结果是由少数几笔交易带动的。当最佳交易占净利润的 50 % 或以上时,会出现第二行提示。
没有任何阈值会给出“优秀”。可得的最佳结论是“在本样本上稳健”,这也是一次回测所能证明的极限。
局限与陷阱
- 模拟账户与实盘以及此前的时段共用;只有在回放时段开始时或之后平掉的交易才会被计入。
- 回撤和权益曲线基于已平仓交易计算。交易持仓过程中所经历的浮亏需要对持仓重放 tick 才能得出,报告不作此声称。
- 每笔交易的 Sharpe 和 Sortino 有意不做年化。
- Kelly 假设各笔交易相互独立且盈亏比稳定,而单个时段无法保证这一点。
相关页面
其他语言版本
常见问题
- 为什么报告显示“n/a”而不是 0?
- 零会被当成一个测量值。当没有亏损交易或根本没有交易时,诚实的答案是“无答案”,因此该值为 NaN 并呈现为 n/a。有盈利而无亏损的盈利因子显示为 ∞。
- 报告会被保存吗?
- 当你按下“结束”且至少平掉过一笔交易时,每个时段会把统计数据(而非交易本身)记录一次到性能面板。关闭并重新打开报告不会产生重复记录。
- 报告包含手续费吗?
- 不包含。模拟账户不收取任何费用,性能面板的说明也写明了这一点。