Skip to content

Latest commit

 

History

History
34 lines (28 loc) · 2.71 KB

engine-semantics.md

File metadata and controls

34 lines (28 loc) · 2.71 KB

engine-semantics — 回测语义(实现前先定稿,测试逐条引用)

状态:v0.1(M3 前继续补全)。规则来源与核对日期见 rules-sources.md;未核实项标 TODO(verify)。

1. 时序

  • T 日收盘后,用 ≤T 的数据产生目标权重;T+1 按 ExecutionModel 成交。
  • ExecutionModel:next_open(默认)、next_close、next_vwap(成交额÷成交量)、after_hours_fixed(15:05–15:30 收盘价)。
  • 日线无法确定的日内先后顺序,采用保守假设:同一调仓日先卖后买、先资金校验后成交;报告中注明。
  • 回测与模拟交易共用同一撮合/账本内核。

2. 规则基线(V1 沪深主板日线现货多头)

  • 涨跌幅:主板 ±10%;ST/*ST 在 2026-07-06 前 ±5%、自该日起 ±10%(TODO(verify));新股/退市整理期特例 TODO(verify)。
  • 基准价 = 前收盘;除权除息日用除权参考价;限价四舍五入到分。
  • 申报:买入 100 股整数倍;卖出余量不足一手可一次性卖出;最小价位 0.01 元。
  • T+1:股票买入当日不可卖。
  • 盘后固定价格交易:15:05–15:30 以收盘价撮合;沪深 2026-07-06 起扩展至全部 A 股与 ETF(TODO(verify))。
  • 一字板/停牌不可成交;涨停买入、跌停卖出按“可成交掩码+流动性约束”保守处理,给出拒绝原因码。
  • 费用:佣金(费率+每笔最低 5 元,可配);印花税(仅卖出 0.05%);过户费(0.001%,适用市场 TODO(verify));经手费/证管费(TODO(verify),配置化);分红差别化个税(按持股期限,可配)。
  • 复权:撮合/现金/持仓用原始价 + 公司行为事件;指标默认后复权或比率不变序列;绝对价格条件用不复权价;图表可前复权。
  • 资金:卖出款当日可用于买入;退市/长期停牌按配置处理(强制清算价/归零)。
  • 年化交易日默认 244;无风险利率常数/序列、基准类型均在报告标注。

3. 账本不变量(每步断言)

  1. 净值守恒:现金 + 持仓市值 = 初始资金 + 已实现盈亏 + 浮动盈亏 + 分红 − 费用与税。
  2. 现金 ≥ 0;可卖数量 ≤ 持仓;不违反 T+1。
  3. 每笔费用可复算(佣金、印花税、过户费、经手费、证管费)。
  4. 成交价在当日 [low, high] 内(盘后固定价除外);涨停买入/跌停卖出被拒绝。
  5. 持仓批次、成本价、已实现盈亏可逐笔追溯。

4. 防未来函数

  • 数据访问器只返回 ≤now 的数据;qc check lookahead 用“截断数据重跑、信号不变”自动检测。

5. 待补

  • 公司行为(送转/分红/配股)事件化与税;退市清算;新股初期规则;ETF/可转债规则(M8)。