回测引擎设计
回测引擎需要优先保证结果可信,其次才是性能优化。
设计原则
- 时间顺序严格单向推进,避免未来函数。
- 撮合逻辑与市场规则显式建模。
- 交易成本、容量限制和可交易性必须可配置。
- 输出结构要支持归因、审计和回放。
关键能力
- 统一撮合逻辑和手续费模型。
- 支持调仓频率、停牌、涨跌停等市场规则。
- 输出收益、风险、换手和归因指标。
- 能够复现实盘调度和信号生成时点。
推荐模块
- DataFeed:提供时间对齐后的行情和基础数据。
- SignalEngine:生成目标信号和调仓意图。
- PortfolioEngine:维护持仓、现金和风险约束。
- ExecutionSimulator:负责撮合、手续费和滑点。
- Reporter:输出指标、持仓快照和回放结果。
实践建议
- 把信号、持仓、订单、成交拆成独立对象。
- 为关键路径建立回放测试样例。
- 将策略参数与环境配置分离,便于批量实验。
验证清单
- 关键策略是否能重现实盘调度时点。
- 手续费和滑点模型是否符合目标市场。
- 极端行情下是否有明确行为定义。
- 输出指标是否足够支撑复盘和归因。
示例结构
{
"signal_time": "09:25:00",
"rebalance": "weekly",
"commission_bps": 8,
"slippage_bps": 12
}
常见误差来源
- 使用收盘价生成并以同日收盘价成交。
- 忽略不可交易状态和停牌影响。
- 在不同模块里重复实现成本模型。
评论区待配置
将 Giscus 仓库参数补齐后,这里会显示评论区。
OWNER/REPO