一、原版源码拆解
网上最常见的写法:
Z:=1.2*WC/TA+1.4*RE/TA+3.3*EBIT/TA+0.6*MC/TL+0.99*S/TA;
SELECT:Z>2.99;
主要问题有:
① 中国财报科目不匹配:Altman 原始模型用美股科目(Working Capital、Retained Earnings),A 股科目名称和口径不同,直接套用会算错;
② 阈值照搬西方:Z>2.99 安全、1.81-2.99 灰色、<1.81 危险,这是基于美国制造业的阈值,A 股服务业/金融业完全不适用;
③ 未考虑行业差异:金融业的杠杆率天然高(TL 大),MC/TL 这一项会系统性偏低,导致金融股永远“危险”。
🔍 二、深度拆解:Altman Z-Score 的思路:用多维度财务指标预判退市风险
1. 逻辑死穴:财务造假的“指标组合”特征
财务造假公司往往在三个维度同时出现异常:① 应收账款增速 >> 营收增速(虚增收入);② 经营现金流/净利润 << 1(利润不真实);③ 存货增速 >> 营业成本增速(虚增资产)。单看任何一个指标都可能正常,但三个同时异常就是红旗。
2. 函数陷阱:FINANCE 科目的 A 股映射
Altman 的 Working Capital = 流动资产 - 流动负债,对应 A 股 FINANCE(10)-FINANCE(15);Retained Earnings 对应 FINANCE(32)(未分配利润);EBIT 对应营业利润 FINANCE(36)。映射错了,Z 值就是 garbage in garbage out。
3. 视觉盲区:Z 值高 ≠ 好公司
Z 值只衡量“财务安全性”(不破产的概率),不衡量“投资价值”。一家 Z 值 5.0 的公司可能是增长停滞的公用事业,投资回报很低。Z 值是“排雷工具”,不是“选股工具”。
📊 三、数据回测:不同参数下的信号特征
以下为不同参数组合下的信号池规模与风格特征对比:
| 策略版本 | 信号池规模 | 风格特征 | 说明 |
|---|---|---|---|
| Z>2.99 (原版阈值) | 约 200-400 只 | 排除明显垃圾 | 阈值偏宽松 |
| A股适配Z>3.5 + 现金流为正 | 约 80-150 只 | 财务健康+造血强 | 排除僵尸企业 |
| Z>3 + ROE>10% + 营收增 + 低负债 | 约 20-50 只 | 健康+成长兼顾 | 最全面的质量筛选 |
🔨 四、优化版源码(可直接复制)
五、这次改了什么?
核心优化:
1. A 股科目映射:用 FINANCE(10/15/19/32/36/38/41/43) 精确对应 Altman 五大科目; 2. 现金流质量验证:经营现金流/净利润>0.8,排除“账面利润不造血”的公司; 3. Z 值上限过滤:Z<10 排除金融业(天然高 Z 值但投资逻辑不同); 4. 负债率硬约束:总负债/总资产<70%,双重保险排除高杠杆风险。
【编者手记】 Z-Score 是排雷工具,不是选股工具。它的价值在于:帮你从 5000 只股票里快速排除“财务不健康”的那 1000 只,把研究范围缩小到 4000 只更安全的票。但“安全”不等于“值得买”,后续还要叠加成长性和估值判断。记住:巴菲特买的是“好公司”,不是“不会破产的公司”。

