← 返回模块
4.1.2.1beta 可读 · 未来免费内容校验中内容版本 2026-05-28

基本面数据:财务报表与时点纪律

4.1.2 · 基本面、另类数据与数据基础设施 · 量化全流程

某上海私募的股票多空基金组合经理周一上午盯着一份回测:沪深300 截面 P/E long-cheap / short-expensive 价值策略,12 年夏普比率 1.4,最大回撤 11%,可以放到周三投决会上。同一策略半年前由资深量化跑出来夏普只有 0.7。信号、标的池、交易成本模型 全部相同——区别仅在:新回测读 fundamentals_current,旧版读 fundamentals_pit。周三之前你必须搞清楚哪个是真。本课要装入的就是基本面、估值比率、双时间时点纪律 这套词汇——让你 20 分钟而不是 2 周回答它。

四种基本面数据产品

Track 4 后续课程,对基本面数据,就只用下面这四个产品名——并且只用这四个。把顺序与「流量 vs 存量」这个二分记牢:

1. income statement          — 流量报表:营业收入 → 营业成本 → 营业利润 → 净利润,跨整个会计期间
2. balance sheet             — 存量报表:资产 = 负债 + 所有者权益,期末时点切片
3. cash flow statement       — 流量报表:经营性 + 投资性 + 筹资性现金流,把净利润勾稽到现金
4. analyst-estimate consensus — 覆盖该公司的所有分析师预测(营业收入、EPS、目标价、推荐评级)的均值 / 中位数,外加跨分析师的标准差作为分歧度信号

income statement(利润表)从 营业收入 起步,扣 营业成本 得毛利,扣 营业费用营业利润 EBIT,扣 利息费用所得税净利润。每一个数字都「在这个会计期间内」,不是某一时刻。

balance sheet(资产负债表)是期末时点的快照,满足 资产 = 负债 + 所有者权益。资产分流动(现金、应收账款、存货)与非流动(固定资产、商誉);负债同分流动 / 非流动。

cash flow statement(现金流量表)把权责发生制下的 净利润 勾稽回真实现金移动:经营性现金流 + 投资性现金流 + 筹资性现金流。生产规则:若 净利润经营性现金流 多季度持续背离,应计项一定在动手脚——查。

analyst-estimate consensus(一致预期)是第四类产品。每家被覆盖公司、每位卖方分析师发布预测(营业收入、EPS、目标价、买入 / 持有 / 卖出推荐);一致预期 = 跨分析师均值或中位数;跨分析师标准差本身是分歧度信号。CN 区聚合器:Wind 一致预期、朝阳永续。

估值比率与它们各自回答的问题

把三张核心报表加上一致预期,加上市值(价格 × 总股本),任何一个经典估值比率都可以算出来。每个比率回答一个具体问题,并喂给 4.3 的某个具体因子:

| ratio        | definition                              | question answered                                   | production use                          |
| P/E          | price / TTM EPS                         | what does the market pay per dollar of earnings     | value-factor input + cross-sectional ranking |
| P/B          | price / book value per share            | what does the market pay per dollar of accounting book | value-factor input + asset-coverage  |
| EV/EBITDA    | (market cap + debt - cash) / TTM EBITDA | cap-structure-neutral comparison                    | M&A + cross-firm comparison             |
| FCF yield    | TTM free cash flow / market cap         | what cash return does the equity holder earn        | quality-factor input                    |
| dividend yield | TTM dividend / price                  | what cash distribution does the equity holder earn  | income-factor input                     |
| ROE          | net income / shareholders' equity       | how efficiently does management deploy capital      | quality-factor input                    |

另有两个比率,仅给一行命名而不展开成行:ROA = 净利润 / 总资产——资本效率的资本结构中性视角;debt-to-equity = 总债务 / 所有者权益——4.4 风险模型里要用的杠杆视角。前向指引:在 4.3.1(因子动物园)中,这些比率是 long-cheap / short-expensive 组合构建的 原始 输入(含行业中性化 + 行业内排序);本课止于定义本身。

跨区可比性规则要明确给出警告。AAPL 的 US-GAAP P/E = 18 与某沪深300 成分股在 企业会计准则 下的 P/E = 18,​​不是同一个数字​​。US-GAAP 与 CASBE 在研发资本化、经营 租赁、商誉减值的处理上不同;直接比较会引入几个百分点量级的「橘子比苹果」偏差。生产规则:跨区比较之前,永远先归一到一个统一的比率口径(或直接使用供应商已预归一的跨区表)。

时点(PIT)词汇三元组

每一个基本面数值都带三个日期。这是本课​​最重要​​的概念跳跃——现在把它装进去,本模块后续每一课都会自然落地:

