无行情订阅也能跑通:演示数据、最小数据集与回归
做量化平台对外演示、对内联调时,最容易发生的失败不是策略本身,而是依赖外部行情:
- 行情订阅权限临时失效
- WS 不稳定、断线重连、数据缺口
- 回填接口限流或延迟
如果你的系统“没有行情就无法跑”,就无法形成稳定的产品验收与工程回归。
结论先行:EasyQuant 把“无外部行情也能跑通闭环”当作交付底座能力:用演示数据与模拟数据保证最短闭环始终可复现,并用最小数据集支撑回归测试与持续迭代。
一、为什么必须支持 Mock/Seed?
在交付视角,Mock/Seed 不是 demo 技巧,而是三件关键能力:
- 可演示:对外展示不依赖外部不确定性
- 可联调:前后端/策略/回测/图表可以独立推进
- 可回归:升级指标/DSL/执行链路后能稳定验证行为是否变化
这会直接决定系统的“交付下限”:没有它,你的系统永远只能在“环境好的时候”才看起来可用。
二、演示数据(Seed Demo):产品级最短闭环
EasyQuant 推荐的最短验收闭环(见 02)里,“写入演示数据”是关键一环:
- 一键清理上一轮演示残留
- 写入可跑通的策略实例、Universe、资金账户
- 写入可用于回测与图表展示的 1m bars(必要时含模拟走势形态)
它的产品价值是:
- 新人 5 分钟就能跑通闭环
- 测试环境可重复验收
- 错误定位更容易(先排除外部行情问题)
三、模拟数据:让策略“真的会触发”
很多系统的模拟数据只是一条重复的正弦曲线,导致策略触发行为不稳定或不贴近实际。
平台更推荐的做法是:按策略类型生成“可触发的走势形态”,例如:
- 均线策略:带趋势与回撤的走势(能出现金叉/死叉)
- Bollinger:有阶段性收敛与扩张的波动(能出现突破与回归)
- RSI/均值回归:有超买超卖段落(能出现反转信号)
这样你在没有外部行情时,也能验证:
- 信号引擎是否工作
- 成交点是否能正确画在图上
- Blocking Reasons 是否能在“无成交”时给出正确归因
四、最小数据集(Minimal Dataset):为回归测试服务
当系统进入持续迭代阶段,你需要一套“可复现的固定输入”,用于验证升级不会引入行为漂移。
最小数据集的建议组成:
- 3–5 只标的(覆盖趋势、震荡、缺口、停牌等典型形态)
- 每只标的 3–7 天的 1m bars(覆盖开盘/收盘/午休/缺口)
- 1–3 个策略模板(MA、BOLL、RSI 等)
- 固定的成本模型口径(手续费/滑点/税率)
配合 04 的 provenance,你可以把回归定义为:
在同一份输入快照上,新旧版本输出差异是否在可解释范围内。
五、回归的验收口径:不要只对“收益”,要对“行为”
很多团队回归只看最终收益,但收益对微小变化非常敏感,容易产生误报。
更稳健的回归口径是“行为级”:
- 信号触发点(时间戳、方向)是否一致
- 成交次数与分布是否一致
- 关键阻塞原因统计是否突变(ENGINE_ERROR 是否上升)
收益曲线可以作为最终兜底,但不应是唯一指标。
六、一个对外演示套路:先稳定跑通,再解释“为什么”
对外演示建议按顺序:
- 写入演示数据(确保闭环可跑)
- 跑组合回测(展示权益/回撤/成交/K 线买卖点标记)
- 故意制造一次“无成交”(例如提高阈值),展示系统状态页的阻塞原因与中文说明
这样观众会清晰感知:
EasyQuant 的价值不是“给你一条曲线”,而是“给你一个可交付、可解释、可复现的策略运行体系”。
结语:没有 Mock/Seed,就没有稳定交付
外部行情永远是不确定的。
能把闭环跑通、把问题定位清楚、把结果复现出来,才是平台的底盘。
到这里,00–12 的主线已经完整:从定位(交付)→ 可解释 → 可复现 → 数据口径 → DSL/指标产品化 → 执行/回测 → 可观测与 Mock 回归。下一步就是把它们串成可连续发布的系列,并在每篇末尾形成明确的“承上启下”。