Project 4 字段契约:Value、Momentum、Quality
机器可读版本:configs/signal_contract.json(SHA-256 在结果文件里记录)。公式的推导与例子见第24章(价值)、第25章(动量)、第26章(质量);预处理见第28章。
| 风格 | 字段 | 公式 | 方向 | 分母与缺失规则 | 金融行业 |
|---|---|---|---|---|---|
| Value | book_to_market |
权益 / 市值 | 越大越便宜 | 权益非正或市值非正 → NaN(不取负值) | 可用(银行的账面权益有意义) |
| Value | earnings_yield |
净利润 / 市值 | 越大越便宜 | 市值非正 → NaN;亏损保留负号(不是“便宜”) | 可用 |
| Value | ev_to_ebitda_cheapness |
越大越便宜 | EV 或 EBITDA 非正 → NaN | NaN(EV 与 EBITDA 对银行没有意义) | |
| Momentum | mom_12_1 |
越大越强 | 窗口内缺月 → NaN;月 |
可用 | |
| Quality | gp_a |
(收入 |
越大越好 | 销售成本缺失 → NaN | NaN(没有销售成本) |
| Quality | neg_accrual |
越大越好 | 缺任一项 → NaN | 可用 | |
| Quality | roe_avg |
净利润 / 平均权益 | 越大越好 | 两个年末权益都为正,平均权益大于平均资产的 5%,否则 NaN | 可用,但杠杆不同,行业内排序(中性化已处理) |
通用规则:
- 同一版本:一个字段的分子、分母、上年比较余额来自同一份财报版本;比率不拼接不同版本的数。
- 平均余额:平均资产与平均权益都用同一份提交里的当年与上年年末余额。
- 缺失不是零:任何缺失、非正分母、金融行业不适用,输出都是 NaN,不填 0,也不填行业均值;风格内可得因子重新加权,风格间要求至少 2 个风格。
- 未上市:信号月末不在宇宙内的名字在每个字段上都是 NaN。
- 动量不用价格:用总回报面板,不用价格拼接;公司行动与退市收益由总回报承载。
- 方向统一:所有字段“越大越好或越便宜”,反向的指标(应计项目、EV/EBITDA)在字段里已取负或取反向百分位。