1. value_date     — 数值「关于」的那个日期(资产负债表条目用期末日;利润表条目用期末日;分析师预期用公告事件日)
2. filing_date    — 报表向监管机构递交的日期(SEC 的 10-K / 10-Q / 8-K 公告日;CSRC 的 年报 / 半年报 / 季报 / 公告 公告日)
3. knowledge_date — 数值被公司「知晓」的日期(首次披露版等于 filing_date;任一次重述都等于该次重述披露日)

生产规则:​​每一张基本面表都是双时间表;永远不要给出在快照日尚未被知晓的数字。​ 一张非 PIT 数据集会暗藏三种失效模式:

  1. ​公告 vs 立案时点 陷阱(announcement-vs-filing-date trap)​​。公司在第 D 日发出业绩 预告,30 天后才正式 立 10-Q。一个 2019 vintage 回测如果在 D 日就用上正式数字(而实盘策略只看得到 预告),收益会被高估,幅度等于「公告反应」本身。
  2. ​重述(restatement)陷阱​​。公司在 2022Q2 报告 2022Q1 营业收入 = 1 亿;2023Q4 重述为 8500 万。当前 vintage 数据集会把 2022Q1 始终 写成 8500 万;PIT 正确的数据集则在 2022Q2 ~ 2023Q4 期间显示 1 亿、自 2023Q4 起改显 8500 万。
  3. ​追溯修正(retrospective-correction)陷阱​​。会计准则切换(CN 在 2018 年正式落地 IFRS-9 金融工具;US 在 2019 年实施 ASC 842 租赁)会导致多年度数据在单一季度全部被重述。当前 vintage 数据集会用新准则回填旧年份——一个 2017 vintage 的回测于是能「看到」2017 年还不存在的信息。

双时间 SELECT 模式

「在 D 日,我们当时知道关于 X 的什么」这条规范查询,在任何仓库引擎(Snowflake / BigQuery / DuckDB / 带窗口 CTE 的 Postgres)下都是同一个形状。把它背下来:

-- show the most recent known value for each historical period as of the snapshot
SELECT symbol, value_date, revenue, net_income
FROM fundamentals_pit
WHERE symbol = '600519'
  AND value_date     <= '2023-12-31'
  AND knowledge_date <= '2023-12-31'
QUALIFY ROW_NUMBER() OVER (PARTITION BY value_date
                           ORDER BY knowledge_date DESC) = 1
ORDER BY value_date;

两条 WHERE 子句都以快照日为参考:value_date <= snapshot 只保留期末已经发生的会计期间;knowledge_date <= snapshot 只保留在快照日前就已被 知晓 的数值版本。QUALIFY ROW_NUMBER() ... ORDER BY knowledge_date DESC = 1 把任意一条重述链折叠到「最新已知」那一版——也就是快照日当天的实盘策略能看到的那个数。L4 会把这个查询升级为 SCD-2 视图(effective_from / effective_to),这里你停在查询形状上。

这件事重要到什么程度?已发表研究 López de Prado《Advances in Financial Machine Learning》第 7 章、以及 Bailey 与 López de Prado 关于回测过拟合的论文都给出量化结论:​​使用当前 vintage 基本面数据的价值因子回测,会把策略收益高估 20-50%​​;压力期更糟。本课开篇 0.7 到 1.4 的夏普差就是这个量级。价值因子在更宽的因子模型里通常与质量因子正交,二者构成基本面因子簇两根支柱(见 4.3.1)。

跨区会计与披露规则对照

证监会(CSRC)作为 A 股 公告 的发布机构,与本课内容紧密相关;CN A 股的 T+1 结算 制度则定义了价格端时间戳的最小可结算粒度(详见 4.1.1 跨模块引用)。

两个区域,一张对照表。这张表格是跨区做量化时人人都会内化在脑里的参考卡:

| dimension                    | us                                                          | cn                                                                                                  |
| accounting standard          | US-GAAP per FASB                                            | 企业会计准则 CASBE (largely converged to IFRS)                                                       |
| fiscal year-end              | varies by issuer (AAPL late September; most calendar)       | 12-31 fixed by Company Law                                                                          |
| annual filing                | 10-K within 60-90 days of fiscal year-end                   | 年报 by April 30                                                                                    |
| quarterly filing             | 10-Q within 40-45 days of period end                        | 季报 by April 30 (Q1) and October 31 (Q3); 半年报 by August 31                                       |
| event-driven filing          | 8-K within 4 business days of a material event              | 重大事项 公告 + 业绩 预告 (mandatory when quarterly profit changes ≥ 50% YoY)                         |
| primary source               | SEC EDGAR + XBRL                                            | CSRC 信息披露 系统 + 上交所 / 深交所 信息披露 平台 + 巨潮 资讯 网                                      |
| production vendor canonical  | S&P Compustat (+ CRSP for securities-master)                | Wind 万得                                                                                            |

