特征工程、评分规则、评级标准等领域知识,供开发中查阅。
| 接口 | 数据源 | 用途 |
|---|---|---|
ak.stock_info_a_code_name() |
东财 | 全部 A 股代码 + 名称(批量 1 次) |
ak.stock_financial_debt_new_ths(symbol, "按报告期") |
同花顺 | 资产负债表 |
ak.stock_financial_benefit_new_ths(symbol, "按报告期") |
同花顺 | 利润表(含同比增速) |
ak.stock_financial_cash_new_ths(symbol, "按报告期") |
同花顺 | 现金流量表 |
ak.stock_profile_cninfo(symbol) |
巨潮 | 个股概况:上市日期 |
sw_index_first_info() + index_component_sw(code) |
申万指数 | 全 A 股 → 申万一级行业映射(缓存至 data/缓存/sw_mapping.json) |
数据经 akshare 间接调用上游公开接口。以下是各来源的原始链接,可用于手动验证数据是否准确。
输出的 xlsx 文件包含两个 sheet:
- 「数据」 — 采集的财务数据
- 「数据来源」 — 每个字段的原始出处(同花顺/巨潮/东财/计算值等)
直接访问交易所官网可核实股票代码是否存在:
- 深交所:
https://www.szse.cn/market/product/stock/list/index.html - 上交所:
https://www.sse.com.cn/assortment/stock/list/share/
同花顺个股财务页,URL 中的 000001 替换为任意股票代码:
https://basic.10jqka.com.cn/astockpc/astockmain/index.html#/financen?code=000001
可手动核对采集出的主营收入、净利润、总资产等数值是否与页面一致。
巨潮资讯 API 接口(返回 JSON):
https://webapi.cninfo.com.cn/api/sysapi/p_sysapi1133
验证方法:打开 https://webapi.cninfo.com.cn/#/company,搜索股票代码查看上市日期。
行业列表页(浏览器可访问):
https://legulegu.com/stockdata/sw-industry-overview
成分股接口(当前上游不稳定,有概率返回空数据):
https://www.swsresearch.com/institute-sw/api/index_publish/details/component_stocks/
运行集成测试可自动验证 6 个数据源是否可用:
uv run pytest integrated_tests/ -v -m integration测试覆盖:股票列表数 > 4000、同花顺三表字段名匹配、巨潮上市日期可解析、申万行业列表返回 31 个。
| 字段名(金融缩写) | 来源/公式 | 列属性 | 取值 |
|---|---|---|---|
| 股票代码(Code) | - | 文本 | 600000 |
| 股票名称(Name) | - | 文本 | 浦发银行 |
| 行业属性 | - | 文本 | |
| 上市日期(ListDate) | - | 日期 | 20121009 |
| 财报发布日期(PubDate) | - | 日期 | 20251025 |
| 财报所属期间(Period) | - | 文本 | 一季报/三季报/半年报/年报 |
| 主营收入(Rev) | - | 数值 | 263952 |
| 主营利润(GP) | - | 数值 | 25430 |
| 营业利润(OP) | - | 数值 | 10284 |
| 投资收益(InvP) | - | 数值 | -217 |
| 营业外收支(NRI) | - | 数值 | -3 |
| 利润总额(TP) | - | 数值 | 10821 |
| 净利润(NP) | - | 数值 | 9397 |
| 未分配利润(RE) | - | 数值 | |
| 总资产(TA) | - | 数值 | 492021 |
| 流动资产(CA) | - | 数值 | 384157 |
| 固定资产(FA) | - | 数值 | 17994 |
| 无形资产(IA) | - | 数值 | 3050 |
| 总负债(TL) | - | 数值 | 73865 |
| 流动负债(CL) | - | 数值 | 18218 |
| 长期负债(LTL) | - | 数值 | 27500 |
| 股东权益(SE) | - | 数值 | 186236 |
| 资本公积金(APIC) | - | 数值 | 169872 |
| 经营现金流量(OCF) | - | 数值 | -67670 |
| 投资现金流量(ICF) | - | 数值 | 13489 |
| 筹资现金流量(CFF) | - | 数值 | 44690 |
| 每股收益(EPS) | - | 数值(2位) | 0.95 |
| 每股净资产(BVPS) | - | 数值(2位) | 3.85 |
| 净资产收益率(ROE) | - | 百分比(2位) | 26.61% |
| 主营收入同比增长率(Rev_YoY) | - | 百分比(2位) | 9.52 |
| 净利润同比增长率(NP_YoY) | - | 百分比(2位) | 50.30 |
衍生指标:
| 指标 | 公式 | 类型 |
|---|---|---|
| 资产负债率(ALR) | TL / TA | 百分比 |
| 流动比率(CR) | CA / CL | 百分比 |
| 权益乘数(EM) | TA / SE | 百分比 |
| 净利润占营业利润比(NPR) | NP / OP | 百分比 |
| 主营利润率(OPM) | GP / Rev | 百分比 |
| 净利率(NPM) | NP / Rev | 百分比 |
| 投资收益占比(IPR) | InvP / OP | 百分比 |
| 现金流量比率(CFR) | OCF / CL | 百分比 |
| 销售毛利率(GPM) | GP / Rev | 百分比 |
| 股东权益比(EQ/TA) | SE / TA | 百分比 |
| 数据质量 | 缺失衍生指标数 | 整数,≥4 不参与排名 |
| 类别 | 字段 | 处理 |
|---|---|---|
| 必填 | Code / Name / Rev / NP / TA / TL / SE / CA / CL / OCF / PubDate / Period / ListDate / 行业属性 | 缺失则丢弃整行 |
| 补零 | InvP / NRI / LTL / FA / IA / ICF / CFF | 空值填 0 |
| 保留 | GP / OP / RE / APIC / EPS / BVPS / ROE / 增速字段 | 可空保留 |
| 异常 | 判定 | 处理 |
|---|---|---|
| TA ≤ 0 | 理论不可能 | 丢弃 |
| SE ≤ 0 | 资不抵债 | 丢弃,标注 ST |
| 同比增速 > 500% | 并购等非经营因素 | Winsorize 到 500% |
| 比率 > 1000% | 分母极小失真 | Winsorize 到 ±1000% |
数据质量 列记录缺失衍生指标数量,超过 1/3 则不参与排名。
读取 data/财务/YYMMDD.xlsx
→ 一票否决筛选
→ 行业分类映射(申万 → 5 大类)
→ 成长性评分(营收增速 + 净利增速)
→ 稳健性评分(资产负债率 + 流动比率)
→ 资金回报评分(ROE)
→ 读取行业权重表
→ 综合分 = 成长分×w1 + 稳健分×w2 + 回报分×w3
→ 保存 data/财务/YYMMDD-评分.xlsx
| 否决项 | 判定条件 | 实现方式 |
|---|---|---|
| 造假嫌疑 | 经营现金流连续多年远低于净利润(OCF/NP < 0.5) | 规则自动 |
| 诚信问题 | 频繁更换审计机构 / 大股东质押率 > 70% / 信披违规 | LLM 联网搜索(二期) |
| 行业毁灭 | 技术路线被颠覆 | LLM 联网搜索(二期) |
否决股票写入 否决 列,不参与评分。
| 分数 | 营收增速 | 净利增速 |
|---|---|---|
| 9-10 | > 40% | > 50% |
| 7-8 | 25-40% | 30-50% |
| 5-6 | 15-25% | 15-30% |
| 3-4 | 5-15% | 0-15% |
| 1-2 | < 5%或负 | 负增长 |
取两项均值。缺失项不计入,分母自动减 1。
| 分数 | 资产负债率 | 流动比率 |
|---|---|---|
| 9-10 | < 40% | > 2.5 |
| 7-8 | 40-60% | 1.5-2.5 |
| 5-6 | 60-75% | 1.0-1.5 |
| 3-4 | 75-85% | 0.5-1.0 |
| 1-2 | > 85% | < 0.5 |
取两项均值。缺失不计入。
| 分数 | ROE |
|---|---|
| 9-10 | > 20% |
| 7-8 | 15-20% |
| 5-6 | 10-15% |
| 3-4 | 6-10% |
| 1-2 | < 6% |
| 行业 | 成长性 | 稳健性 | 资金回报 |
|---|---|---|---|
| 周期资源 | 0.25 | 0.35 | 0.40 |
| 大消费 | 0.30 | 0.30 | 0.40 |
| 证券金融 | 0.30 | 0.30 | 0.40 |
| 科技/制造 | 0.50 | 0.20 | 0.30 |
| 公用事业/基建 | 0.20 | 0.40 | 0.40 |
综合分 = 成长分 × 成长权重 + 稳健分 × 稳健权重 + 回报分 × 回报权重
| 综合分 | 评级 |
|---|---|
| 8.5 - 10.0 | 👑 皇冠明珠 |
| 7.0 - 8.4 | ⭐ 优秀白马 |
| 5.5 - 6.9 | 🔄 鸡肋/观察 |
| < 5.5 |
否决股票标为「否决」,不参与评级。输出 data/财务/YYMMDD-评级.xlsx。
取前 20 名,按综合分降序排列。
| 字段 | 说明 |
|---|---|
| 股票代码 / 股票名称 | - |
| 公司类型 | 千里马 / 现金牛 / 护城河 |
| 行业分类 | 周期资源 / 大消费 / 证券金融 / 科技/制造 / 公用事业/基建 |
| 成长性 / 稳健性 / 回报性 | 各维度评分(0-10) |
| 综合分 | 加权总分(0-10) |
| 评级 | 皇冠明珠 / 优秀白马 / 鸡肋/观察 / 垃圾时间 |
| 核心亮点 | AI 生成,≤30 字 |
| 点评 | AI 点评,≤50 字 |
| 条件 | 类型 |
|---|---|
| 科技/制造 且 营收增速 > 15% | 🐎 千里马 |
| 公用事业/基建 且 营收增速 > 15% | 🐎 千里马 |
| 周期资源 且 营收增速 > 30% | 🐎 千里马 |
| 大消费 且 毛利率 > 50% | 🛡️ 护城河 |
| 毛利率 > 40% 且 ROE > 15 | 🛡️ 护城河 |
| 其余 | 🐮 现金牛 |
| 行业 | 常态分类 | 特殊情况 |
|---|---|---|
| 周期资源 | 现金牛 | 景气爆发期可为千里马 |
| 大消费 | 护城河 | 大众消费品可为千里马 |
| 证券金融 | 护城河(头部) | 特色券商可为千里马 |
| 科技/制造 | 千里马 | 平台型龙头可为护城河 |
| 公用事业/基建 | 现金牛 | 扩张期可为千里马 |
输出 data/分析/YYMMDD-荐股.xlsx。