回放播放控制:播放、跳转、倍速与结束
时段加载完成后,播放控制行位于回放图表上方。它可以播放或暂停 tick 数据流、跳转到时段中的任意一分钟、把播放速度从 x1 调到 x25,以及结束时段并打开报告。
Senzoukria · 文档 · 更新于 2026 年 9 月
位置
- 位置
- 回放 → 加载时段 → 图表顶部的那一行(Sz 菜单 → 回放)
- 默认速度
- x1(实时);可选 x1、x2、x5、x10、x25
- 快捷键
- 空格 = 播放/暂停,左/右方向键 = 跳转时段的 1 %;在输入框中打字时忽略
- 跳转精度
- 目标会被吸附到所在分钟的起点
它做什么
准备界面加载一个 CME 时段后(数百万笔 tick,首次加载 30 到 60 秒),回放路由会显示与实盘相同的足迹图,上方带一行播放控制。这一行包含七个控件:播放/暂停按钮、模拟时钟、跳转滑块、时段结束时刻、倍速按钮组、结束按钮和 tick 计数器。该行高 32 px,位于图表上方而不是浮在图表之上。
tick 由 Rust 播放器成批推送,并在前端聚合成 1 分钟足迹柱。每一批到达时画布都会立即重绘;React 状态(指标、计数器)每秒最多提交 4 次,与实盘数据流的上限相同。1m 到 1h 的周期都由这些分钟柱派生。大单气泡接收的是原始 tick,因此它们在回放中的表现与实盘完全一致。
回放没有订单簿:经纪商的逐笔历史只包含成交(价格、数量、主动方),从不包含盘口深度。因此在这条路由上,DOM 分布叠加层被强制关闭,而不是显示一个靠猜测重建的订单簿。
控件
| 控件 | 默认值 | 它做什么 |
|---|---|---|
| 播放 / 暂停(▶ / ❚❚) | 加载后为暂停(阶段 'ready') | 启动或暂停 tick 数据流。时段加载完成前不可用。 |
| 模拟时间 | 时段的第一笔 tick | 当前播放 tick 的时刻,以你机器的本地时间按 HH:MM:SS(24 小时制)显示。 |
| 跳转 | 0 % | 从时段的 0 到 100 %、步长 0.1 % 的滑块。拖动过程中不产生任何效果;松开指针或按键时才发送跳转。 |
| 时段结束 | 最后一笔 tick 的时刻 | 所加载交易日最后一笔 tick 的时刻。 |
| 播放速度 | x1 | x1、x2、x5、x10 或 x25。播放中更改立即生效;暂停时更改会在下次播放时生效。 |
| 结束 | — | 暂停播放并打开时段报告。什么都不会被删除:关闭报告后可以继续交易。 |
| tick 计数器 | '加载中…' | 所加载交易日的 tick 总数;时段完整播放完后显示 '· 结束'。 |
跳转如何工作
跳转目标会被吸附到所在分钟的起点。从该分钟起的柱体会从本地聚合中丢弃,Rust 播放器精确从那里重启,而光标之前的每一分钟都通过一次后端调用(replay_bars_until)即时重建。因此向前跳转不会留下空洞:被跳过的分钟是被重建的,而不是被推送的。在被回放日之前加载的上下文时段会在每次跳转时重新播种,因此此前的分布永远不会消失。
每条数据流都带有一个 id。来自过期数据流的批次(跳转尚未落定之前的批次)会被丢弃,从而避免把某一分钟重复计入。如果跳转失败,不会丢弃任何数据,错误会显示在准备界面的横幅中。
键盘:空格切换播放/暂停,方向键按时段的 1 % 移动光标。按键重复被有意忽略:每次跳转都会在 Rust 端重建当天数据,因此一次按键等于一次移动。当输入框、文本域或下拉框获得焦点时,以及按住 Ctrl、Alt 或 Meta 时,快捷键静默失效。
局限与陷阱
- 回放 tick 的时间戳精确到整秒:数百笔 tick 共用同一个时间戳,这正是跳转按整分钟进行的原因。
- 如果后端在 90 秒内没有报告任何加载进度,加载会被放弃并给出明确消息(通常是开发服务器重新加载所致)。
- 只有在时段期间至少平掉过一笔模拟交易时,结束时段才会把其统计数据记入性能面板;没有交易的时段不会被记录。
- 离开该路由会停止后端播放器并释放内存中的 tick;播放状态不会被持久化。
相关页面
其他语言版本
常见问题
- 为什么在 x25 下图表很流畅,指标却更新得没那么频繁?
- 画布在每一批 tick 到达时重绘,处于 React 之外。指标和计数器读取的是每秒最多提交四次的 React 快照,与实盘数据流的上限相同。
- 我能跳到精确的某一秒吗?
- 不能。目标会被吸附到所在分钟的起点,因为播放器按整分钟重新推送,聚合也是逐分钟重建的。
- 结束会删除我的时段吗?
- 不会。结束只是暂停数据流并打开报告;已加载的交易日会留在内存中,直到你返回准备界面或离开该路由。