AI 原生量化投研平台AI-native quantitative research platform
正在加载…Loading…
页面仍在加载,可以继续等待,或重新加载。The page is still loading. You can keep waiting or reload.
部分页面资源未能加载,请重新加载。Some page resources could not load. Please reload.
设备当前处于离线状态,恢复连接后可以继续等待或重新加载。Your device is offline. Once connected, you can keep waiting or reload.
该表提供了上市公司财务衍生科目的详细分析,覆盖了从毛利润、经营活动净收益、价值变动净收益到各种利润指标(如扣非净利润、息税前利润、息税折旧摊销前利润)、债务情况、投入资本以及现金流等多个维度。包含最新一期数据、单季度数据和滚动十二期数据。数据非日频,根据财报的发布进行更新。
57 个字段
请注意:该表不是日频数据,不能直接作为因子使用。该表适合对财务数据有深入研究的用户,日频财务数据的加工方法见文末“通用文档”。
基于原始财务科目计算更多的财务科目,比如:毛利润等。
| 关键字 | 释意 |
|---|---|
| date | 公告日,表示站在这一天能看到的财务数据(shift = 0 为当时最新一期),不是报告期(报告期见 report_date),可能不是交易日;与 cn_stock_financial_changedate 中的 changedate 对应,详见文末“通用文档” |
| instrument | 股票代码 |
| report_date | 财务报告期,规则见文末“通用文档” |
| shift | 偏移期,站在 date 这一天,向前偏移 n 期的财务数据,0 为当时最新一期,单位为季度 |
字段名由下表的英文字段加后缀组成,后缀表示取数口径:_lf 最新一期,_mrq 单季度,_ttm 滚动十二期。不是每个指标都有三种后缀,具体字段以表结构为准。
| 中文名 | 英文字段 | 中文公式 | 英文公式 |
|---|---|---|---|
| 毛利润 | gross_profit | 营业收入 - 营业成本 | operating_revenue - operating_costs |
| 经营活动净收益 | operating_net_income | 营业总收入 - 营业总成本 | total_operating_revenue - total_operating_costs |
| 价值变动净收益 | value_chg_net_income | 公允价值变动收益 + 投资收益 + 汇兑收益 | fair_value_chg_gain + invest_income + exchange_gain |
| 息税前利润 | ebit | 利润总额 + 利息费用 | total_profit + interest_expense |
| 息税折旧摊销前利润 | ebitda | 息税前利润 + 当期计提折旧与摊销 | ebit + depreciation_amortization |
| 税后净营业利润 | nopat | 息税前利润 * (1-所得税率) | ebit * (1 - income_tax_rate) |
| 利息费用 | interest_expense | 利息支出 - 利息收入 | interest_costs - interest_income |
| 带息债务 | interest_bearing_debt | 负债合计 - 无息流动负债 - 无息非流动负债 | total_liabilities - noninterest_curr_liabilities - noninterest_noncurr_liabilities |
| 短期债务 | shortterm_debt | 短期借款 + 应付票据 + 交易性金融负债 + 一年内到期的非流动负债 | shortterm_borrowings + notes_payable + tradable_fin_liabilities + noncurr_liabilities_due_within_1y |
| 长期负债 | longterm_liabilities | 长期借款 + 应付债券 + 长期应付款合计 + 专项应付款 | longterm_borrowings + bonds_payable + longterm_payables_sum + specific_payables |
| 无息流动负债 | noninterest_curr_liabilities | 应付票据及应付账款 + 合同负债 + 预收款项 + 应付职工薪酬 + 应交税费 + 其他应付款合计 + 其他流动负债 + 递延收益-流动负债 | notes_and_accounts_payable + contract_liabilities + advances + employee_benefits_payable + taxes_and_levies_payable + other_payables_sum + other_current_liabilities + deferred_income_current_liabilities |
| 无息非流动负债 | noninterest_noncurr_liabilities | 非流动负债合计 - 长期借款 - 应付债券 | total_noncurr_liabilities - longterm_borrowings - bonds_payable |
| 全部投入资本 | invested_capital | 所有者权益合计 + 负债合计 - 无息流动负债 - 无息非流动负债 | total_owner_equity + total_liabilities - noninterest_curr_liabilities - noninterest_noncurr_liabilities |
| 营运资本 | working_capital | 流动资产合计 - 流动负债合计 | total_current_assets - total_current_liabilities |
| 净营运资本 | net_working_capital | 流动资产合计 - 货币资金 - 无息流动负债 | total_current_assets - monetary_assets - noninterest_curr_liabilities |
| 有形资产 | tangible_assets | 归属于母公司所有者权益合计 - (无形资产 + 开发支出 + 商誉 + 长期待摊费用 + 递延所得税资产) | total_equity_to_parent_shareholders - (intangible_assets + development_costs + goodwill + longterm_prepaid_expense + deferred_tax_assets) |
| 留存收益 | retained_income | 盈余公积 + 未分配利润 | surplus_reserve + undistributed_profit |
| 净债务 | net_debt | 带息债务 - 货币资金 | interest_bearing_debt - monetary_assets |
| 当期计提折旧与摊销 | depreciation_amortization | 固定资产折旧、油气资产折耗、生产性生物资产折旧 + 无形资产摊销 + 长期待摊费用摊销 + 使用权资产折旧 | depreciation_of_fa_oga_pba + amorization_of_intangible_assets + amortization_of_longterm_deferred_expenses + lease_liabilities |
| 企业自由现金流 | fcff | 税后净营业利润 + 当期计提折旧与摊销 - 营运资本增加 - 购建固定资产、无形资产和其他长期资产支付的现金 | nopat + depreciation_amortization - inc_wc - cash_paid_for_filt_assets |
| 股权自由现金流 | fcfe | 企业自由现金流 - 偿还债务支付的现金 + 取得借款收到的现金 + 发行债券收到的现金 | fcff - cash_paid_for_debt_repayment + cash_received_from_borrowings + cash_received_from_bond_issue |
| 有效税率 | effect_tax_rate | 所得税费用 / 利润总额 | income_tax_expense / total_profit |
| 存货的增加 | inc_inventory | 当前存货 - 上期存货 | current_inventories - last_period_inventories |
| 长期投资总额 | longterm_invest | 持有至到期投资 + 可供出售金融资产 + 长期股权投资 | held_to_maturity_invesments + available_for_sale_fin_assets + longterm_equity_investments |
| 扣非净利润 | net_profit_deducted | 净利润 - 非经常性损益 | net_profit - non_recurring_profit_and_loss |
| 扣非归母净利润 | net_profit_to_parent_deducted | 归母净利润 - 非经常性损益 | net_profit_to_parent - non_recurring_profit_and_loss |
2026-10-28 至 2026-11-04 的数据,字段较多,只展示 7 个字段,按日期、股票代码、报告期排序,展示前 5 行和后 5 行。
| date | instrument | report_date | shift | gross_profit_lf | operating_net_income_lf | value_chg_net_income_lf | interest_expense_lf | depreciation_amortization_lf | effect_tax_rate_lf | noninterest_curr_liabilities_lf | noninterest_noncurr_liabilities_lf | ebit_lf | ebitda_lf | nopat_lf | interest_bearing_debt_lf | shortterm_debt_lf | longterm_liabilities_lf | invested_capital_lf | working_capital_lf | net_working_capital_lf | tangible_assets_lf | retained_income_lf | net_debt_lf | inc_wc_lf | fcff_lf | fcfe_lf | inc_inventory_lf | longterm_invest_lf | net_profit_deducted_lf | net_profit_to_parent_deducted_lf | gross_profit_mrq | operating_net_income_mrq | value_chg_net_income_mrq | interest_expense_mrq | depreciation_amortization_mrq | effect_tax_rate_mrq | ebit_mrq | ebitda_mrq | nopat_mrq | fcff_mrq | fcfe_mrq | net_profit_deducted_mrq | net_profit_to_parent_deducted_mrq | gross_profit_ttm | operating_net_income_ttm | value_chg_net_income_ttm | interest_expense_ttm | depreciation_amortization_ttm | effect_tax_rate_ttm | ebit_ttm | ebitda_ttm | nopat_ttm | fcff_ttm | fcfe_ttm | net_profit_deducted_ttm | net_profit_to_parent_deducted_ttm |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-10-28 00:00:00 | 000025.SZ | 2008-12-31 00:00:00 | 71 | 9.59176e+07 | -7.81838e+06 | 7.30711e+06 | 1.2677e+07 | 1.68731e+07 | 0.157164 | 1.85084e+08 | 9.43617e+07 | 1.48659e+07 | 3.1739e+07 | 1.25295e+07 | 1.48112e+08 | 1.66617e+08 | 1.88096e+07 | 3.35099e+08 | -1.89626e+08 | -2.29301e+08 | 1.34027e+08 | -6.37348e+07 | 1.08437e+08 | nan | 2.85992e+07 | -5.4447e+06 | nan | 1.41228e+08 | nan | nan | nan | nan | 0 | nan | 0 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | 0 | nan | 0 | nan | nan | nan | nan | nan | nan | nan | nan |
| 2026-10-28 00:00:00 | 000025.SZ | 2009-03-31 00:00:00 | 70 | 1.5164e+07 | -7.79765e+06 | -947253 | 2.41062e+06 | 0 | -0.0105599 | 0 | 0 | -5.2507e+06 | -5.2507e+06 | -5.30615e+06 | nan | 0 | 0 | 0 | nan | nan | nan | nan | nan | nan | -1.95142e+08 | -2.03714e+08 | nan | 0 | nan | nan | 1.5164e+07 | -7.79765e+06 | -947253 | 2.41062e+06 | 0 | -0.0105599 | -5.2507e+06 | -5.2507e+06 | -5.30615e+06 | -1.95142e+08 | -2.03714e+08 | nan | nan | nan | nan | 0 | nan | 0 | nan | nan | nan | nan | nan | nan | nan | nan |
| 2026-10-28 00:00:00 | 000025.SZ | 2009-06-30 00:00:00 | 69 | 3.25112e+07 | -9.39787e+06 | 3.22e+06 | 4.4929e+06 | 9.36314e+06 | 0.108274 | 0 | 0 | 8.04541e+06 | 1.74086e+07 | 7.1743e+06 | nan | 0 | 0 | 0 | nan | nan | nan | nan | nan | nan | -1.73405e+08 | -2.15977e+08 | nan | 0 | nan | nan | 1.73473e+07 | -1.60022e+06 | 4.16725e+06 | 2.08228e+06 | 0 | 0.0270865 | 1.32961e+07 | 1.32961e+07 | 1.2936e+07 | 1.2829e+07 | -2.1171e+07 | nan | nan | nan | nan | 0 | nan | 0 | nan | nan | nan | nan | nan | nan | nan | nan |
| 2026-10-28 00:00:00 | 000025.SZ | 2009-09-30 00:00:00 | 68 | 5.05271e+07 | -1.14531e+07 | 3.5982e+06 | 6.98403e+06 | 0 | 0.235501 | 0 | 0 | 9.69278e+06 | 9.69278e+06 | 7.41012e+06 | nan | 0 | 0 | 0 | nan | nan | nan | nan | nan | nan | -1.82807e+08 | -1.84179e+08 | nan | 0 | nan | nan | 1.80159e+07 | -2.05525e+06 | 378196 | 2.49113e+06 | 0 | -0.300169 | 1.64737e+06 | 1.64737e+06 | 2.14186e+06 | 1.86712e+06 | 4.30671e+07 | nan | nan | nan | nan | 0 | nan | 0 | nan | nan | nan | nan | nan | nan | nan | nan |
| 2026-10-28 00:00:00 | 000025.SZ | 2009-12-31 00:00:00 | 67 | 6.97924e+07 | -1.68777e+07 | 1.48754e+07 | 9.60469e+06 | 1.69743e+07 | 0.060118 | 1.66224e+08 | 9.39048e+07 | 1.82478e+07 | 3.52221e+07 | 1.71508e+07 | 1.56279e+08 | 9.33136e+07 | 9.96202e+07 | 3.51358e+08 | -8.20865e+07 | -1.59463e+08 | 1.39174e+08 | -5.72273e+07 | 7.89027e+07 | nan | -7.42458e+07 | -6.60258e+07 | nan | 1.34076e+08 | -3.75598e+06 | -5.58531e+06 | 1.92653e+07 | -5.42459e+06 | 1.12772e+07 | 2.62066e+06 | 0 | -0.019936 | 8.55503e+06 | 8.55503e+06 | 8.72558e+06 | 9.05719e+07 | 1.00164e+08 | nan | nan | 6.97924e+07 | -1.68777e+07 | 1.48754e+07 | 9.60469e+06 | 0 | 0.060118 | 1.82478e+07 | 1.82478e+07 | 1.71508e+07 | -9.12201e+07 | -8.30001e+07 | nan | nan |
| 2026-11-02 00:00:00 | 001381.SZ | 2025-09-30 00:00:00 | 4 | 6.00113e+08 | 2.57789e+08 | 385730 | 3.51272e+06 | 0 | 0.102707 | 0 | 0 | 2.75775e+08 | 2.75775e+08 | 2.47451e+08 | nan | 0 | 0 | 0 | nan | nan | nan | nan | nan | nan | 5.77184e+08 | 6.78303e+08 | nan | 0 | nan | nan | 2.20879e+08 | 9.64602e+07 | 0 | 2.0229e+06 | 0 | 0.0953546 | 1.00741e+08 | 1.00741e+08 | 9.1135e+07 | 6.09884e+08 | 5.96992e+08 | nan | nan | nan | nan | 0 | nan | 0 | nan | 3.03772e+08 | 3.03772e+08 | nan | nan | nan | nan | nan |
| 2026-11-02 00:00:00 | 001381.SZ | 2025-12-31 00:00:00 | 3 | 7.96945e+08 | 3.12318e+08 | 620799 | 6.76723e+06 | 1.66923e+08 | 0.0827435 | 1.08566e+09 | 5.68971e+07 | 3.43836e+08 | 5.10759e+08 | 3.15386e+08 | 2.89289e+08 | 9.80669e+08 | 2.492e+08 | 2.68019e+09 | 6.79351e+08 | 3.14131e+08 | 2.01894e+09 | 7.46967e+08 | -7.59312e+07 | nan | 5.92332e+07 | 1.55429e+08 | nan | 0 | nan | nan | 1.96832e+08 | 5.45291e+07 | 235068 | 3.25451e+06 | 0 | -0.0011257 | 6.80613e+07 | 6.80613e+07 | 6.81379e+07 | -6.84671e+08 | -6.89594e+08 | nan | nan | nan | nan | 0 | nan | 0 | nan | 3.37069e+08 | 3.37069e+08 | nan | nan | nan | nan | nan |
| 2026-11-02 00:00:00 | 001381.SZ | 2026-03-31 00:00:00 | 2 | nan | nan | 0 | nan | 0 | nan | 0 | 0 | 9.30779e+07 | 9.30779e+07 | nan | 1.57602e+09 | 0 | 0 | 4.05351e+09 | nan | nan | nan | nan | 1.57602e+09 | nan | nan | nan | nan | 0 | nan | nan | nan | nan | 0 | nan | 0 | nan | 9.30779e+07 | 9.30779e+07 | nan | nan | nan | nan | nan | nan | nan | 0 | nan | 0 | nan | 3.35223e+08 | 3.35223e+08 | nan | nan | nan | nan | nan |
| 2026-11-02 00:00:00 | 001381.SZ | 2026-06-30 00:00:00 | 1 | 3.98799e+08 | 1.51532e+08 | 50904.1 | 8.64364e+06 | 1.07089e+08 | 0.0521807 | 1.29433e+09 | 5.73944e+07 | 1.76033e+08 | 2.83122e+08 | 1.66847e+08 | 4.27827e+08 | 1.35755e+09 | 2.67987e+08 | 2.98089e+09 | 6.76388e+08 | 1.71931e+08 | 2.17689e+09 | 9.05622e+08 | -7.66297e+07 | nan | -9.50867e+06 | 1.28158e+08 | nan | 0 | nan | nan | nan | nan | 0 | nan | 0 | nan | 7.43111e+07 | 7.43111e+07 | nan | nan | nan | nan | nan | nan | nan | 0 | nan | 0 | nan | 3.30914e+08 | 3.30914e+08 | nan | nan | nan | nan | nan |
| 2026-11-02 00:00:00 | 001381.SZ | 2026-09-30 00:00:00 | 0 | 5.89495e+08 | 2.19017e+08 | 0 | 1.15235e+07 | 0 | 0.0425911 | 1.40049e+09 | 5.74441e+07 | 2.4657e+08 | 2.4657e+08 | 2.36068e+08 | 3.86968e+08 | 1.41277e+09 | 2.66239e+08 | 3.00765e+09 | 7.03704e+08 | 2.54153e+08 | 2.23656e+09 | 9.72002e+08 | -6.25838e+07 | 2.73162e+07 | -1.73047e+08 | -7.43553e+07 | 4.19018e+07 | 0 | nan | nan | 1.90695e+08 | 6.74853e+07 | 0 | 2.87984e+06 | 0 | 0.0188658 | 7.05371e+07 | 7.05371e+07 | 6.92064e+07 | -5.64637e+07 | -9.54385e+07 | nan | nan | nan | nan | 0 | nan | 0 | nan | 2.99853e+08 | 2.99853e+08 | nan | nan | nan | nan | nan |
平台的财务数据分四类,从原始披露到加工指标逐层派生:
| 类别 | 数据表 | 说明 |
|---|---|---|
| 原始数据 | 资产负债表、利润表、现金流量表 PIT(cn_stock_financial_*_pit),财报变更日期(cn_stock_financial_changedate),财务附注(cn_stock_financial_note_*) | 公司披露什么就记录什么,只在披露财报时有记录,不是日频 |
| 衍生数据 | cn_stock_financial_lf_shift、ly_shift、mrq_shift、ttm_shift、notes_shift | 把原始数据加工成最新一期(LF)、最新年报(LY)、单季度(MRQ)、滚动十二期(TTM),并用 shift 带出历史各期 |
| 财务分析 | cn_stock_financial_profitability、growth、operating、debt_repay、capital、cash_flow、earning_quality、xps、derivative | 在衍生数据的基础上做加减乘除得到的财务指标 |
| 盈利预期 | cn_stock_financial_earnings_preview、cn_stock_financial_forecast_consensus_rolling | 业绩快报和机构一致预期,口径独立,见各表文档 |
以上财务表都不是日频数据,不能直接当作每日因子使用,需要先按公告日对齐到交易日,做法见本文五。衍生数据和财务分析适合对财务数据有较深了解、希望构建复杂财务因子的用户。
财务表里有两个时间概念,含义不同,使用时不要混淆:
date:公告日,即这条财务数据对外公布(首次披露或更正)的日期,也是这条数据可以被使用的最早日期。date 不是报告期。report_date:报告期,即这条数据属于哪一期财报。关于 date 的几点说明:
date 就是公告日,原样记录,公告日不是交易日(周末、节假日)时也不会顺延,所以 date 可能不是交易日。按交易日使用时,用 date <= 交易日 取最新的记录即可(见本文五的 ASOF JOIN)。date 来自 cn_stock_financial_changedate 的 changedate,二者约等于同一个日期。数据入库时会去重,所有字段的取值完全相同的记录只保留一条。report_date 首次披露和后来更正,会有不同的 date。date 同样是公告日,表里只有公司有公告的日期。站在这一天,shift = 0 是当时能看到的最新一期,shift = 1, 2… 是更早的各期,数值是当时能看到的版本,示例见本文四。报告期的取值:
上市公司一年内披露四次财务报告,披露时限如下:
判断某一天能看到哪些数据要用 date,不能用 report_date,否则会用到当时还没有公布的数据。
上市公司除了正常披露财务报表外,后续会时常对历史财务数据进行修正。因此在量化投资领域,加工财务数据时不能只用最新修正后的数据,而要基于历史时间节点获取当时能获取的最新数据。PIT(Point In Time)数据指的是在某个时间点上,基于已公布的财务报表获取的某个财务指标的取值。
以 002473.SZ 的财务数据为例,在平台上调用以下代码:
import daiimport pandas as pdpd.set_option('display.float_format', '{:.2f}'.format)
dai.query("""SELECT date, instrument, report_date, change_type, total_current_assetsFROM cn_stock_financial_balance_general_pitWHERE instrument='002473.SZ'AND report_date='2019-12-31'AND date>'2020-01-01'""").df()运行上述代码,能得到以下数据:
| date | instrument | report_date | change_type | total_current_assets |
|---|---|---|---|---|
| 2020-04-30 | 002473.SZ | 2019-12-31 | 0 | 223449880.95 |
| 2020-08-27 | 002473.SZ | 2019-12-31 | 1 | 228470428.90 |
| 2020-10-26 | 002473.SZ | 2019-12-31 | 1 | 228470428.90 |
| 2021-04-29 | 002473.SZ | 2019-12-31 | 1 | 228470428.90 |
该公司于 2020 年 4 月 30 日首次公布 2019 年年报,披露的流动资产(total_current_assets)为 223449880.95,又于 2020 年 8 月 27 日对 2019 年年报的流动资产进行修正,修正为 228470428.90,因此 2019 年年报在表中有多条记录。
date 为 2020-08-27、2020-10-26、2021-04-29 的 total_current_assets 取值相同,这些重复记录是必要的:公司每披露某一期财报,都会附带上年同期或上年年末的数据作对比,极少部分公司即使不发布修正公告,也会通过这种方式修改历史财务数据,所以每次披露都保留一条记录。
原始数据表里与此相关的字段:
| 字段 | 释意 |
|---|---|
| change_type | 0 表示首次披露的财务数据,1 表示非首次披露或有更改的财务数据 |
| fs_quarter_index | 对应季度,1 指一季报,2 指半年报,3 指三季报,4 指年报,仅报表 PIT 表有 |
原始财务数据只在公司披露财报时才有记录,这类非规整的数据很难直接用于量化投资。衍生数据把原始数据加工成四类,字段名就是原始财务字段加上对应的后缀。要查具体字段,先在原始财报的文档里找到财务字段,再加上后缀,比如利润表的 net_profit 对应 net_profit_lf、net_profit_ttm。
cn_stock_financial_lf_shiftcn_stock_financial_ly_shiftcn_stock_financial_mrq_shiftcn_stock_financial_ttm_shift在平台加工的“衍生数据”和“财务分析”两大类财务数据中,我们同样进行 PIT 处理,以 002473.SZ 这只股票的流动资产(total_current_assets)数据举例:
import daiimport pandas as pdpd.set_option('display.float_format', '{:.2f}'.format)
dai.query("""SELECT date, instrument, report_date, shift, total_current_assets_lfFROM cn_stock_financial_lf_shiftWHERE instrument='002473.SZ'AND shift < 3AND ((date='2020-04-30')OR (date='2020-08-27'))""").df().sort_values("date")通过上述代码,我们得到以下数据,可以看出,站在 2020 年 4 月 30 日这一天,我们能获取到的 2019 年年报的流动资产为 223449880.95,但站在 2020-08-27 这一天时,我们能获取到的 2019 年年报的流动资产为 228470428.90。
| date | instrument | report_date | shift | total_current_assets_lf |
|---|---|---|---|---|
| 2020-04-30 | 002473.SZ | 2019-09-30 | 2 | 268546184.69 |
| 2020-04-30 | 002473.SZ | 2019-12-31 | 1 | 223449880.95 |
| 2020-04-30 | 002473.SZ | 2020-03-31 | 0 | 213964081.16 |
| 2020-08-27 | 002473.SZ | 2019-12-31 | 2 | 228470428.90 |
| 2020-08-27 | 002473.SZ | 2020-03-31 | 1 | 233220236.75 |
| 2020-08-27 | 002473.SZ | 2020-06-30 | 0 | 222315509.19 |
衍生数据按公告日存储,不是日频。要得到日频数据,把财务表按公告日对齐到交易日:某一天只使用当天及之前已经公告的最新一期(shift = 0),在下一次公告之前沿用上一期的值。DAI SQL 用 ASOF JOIN 完成。
下面以日频 ROE 为例,ROE = 滚动十二期归属母公司股东的净利润 / 最新一期归属母公司股东的所有者权益:
import dai
df = dai.query("""SELECT b.date, b.instrument, t.net_profit_to_parent_shareholders_ttm / l.total_equity_to_parent_shareholders_lf AS roe_ttmFROM cn_stock_bar1d bASOF JOIN (SELECT * FROM cn_stock_financial_ttm_shift WHERE shift = 0) t ON b.instrument = t.instrument AND b.date >= t.dateASOF JOIN (SELECT * FROM cn_stock_financial_lf_shift WHERE shift = 0) l ON b.instrument = l.instrument AND b.date >= l.dateWHERE b.date >= '2024-01-01'ORDER BY b.date, b.instrument""", filters={"date": ["2023-01-01", "2024-12-31"]}).pl()filters 的起点要早于第一个需要的交易日,这里提前一年,这样起点之前已经公告的财报也能取到。cn_stock_financial_profitability 的 roe_avg_ttm、roe_period_ttm 等字段。平台还提供过已按日频处理好的财务表 cn_stock_factors_financial_items,以 002473.SZ 的流动资产(total_current_assets)数据举例(该表已不建议使用,建议基于衍生数据自行计算):
import daiimport pandas as pdpd.set_option('display.float_format', '{:.2f}'.format)
dai.query("""SELECT date, instrument, total_current_assets_lyFROM cn_stock_factors_financial_itemsWHERE instrument='002473.SZ'AND ((date>'2020-04-25' and date<'2020-05-05')OR (date>'2020-08-25' and date<'2020-09-01'))""").df().sort_values("date")通过上述代码,我们得到以下数据。可以看出,当日期来到 2020 年 4 月 30 日这一天时,我们能获取到最新的流动资产(年报)数据是 223449880.95,这个数值一直保持到 2020 年 8 月 27 日,最新一期年报的流动资产变为了 228470428.90,符合预期。
| date | instrument | total_current_assets_ly |
|---|---|---|
| 2020-04-27 | 002473.SZ | 330113974.90 |
| 2020-04-28 | 002473.SZ | 330113974.90 |
| 2020-04-29 | 002473.SZ | 330113974.90 |
| 2020-04-30 | 002473.SZ | 223449880.95 |
| 2020-08-26 | 002473.SZ | 223449880.95 |
| 2020-08-27 | 002473.SZ | 228470428.90 |
| 2020-08-28 | 002473.SZ | 228470428.90 |
| 2020-08-31 | 002473.SZ | 228470428.90 |
shift 的含义都与衍生数据相同,字段名带 _lf、_mrq、_ttm 后缀。各指标的计算公式见各表文档的“字段说明”。report_date 的月份筛选出 06-30 和 12-31 的记录。非经常性损益等少数科目在一季报、三季报中也有数据。import daidf = dai.query(""" SELECT date, instrument, report_date, ebit_lf, ebit_mrq, ebit_ttm, fcfe_lf, fcfe_mrq, fcfe_ttm FROM cn_stock_financial_derivative WHERE instrument = '000001.SZ' AND shift = 0 ORDER BY date,report_date""", filters={"date": ["2020-01-01", "2024-12-31"]}).df()import daidf = dai.query(""" SELECT * FROM cn_stock_financial_derivative WHERE instrument = '000001.SZ' AND shift = 0 ORDER BY date,report_date,instrument""", filters={"date": ["2018-01-01", "2023-12-31"]}).df()import daidf = dai.query(""" SELECT date, instrument, report_date, shift, fcff_lf, fcff_mrq, fcff_ttm FROM cn_stock_financial_derivative WHERE instrument = '000001.SZ' ORDER BY date,instrument,report_date """, full_db_scan=True).df()SELECT date, instrument, report_date, shift, gross_profit_lf, gross_profit_mrq, gross_profit_ttm FROM cn_stock_financial_derivative WHERE date >= '2026-10-06' ORDER BY date LIMIT 100
SELECT date, instrument, report_date, shift, gross_profit_lf, gross_profit_mrq, gross_profit_ttm FROM cn_stock_financial_derivative WHERE date >= '2026-10-06' ORDER BY date LIMIT 100