2.5 KiB
2.5 KiB
旧项目知行 B1 逻辑研究
来源
- 公式原文:
/Users/yuxuanhui/bcc-github/quant-project/zgnb/zgnb-project/docs/references/formulas/tongdaxin_xuangu_formula.txt - 旧策略入口:
/Users/yuxuanhui/bcc-github/quant-project/zgnb/zgnb-project/src/zgnb/domain/strategy/xg_composite.py - 旧指标实现:
/Users/yuxuanhui/bcc-github/quant-project/zgnb/zgnb-project/src/zgnb/shared/xg_indicators.py - 旧数据字段转换:
/Users/yuxuanhui/bcc-github/quant-project/zgnb/zgnb-project/src/zgnb/infrastructure/data_source/tushare_adapter.py
已确认逻辑
xg_composite 先计算趋势白线、大哥黄线、BBI、短期/长期振荡器、KDJ、RSI、
振幅区间、缩量、大绿棒、异动、趋势和回踩条件,再执行 7 个子信号 mask:
- 超卖缩量拐头 B
- 超卖缩量 B
- 原始 B1
- 超卖超缩量 B
- 回踩白线 B
- 回踩超级 B
- 回踩黄线 B
旧实现将 7 个 mask OR 为 _存在B,在 select() 中按优先级找到第一个匹配后
break。新任务明确改为返回全部命中分类。
迁移时必须保留的语义
- 数据升序;
REF使用前一交易日,不能用自然日偏移。 趋势白线 = EMA(EMA(C, 10), 10)。大哥黄线 = (MA(C,14)+MA(C,28)+MA(C,57)+MA(C,114))/4。短期使用 3 日最低价和 3 日最高收盘价,长期使用 21 日窗口。- 宽幅代码为
68、30、4、8、9开头;普通代码如果最近 200 行内出现 超过 15% 的上涨,也使用宽幅参数。 - v1203 调整包含上涨十字星涨幅上限和原始 B1 的适当缩量分支。
旧实现与新任务的有意差异
- 新策略标识为
zhixing_b1,不再使用xg_composite作为运行时名称。 - 新分类值使用
zhixing_b1_*前缀,不依赖旧SignalCategory.XG_*。 - 新实现保留同一股票同一交易日的全部命中分类。
- 新实现目标日由显式
target_trade_date决定,不取数据最后一行作为隐式目标。 - 新实现只使用新项目 PostgreSQL 的 qfq 日线;旧项目 CSV 中的
market_cap是 初始化时取到的最新市值复制值,不能作为历史事实。 - 新测试运行时不导入旧项目;旧项目只用于生成固定 fixture 和 golden 期望。
现有 fixture 线索
旧项目已有完整 CSV 和 SQLite 信号结果,可从 data/raw 选取少量普通代码、宽幅
代码和已命中日期作为固定样本。由于旧实现没有记录同日多分类命中,需另加人工
构造样本验证新任务要求的多信号结果。