Skip to content

Latest commit

 

History

History
271 lines (201 loc) · 9.06 KB

dev-guide.md

File metadata and controls

271 lines (201 loc) · 9.06 KB

AlphaJerry 开发指南

特征工程、评分规则、评级标准等领域知识,供开发中查阅。


数据采集

数据源接口

接口 数据源 用途
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。