两点关键。CN A 股因《公司法》会计年度末固定 12-31,跨截面对齐显著比美股简单。​​业绩预告 + 业绩快报​ 是 CN 特有的强制 / 半强制信息流:季度净利润同比变化 ≥ 50% 时公司 必须 在正式财报前发预告——US 端无等价。监管端原始源(巨潮资讯网等)免费且权威,但归一化成跨公司可比表是 6-12 个月项目;Wind / Choice / 同花顺 / 通联 已替你做完。

基本面数据供应商生态

CN 区基本面数据供应商生态围绕五个锚点稳定下来。​​Wind 万得​ 是 CN 买方机构生产环境的事实标准;​​Choice 数据​​(东方财富 旗下)次主流;​​同花顺 iFinD​ 在卖方研究所与中小私募 里广泛使用;​​通联数据​​(datayes)面向 ROBO Advisor 与算法服务;​​Tushare Pro​ 是个人研究者的成本优选。监管端原始源:CSRC 信息披露 系统、上交所 / 深交所 信息披露 平台、巨潮 资讯 网。生产规则:​​在 Wind / Choice / 同花顺 / 通联 已经归一化的情况下,永远不要从原始 公告 文件自己重新算基本面——重做归一化是一个六个月项目​​。

工作示例:600519 贵州茅台 的双时间镜头

从 Wind 的 fundamentals_pit 表拉 600519 过去五年的基本面历史。每季度末,从滚动四季 摊薄 EPS 汇总出 TTM EPS,从 bars_1d.close 取季度末股价,算 P/E。画两条曲线:(a) P/E「当时已知」版;(b) P/E「至今已知」版。两条线在所有重述季度上分叉。把分叉量化:大多数季度 < 1%,但五年窗口里有 5-6 个季度差距超 3%。把每条 P/E 序列各自喂进一个 2019 vintage 价值因子回测——今日 vintage 版本的夏普会比当时已知版高出「look-ahead bias」的部分,量级与已发表研究的 20-50% 完全一致。

四句话的纪律收尾:基本面数据是双时间的;每张研究表都必须携带 value_dateknowledge_date;永远不要给出在快照日尚未被知晓的数;生产查询是双时间 as-of 视图,不是当前 vintage 视图。

练习

Exercise

你在审一个价值策略的回测。回测从 fundamentals_current 表(单时间,当前 vintage)读取数据,在 沪深300 全市场跑 long-cheap / short-expensive P/E 截面策略 12 年,上报夏普 1.4。三个问题:(i) 列出本课命名的 三个 PIT 漏洞,并对每一个写一句话说明它是如何把回测夏普推高的。(ii) 给出生产侧的修复方案。(iii) 引用「20-50% 收益高估」这条已发表研究的量级,估计修复后夏普会被砍到哪个区间。

提示
三个漏洞在「时点(PIT)词汇三元组」一节命名:公告-vs-立案时点 陷阱、重述 陷阱、追溯修正 陷阱。每一条都问自己:回测 看到了 哪些实盘策略在快照日尚不可能拥有的「未来 信息」?
提示
生产侧修复 = 改读 fundamentals_pit 表,并使用快照日 as-of 视图。夏普砍幅:收益被高估 20-50% 大致对应夏普下降 20-50%(策略波动率几乎不变;均值下降)。预期 1.4 修复后会落在 0.7 ~ 1.1 之间。

Formula Explorer

P/E = \frac{price}{EPS_{TTM}} = \frac{price}{\sum_{q \in \text{trailing 4Q}} EPS_q}

本课组装清单

本课按顺序组装的可核对件:

  • Inline-code listing——四种基本面数据产品 + 流量 vs 存量 二分。
  • Inline-code table——六个核心估值比率映射到 定义 / 回答的问题 / 生产用途。
  • Inline-code listing——PIT 词汇三元组 value_date / filing_date / knowledge_date 加生产规则口号。
  • Fenced ```sql 代码块——双时间 as-of SELECT 模式(含 QUALIFY ROW_NUMBER())。
  • Inline-code table——跨区会计 + 披露 对照(US-GAAP vs CASBE、会计 年度末、披露 时限、监管原始源、供应商 主选)。
  • 练习——三题考察价值策略回测中的 PIT 漏洞,含两条递进式 Hint。
  • FormulaExplorer——P/E = price / TTM EPS 表达式。

四句话的纪律收尾:基本面数据是双时间的;每张研究表都必须携带 value_dateknowledge_date;永远不要给出在快照日尚未被知晓的数;生产查询是双时间 as-of 视图,不是当前 vintage 视图。

下一课

掌握基本面数据产品面与 PIT 纪律后,下一课打开另类数据产品面——新闻、卫星、网络爬取、社交、客流、信用卡、ESG、天气——并展示 PIT 纪律 同样适用,且常常带着比基本面更严重的数据可获得性滞后。把 value_date / knowledge_date 三元组带到 L2 去。