增强回测引擎第二版策略与快照层
This commit is contained in:
45
README.md
45
README.md
@@ -4,6 +4,7 @@
|
||||
|
||||
## 当前能力
|
||||
|
||||
- Phase 2:增加 snapshot bundle 视图与更贴近 jqdata 策略语义的动态市值带策略
|
||||
- 日频交易日历与确定性逐日回放
|
||||
- A 股日频市场快照、估值/因子快照、基准快照、候选资格标记
|
||||
- 策略接口与引擎驱动,不直接模拟 `jqdata` API
|
||||
@@ -53,19 +54,24 @@
|
||||
|
||||
## 策略实现
|
||||
|
||||
示例策略 `CnSmallCapRotationStrategy` 对应一类典型的 A 股小市值轮动逻辑:
|
||||
示例策略 `CnSmallCapRotationStrategy` 对应一类典型的 A 股小市值轮动逻辑,并在 phase 2 里更贴近原始 jqdata 语义:
|
||||
|
||||
1. 用指数点位相对基准水平切换市值带:
|
||||
- 强势区间:更偏小市值
|
||||
- 中性区间:中小市值
|
||||
- 弱势区间:偏大一些的防御市值带
|
||||
1. 用指数点位动态计算市值带:
|
||||
- `mystart = round((index_close - base_index_level) * xs + base_cap_floor)`
|
||||
- `myend = mystart + cap_span`
|
||||
2. 在当前市值带内,按总市值升序取 Top-N。
|
||||
3. 用指数短均线/长均线关系控制总仓位:
|
||||
- `1.0`: 风险偏好正常
|
||||
- `0.5`: 降半仓
|
||||
- `0.0`: 全部转现金
|
||||
4. 固定交易日频率再平衡。
|
||||
- 当 `MA(short) < MA(long) * rsi_rate` 时降到 `trade_rate`
|
||||
- 否则恢复到 `1.0`
|
||||
4. 按 `refresh_rate` 固定频率再平衡。
|
||||
5. 非再平衡日也会检查止损/止盈钩子并触发退出。
|
||||
6. 候选过滤纳入资格快照:
|
||||
- 停牌
|
||||
- ST
|
||||
- 新股
|
||||
- 科创板
|
||||
- 1 元股
|
||||
- allow_buy / allow_sell
|
||||
|
||||
这个接口不是 `jqdata` 风格的 `before_trading_start` / `handle_data` 直接脚本 API,而是:
|
||||
|
||||
@@ -79,7 +85,7 @@
|
||||
|
||||
如果原始逻辑大致是:
|
||||
|
||||
- 依据指数强弱切换可接受市值带
|
||||
- 依据指数点位动态切换可接受市值带
|
||||
- 从候选股票里选最小市值若干只
|
||||
- 按均线决定是否降仓
|
||||
- 周期性调仓
|
||||
@@ -94,7 +100,14 @@
|
||||
- `order_target_value` -> `StrategyDecision.target_weights` 由 `BrokerSimulator` 解释执行
|
||||
- 风险控制逻辑 -> `CnSmallCapRotationStrategy::gross_exposure`
|
||||
|
||||
## V1 明确简化点
|
||||
## Phase 2 新增内容
|
||||
|
||||
- `DataSet::bundle_on(date)`:引入按日 snapshot bundle 视图,方便未来直接对接 FiDataCenter / FiDataScraper 预计算快照
|
||||
- 策略诊断输出:equity curve 里新增 `diagnostics` 字段,记录市值带、候选样本、退出原因等信息
|
||||
- 候选资格快照扩展:补入 `is_kcb`、`is_one_yuan`
|
||||
- 增加策略选择行为测试
|
||||
|
||||
## V1 / V2 当前仍保留的简化点
|
||||
|
||||
下面这些是刻意保留为 v1 简化,而不是遗漏:
|
||||
|
||||
@@ -146,6 +159,16 @@ cargo build
|
||||
- 组合调仓只关心“目标持仓”和“当前持仓”的差量
|
||||
- 事件流是 append-only,适合批量写出和后处理分析
|
||||
|
||||
## 距离真实 6 年 / 5 分钟平台还差什么
|
||||
|
||||
当前仓库已经有“核心引擎 + 规则钩子 + 策略接口 + demo 回放”,但距离生产级目标还差:
|
||||
|
||||
- 真实 snapshot loader:接入 FiDataCenter / FiDataScraper 的 ClickHouse / Parquet / PostgreSQL 预计算快照,而不是 demo CSV
|
||||
- 分钟级执行层:把当前 `T-1 决策 / T 开盘执行` 扩展到更接近 `10:17 / 10:18` 的分钟级执行语义
|
||||
- 更完整的 A 股规则:复权、分红、涨跌停细分、创业板/北交所规则、成交量约束、滑点模型
|
||||
- 更高效的数据访问:按日期块和列式布局一次性加载 6 年快照,避免回测时回源拼表
|
||||
- 批量参数回测:多个参数集共享预计算快照与候选池缓存
|
||||
|
||||
## Roadmap
|
||||
|
||||
- 引入更明确的事件总线和 portfolio/account ledger 分层
|
||||
|
||||
Reference in New Issue
Block a user