diff --git a/docs/个股深度评析方案_2026-09-09.md b/docs/个股深度评析方案_2026-09-09.md new file mode 100644 index 0000000..aafea75 --- /dev/null +++ b/docs/个股深度评析方案_2026-09-09.md @@ -0,0 +1,199 @@ +# 个股深度评析方案(2026-09-09,已批准) + +> 这是一份独立方案。批准后落盘为两个仓库的 docs/个股深度评析方案_2026-09-09.md,与《下一阶段工作方案_2026-09-07》《量价研判链吸收方案_2026-09-08》并列。 +> 09-09 三条拍板已吸收进正文:**先只出人看的报告**,不接进候选卡与判决;**覆盖候选加持仓加池,本地模型为主**;**大师视角不限于用户提的三位,罗列得更宽**。 +> "采购清单"这类字眼不再用;材料缺口一律叫"材料需求单"。 + +--- + +## 零、一句话 + +公司深度研报市场上只有一千多只票有、我们手里只有五十来份带公司锚的;买方研报一份都没有。这份方案让系统自己写:**十年财务报表数据由代码算成指标,十几位投资大师的分析视角各自给出判据与结论,最后合成一份买方式的论点**。每家公司一份 Markdown 报告,只给人看,先看质量,再决定接不接进候选卡。 + +--- + +## 一、这一轮买什么 + +三样东西,都是现在没有的。 + +1. **公司基本面这一维。** 四层系统里没有任何一处把财务报表当输入:候选卡只有价格、吸筹、券商预期、论断;数据基座的年报只抽关系不抽数字;择时决策系统只有券商预期一块。153 库里六张财务表(十年三张表的重构指标、成长、质量、财务指标、主营构成、分红)代码里从来没读过。 +2. **深度研报与买方研报的替代品。** 券商深度覆盖不到候选,买方研报本来就拿不到。大师视角是几十年验证过的分析框架,把它们编成代码判据加模型叙述,覆盖面就不再受券商产量限制。 +3. **"我无法判断"的清单。** 每个视角算不出的项、材料没到的项,都写成清单并开成材料需求单,这与设计目标里"系统能识别我无法判断"是一件事。 + +**定调上的一处变化要记台账。** 产业热点图谱设计里定过"不补深度、不算估值、定量估值交给一致预期"。这一轮明确改成:**基座可以按大师的方法算估值判据,但结论标为"该视角的结论",不是系统判决**;一致预期仍是"市场预期"这一侧的唯一来源,用来算预期差。 + +--- + +## 二、原则 + +- **代码算数,模型写字。** 所有指标、判据、打分由代码从表里算,模型只在拿到算好的数字与编号材料后写叙述与合议,提示词里禁止自造数字。 +- **本地模型为主。** 叙述用基座路由里的本地档位(188 的大模型档位为主,本地判定档位备用),只有最后的"买方论点合议"允许走云端,且默认关。 +- **加,不改。** 新包、新表、新任务、新框架定义并行放旁边;候选卡、判决、逻辑状态、评析表、抽取提示词一个字节不动。 +- **只出人看的报告。** 报告落文件与索引表,不进候选卡、不进 PMS、不进复盘分组。什么时候接,看过十份报告再拍板。 +- **每个视角都要能说"算不了"。** 缺表、缺期数、缺材料时,判据项写"缺",不用替代值冒充。 + +--- + +## 三、投资大师视角总表(不止用户提的三位) + +每个视角是一个"技能":固定的判据清单、固定的数据槽位、固定的三个追问、可选的叙述段。分四类。 + +### 3.1 财务质量与安全(全部可代码化,第一批) + +| 视角 | 核心判据 | 数据槽位 | 可算程度 | +|---|---|---|---| +| **薛云奎四维分析法** | 经营(收入增长与结构、毛利率、周转)、管理(费用控制、应收与存货相对收入的增速、资产质量:商誉与减值)、财务(杠杆、现金流结构、利息覆盖)、业绩(回报率、利润含金量=经营现金流对净利润、应计比率、分红);四维各一档评价并指出收入与利润的含金量 | 六张表全用;主营构成表给结构 | 全可算 | +| **彭曼重构报表分析** | 净经营资产回报率的分解(利润率×周转率)、财务杠杆效应(利差×杠杆)、经营与融资活动分离、剩余收益 | fin_reformulated 本身就是这套口径(NOA、RNOA、PM、ATO、FLEV、SPREAD、NBC) | 全可算 | +| **杜邦分解** | 净资产收益率=净利率×周转×权益乘数,十年拆解看回报靠什么 | gp_fina_indicator、fin_reformulated | 全可算 | +| **皮奥特罗斯基 F 分数** | 九项二值判据:盈利四项、杠杆流动性三项、效率两项 | gp_fina_indicator、fin_reformulated | 九项全可算 | +| **盈余质量三分** | 斯隆应计(应计比率)、贝尼什 M(可算子项)、奥特曼 Z(缺原表时的近似式) | fin_quality、fin_reformulated;缺三张原表的子项写"缺" | 部分可算,缺项标注 | + +### 3.2 价值与安全边际(数字为主,第一批) + +| 视角 | 核心判据 | 数据槽位 | 可算程度 | +|---|---|---|---| +| **格雷厄姆** | 防御型七条:规模、流动比率、长期债务、十年盈利稳定、二十年分红、十年每股收益增长、市盈率与市净率乘积;安全边际 | 财务指标表、分红表(1999 起)、行情表 | 六条可算,长期债务一条用杠杆近似 | +| **巴菲特与芒格** | 护城河四类(无形资产、转换成本、网络效应、成本优势,用回报率持续性与毛利率稳定性做量化旁证)、十年高回报且低杠杆、自由现金流转化、资本配置(分红、回购、并购的钱去了哪)、管理层诚信(年报文本,第二批) | 六张表、基座事件层(回购、增减持)、年报管理层讨论 | 数字部分可算,文本部分第二批 | +| **格林布拉特神奇公式** | 资本回报率与盈利收益率两项排名 | roic、经营利润、企业价值(市值加净金融负债) | 可算 | +| **特里·史密斯(好公司三问)** | 高资本回报、高毛利、现金转化好、低杠杆、能把利润再投出去 | fin_reformulated、fin_quality | 可算 | +| **冯柳的弱者体系** | 逆向(价格位置低、覆盖少)、赔率(安全边际三情景,复用选股系统现成口径)、可证伪的负面(质量红旗) | 行情、研报明细表、fin_quality 红旗、sources.scenarios | 可算 | + +### 3.3 成长与商业模式(数字加文本,第二批) + +| 视角 | 核心判据 | 数据槽位 | 可算程度 | +|---|---|---|---| +| **彼得·林奇** | 六类公司归类(缓慢、稳健、快速、周期、困境反转、隐蔽资产)、市盈率相对增长率、存货与应收对收入增速、冷门度 | 成长表、质量表、研报覆盖度 | 归类与 PEG 可算 | +| **费雪十五问** | 增长空间、研发、销售组织、利润率趋势、劳资关系、管理层深度与诚信、会计成本控制、行业特有优势、长期视角、股权稀释、坦诚、正直 | 年报管理层讨论与核心竞争力、研报论断;数字只有利润率与稀释 | 以文本为主 | +| **段永平** | 商业模式(主营结构稳定性、毛利率、现金流)、企业文化(年报文本)、合理价格(自由现金流收益率) | 主营构成、重构表、年报文本 | 一半可算 | +| **波特五力** | 供应商与客户集中度(图谱供应关系带占比)、竞争者数量(环节成员数)、替代与新进入者(研报论断) | 基座图谱 company_facts、环节投影、论断 | 集中度可算,其余文本 | + +### 3.4 预期与估值(对着市场看,第二三批) + +| 视角 | 核心判据 | 数据槽位 | 可算程度 | +|---|---|---|---| +| **莫布森预期投资** | 现价隐含的增长与回报预期,与历史回报率和一致预期对照,得"预期差" | 一致预期、现价、重构表回报率 | 近似可算 | +| **达摩达兰叙事估值** | 故事到数字:三情景现金流估值,每个假设指向一条材料 | 自由现金流、成长表、一致预期 | 可算但是近似 | +| **邱国鹭三要素** | 品质(行业格局、竞争优势的持续性)、估值(对历史与同环节)、时机(不在本报告,归择时决策系统) | 环节投影、回报率持续性、估值分位 | 品质与估值可算 | +| **霍华德·马克斯** | 周期位置与风险:行业景气(环节评析)、估值分位、杠杆 | 环节评析、估值分位、重构表 | 第三批 | + +### 3.5 买方论点合议(第三批,把上面合成一份) + +买方研报的骨架不是数据,是结构:论点、预期差、反方论点(芒格的"反过来想")、关键假设与下一期财报要验证什么、失效条件、"我无法判断"清单。合议段按论点卡七字段输出(论点、证据、催化剂与时间窗、预期、失效条件、置信度、版本),将来接进候选卡时不用再改形状。 + +--- + +## 四、报告长什么样 + +每家公司一份 Markdown,按最新财报期命名,六段。 + +1. **头部。** 公司、所在环节、数据期数(十年几期)、材料清单(年报几份、研报几篇、论断几条)、生成时间、模型档位、视角版本。 +2. **十年画像。** 代码算的表:收入、利润、经营现金流、自由现金流十年;回报率分解;现金含金量;应计;红旗;分红与回购。 +3. **逐视角判据表。** 每个视角一节:判据表(项、读数、阈值、判定)、一句结论、三个追问;有叙述段的视角加一段两百字以内的本地模型叙述,每句话对应表里的数字或材料编号。 +4. **市场预期一侧。** 一致预期、隐含市盈率、安全边际三情景(复用选股系统现成口径)、预期差。 +5. **买方论点合议**(第三批之前这一段只放代码汇总,不调模型)。 +6. **无法判断清单与材料需求单。** 每个视角算不了的项、缺的材料,自动开需求单。 + +--- + +## 五、落在哪一层、怎么跑 + +**落数据基座。** 理由三条:模型路由的本地档位在这里;年报正文、研报论断、图谱关系、事件层、材料需求单机制都在这里;框架驱动机制(槽位 YAML 加装配器加空槽开单)就是为这类分析准备的,只差"结论槽位"的执行器。选股系统与 PMS 这一轮不动。 + +**目标集合。** 候选单(当天主榜与观察档)加 PMS 持仓加股票池,约一两百家。选股系统在早上构建链里加一步,把三路名单写进一张目标表;基座任务读表选目标。持仓与池的接入不在第一批,先用基座自己的池加候选单。 + +**节奏与费用。** 指标每天算不花钱。叙述只在三种时候调模型:第一次生成、新财报期到了、材料集合变了(指纹)。每晚上限二十家,按候选单名次优先,一两百家十天铺完,之后每晚只补增量。每家每晚模型调用不超过八次,输出总额有上限,截断不重试。 + +**时间。** 每晚 23:30 起跑,避开 06:10 到 07:10 的盘前链与 21:30 的行业催化。 + +**落地位置。** 报告文件进对象存储 stockinfo 桶的 reports/company_review/{代码}/{财报期}.md,同时一张索引表记每次运行(代码、财报期、视角版本、指纹、材料数、模型、用量、报告路径),接口按代码取最新报告。 + +--- + +## 六、分批与判收 + +**第一批(纯代码加两三个视角加报告骨架)。** 数据层六张表十年取数与对齐;十年画像;薛云奎四维、彭曼分解、杜邦、F 分数、盈余质量三分、格雷厄姆、巴菲特数字部分、神奇公式、特里·史密斯、弱者体系;报告一到四段与第六段;索引表与接口;每晚任务。叙述段只给薛云奎与巴菲特两个视角。 +怎么验:合成十年数据的离线单测覆盖每个指标公式与判据边界;端到端试跑只用当天候选单里的公司(09-09 拍板:不用茅台这类基准股),抽收入、净利润、经营现金流三个数与年报原文核对(基座里没有这家年报就对巨潮公开年报);十份报告人读,记"读了有没有用"。 + +**第二批(要年报文本的定性视角)。** 年报管理层讨论、核心竞争力、风险因素三类章节进定向喂入(分段器加一个类别);费雪、段永平、林奇归类、波特五力、巴菲特文本部分;叙述段扩到全部视角。 +怎么验:定性判据每条都能指回年报段落编号;十份报告对照券商深度报告的观点,记分歧。 + +**第三批(预期与合议)。** 莫布森预期差、达摩达兰三情景、邱国鹭、马克斯;买方论点合议段(本地模型,云端可选开关默认关);合议输出论点卡七字段。 +怎么验:合议段的每条论点都引用视角编号;反方论点与"无法判断"清单非空的比例;与一致预期的预期差分布。 + +**判收。** 三条都成立才算完成:一,目标集合里的公司都有报告且报告日不落后最新财报期一个月;二,十份人读报告里至少七份被认为"比现有材料多说了东西";三,每份报告的"无法判断"清单都对应了需求单。要不要接进候选卡,判收后另开拍板。 + +--- + +## 七、明确不做 + +不进判决、不进逻辑状态、不进 PMS、不进复盘分组。不做回测、不做因子。不用云端模型跑逐视角叙述。不做港股美股公司(数据表只有 A 股)。不替代券商深度研报的采集,两条路并行。 + +--- + +## 八、风险 + +一,三张原始报表可能不在库里:奥特曼 Z、贝尼什 M 只能算子项,报告里标"缺",不用近似冒充。二,本地模型叙述质量:先看十份,不行就换档位或缩短叙述。三,财务口径:累计与单季、重述、单位,数据层统一处理并在报告头部注明。四,报告太长没人读:每视角一页以内,总长度有上限。五,与"基座不算估值"原则的冲突:本方案第一节已明写改法,批准即记台账。 + +--- + +## 附录甲 · 实现骨架(可不读) + +**新建位置与文件(数据基座仓库,全部新增)。** +- `backend/app/analysis/company_review/` 包: + - `data.py` 数据层:六张财务表加每日基础指标表(gp_day_basic:symbol 前缀式、timestamp、close、pe_ttm、pb、total_mv、total_share、dv_ttm)的取数与归一。每表单独一条 SELECT(153 代理禁联查),用 market_snapshot 的 `_proxy_conn`、`_num`、`_td`、`_code_variants`。代码统一成点后缀式;报告期统一成 `period`(YYYY-MM-DD 的期末日);`notice_date`/`ann_date` 保留作"当时可知"的时点键;年度与单季两套口径分开存,TTM 由四个单季相加;缺期用空值不插补;重述以最新一版为准并记 `data_source`/`validation_status`。 + - `metrics.py` 指标层:纯函数,输入十年数据框,输出指标表。杜邦、彭曼分解、现金含金量、应计、F 分数九项、Z 与 M 的可算子项、格雷厄姆七条、神奇公式两项、特里·史密斯五项、林奇归类与 PEG、集中度(图谱供应关系占比)、预期差(一致预期对回报率)。每项带 `available` 与 `missing_reason`。 + - `lenses/` 视角层:每个视角一个模块(`xue_siwei.py`、`penman.py`、`dupont.py`、`piotroski.py`、`earnings_quality.py`、`graham.py`、`buffett.py`、`greenblatt.py`、`terry_smith.py`、`fengliu.py`;第二批 `lynch.py`、`fisher.py`、`duan.py`、`porter.py`;第三批 `mauboussin.py`、`damodaran.py`、`qiu.py`、`marks.py`)。统一接口 `evaluate(metrics, materials) -> {criteria: [...], verdict, questions: [3], narrative_inputs}`,视角版本号写在模块常量里。 + - `materials.py` 材料层:年报章节(对象存储正文经 sectionizer 定向,第二批加 `financial_statements` 与 `risk_factors` 两个类别到 PROFILES 的新副本,不改原表)、研报论断(`claim_store.drives_claims_with_docs()` 按受益方过滤)、事件(`event_claims_for`)、图谱关系(`graph_store.company_facts`)、一致预期(`consensus_daily` 与 `gp_report_rc`)。全部编号化(沿用 `_refs_to_claim_ids` 的编号表写法)。 + - `narrative.py` 叙述层:本地档位调用。提示词纪律:只按给定判据表与编号材料写、不得出现表里没有的数字、JSON 输出、截断不重试(复用 review_segment 那份 `_brain_json` 的三条纪律,提成公共函数放本包内)。每视角一次调用,每家公司最多八次,单家输出总额上限 4 万 token。 + - `synthesis.py` 合议层(第三批):买方论点七字段,本地档位;云端档位由开关 `COMPANY_REVIEW_SYNTHESIS_CLOUD` 控制,默认关。 + - `report.py` 报告层:渲染六段 Markdown;每视角一页以内;表格用等宽数字。 + - `store.py` 存储层:Postgres 表 `company_review_runs`(ts_code、period、lens_version、fingerprint、n_materials、model、tokens、report_key、ran_at)与 `company_review_metrics`(ts_code、period、metric、value、available、reason),报告文件写对象存储 `reports/company_review/{ts_code}/{period}.md`。 +- `config/frameworks/company_review/*.yaml`:每个视角一份槽位声明(数据槽位、材料槽位、空槽开的需求单类型),沿用 `framer.py` 的 schema,新建一个 `company_review_framer.py` 装配器读它们,不改 `framer.py`。 +- `backend/workers/tasks.py` 加两个任务:`akg.company_review(ts_code)`(单家:取数、算指标、跑视角、可选叙述、渲染、落库)与 `akg.company_review_batch(max_n=20)`(目标集合、优先级、指纹跳过、投递);路由到 review 队列;beat 23:30 周一到周六;`/admin/company_review_batch` 触发入口与 `GET /company/{ts_code}/review` 取最新报告;日检 3b 段加一行"个股深度评析:近 30 天 N 份、落后最新财报期的 M 家"。 +- `backend/scripts/company_review_run.py` 手工入口:`--code 600519.SH --no-narrative` 可离线只算指标。 + +**目标集合(第一批)。** 基座池内公司加选股系统当天候选单(读 155 的实时计划接口 `GET /plan?top=80&obs_top=20`,失败就只用池)。第二批由选股系统在早上构建链加一步写目标表 `t_akg_review_targets`(plan_date、ts_code、source、rank),基座改读表。 + +**指纹与跳过。** 指纹 = 最新财报期 + 材料编号集合 + 各视角版本号的哈希。指纹相同跳过;只换财报期而材料不变,只重算指标与代码段、不重跑叙述。 + +**测试。** `backend/tests/test_company_review_metrics.py`:合成十年数据,逐项验公式与阈值边界(F 分数九项各造正反例、格雷厄姆七条、杜邦恒等式、TTM 相加、缺期不插补)。`test_company_review_report.py`:渲染不崩、缺项显示"缺"。端到端:一家真实公司 `--no-narrative` 先跑,抽收入、净利润、经营现金流三个数与年报原文核对;再开叙述跑一次,读报告。 + +**验证命令(178,容器内)。** +```bash +docker compose exec -T -e PYTHONPATH=/app backend python /app/scripts/company_review_run.py --code <当天候选单里一只票的代码,点后缀式> --no-narrative +``` +预期:打印十年画像表与各视角判据表,报告路径一行;索引表多一行。候选代码从 155 的实时计划接口取当天主榜第一只。 + +## 附录乙 · 数据可得性核对(可不读) + +- 153 库六张表 09-09 只读核过:gp_fina_indicator 2018-03 起 15.9 万行 5,204 只;fin_reformulated 2015-09 起 19.5 万行 5,190 只(多数票 44 期);fin_growth 2015-09 起 3,853 只;fin_quality 2015-09 起 4,799 只;gp_fina_mainbz 2014 起 240 万行;gp_dividend 1999 起 6,154 只。 +- 代码列格式(09-09 探针改正):六张财务表与研报明细表都用点后缀式 600000.SH,只有每日基础指标表 gp_day_basic 与行情表用前缀式 SH600000;日期列格式两种:gp_ 表 YYYYMMDD 整数、fin_ 表日期。数据层统一。 +- 153 走 ShardingSphere 代理:单表查询、禁多表联查、禁跨节点合并;每表单独取,内存里按财报期对齐。 +- 估值输入:gp_day_basic(symbol 前缀式、timestamp 日期,close、pe、pe_ttm、pb、ps、dv_ttm、total_share、total_mv、circ_mv;2014-11 起 1,116 万行 5,677 只,每日)。历史市盈率分位、市净率、企业价值都从它算,不用月分表的因子表。 +- 一致预期:gp_report_rc(2006 起)与基座派生 consensus_daily;选股系统 sources.scenarios 的三情景口径直接复用。 +- 年报:基座 documents 表 140 份,正文在对象存储;分段器现有七类章节不含财务报告与风险因素,第二批加。 +- 研报论断:claims 表 DRIVES 谓词带方向与机制;公司事实关系 SUPPLIES_TO 带占比,可算客户与供应商集中度。 + + +## 附录丙 · 架构设计补充要点(09-09 设计评审吸收,可不读) + +- 框架加载器只扫顶层 YAML,子目录不会污染现有框架清单,但也不能靠它装配;本应用自带一个同形的槽位加载器。 +- 容器只挂载 backend/app、backend/workers、backend/scripts(只读)与 config(只读),本地 data 目录没有挂进任何容器,报告只能落对象存储;外部代码清单放 config/company_review/targets.txt 三个工作容器都读得到。 +- 年报正文经解析缓存取(parsed/{解析器版本}/{对象键}.txt),不再解析 PDF。 +- 本地档位取法:registry.client("worker_large") 是池化客户端,盘后首选 188、满了落本地判定档;云端只在合议一步、且开关打开时用。 +- 叙述按组调用而不是一视角一调:财务体检、价值判据、质量与风险、定性视角(年报文本)、预期与叙事、合议,共六组,每家不超过十次调用、输出总额上限六万。 +- 数字回查是代码强制:叙述里的数字逐个匹配允许集合(指标值的各种形态),未命中的段落标"含未核数字",全家未核比例超三成记为半成品。 +- 估值边界的拍板措辞:基座做"描述性估值"(复述市场已给的价格、倍数、一致预期,并与公司历史和可持续增速作差),不做"规范性估值"(不产出内在价值、目标价、买卖建议、自设折现率或终值假设);带价格的判据只输出通过与否;达摩达兰视角只做"叙事对应必须成立的数字"对照表。 +- 累计与单季口径、单位由探针一次定死写成常量并用单测钉住,换数据源先让测试红。 +- 定时改为 00:45(择时决策系统 22:30 起的夜扫占用 188 的模型到零点后),截止 05:30 不再开新家。 +- 目标集合第一版只认基座池加外部清单文件,候选单与持仓的接入后续再加。 + +## 附录丁 · 09-09 探针读数(可不读) + +- fin_reformulated:report_type 取值 Q1、Q2、Q3、YEAR;validation_status 取值 PASS 6.5 万、FLAG 9.7 万、FAIL 3.3 万;data_source 单一来源 eastmoney_v2。 +- gp_fina_indicator:比率是百分数(茅台 2025 年报 roe 34.46、grossprofit_margin 91.18);q_roe 是单季;fcff 是元;eps、bps 是元。 +- gp_fina_mainbz:bz_sales、bz_profit 是元;bz_type 有 D(地区)与 P(产品);同一期存在同值别名行("中国大陆"与"国内"),要按 bz_type 去重。 +- gp_dividend:cash_div 是每股元,div_proc 有预案、股东大会通过、实施三个阶段,以实施为准。 +- gp_day_basic:total_mv 单位万元(茅台 1.636e8 万元 ≈ 1.64 万亿元)。 +- 09-09 落地后追加:主营构成表每类分类有一行名字就是"产品""地区""行业"的表头,金额即营业收入合计(宁德时代 2025 年 4,237 亿);重构报表 fin_reformulated 的经营现金流只有真实值的四成上下,现金流改取财务指标表口径;财务指标表比率是百分数、唯独经营现金流对收入是小数;成长表与质量表与原始金额对不上,只作参考。 +- 第一批上线读数见台账 052。 diff --git a/docs/交接_2026-09-08.md b/docs/交接_2026-09-08.md index f632af6..7e76a8d 100644 --- a/docs/交接_2026-09-08.md +++ b/docs/交接_2026-09-08.md @@ -1,7 +1,7 @@ # 交接 · 2026-09-08 收盘(当前进度总汇) > 这份接在《交接_2026-09-07.md》后面,只写 09-08 之后变了什么和现在该看什么;09-07 及以前的事、踩过的坑、红线、验证命令都在那一份里,不重复。 -> 两份方案:《下一阶段工作方案_2026-09-07.md》(主线,第零到第六件)、《量价研判链吸收方案_2026-09-08.md》(09-08 批准并当天上线的独立功能)。逐条决定在《复盘决定台账.md》,到第 051 条。 +> 两份方案:《下一阶段工作方案_2026-09-07.md》(主线,第零到第六件)、《量价研判链吸收方案_2026-09-08.md》(09-08 批准并当天上线的独立功能)。逐条决定在《复盘决定台账.md》,到第 052 条。三份方案:再加《个股深度评析方案_2026-09-09.md》(09-09 批准,第一批当天上线)。 ## 零、一句话现状 @@ -23,11 +23,12 @@ 3. 量价研判链(台账 045 到 048):方案、选股系统三件、择时决策系统六件、PMS 两件、启用、整链核对。判定为开发完成、进入观察期,最早 09-15 判收。 4. 第五件的三件代码活(台账 049)与财联社电报接入(台账 050):电报只当"相关快讯"上下文,候选卡与实时计划多 news/news_text 两键,PMS 透传进提议卡并送研判;不进判决、不进定价状态。 5. 行业级催化槽位与投递容错(台账 051):数据基座 segment_catalysts 表与 21:30 标注任务,选股系统卡上"行业催化"行与复盘分组,PMS 提议卡一行不送研判;投递不再有命名要求。材料没到时全链显示"暂无"。 +6. 09-09:个股深度评析第一批(台账 052):数据基座新包 backend/app/analysis/company_review,十年财务表算判据、十个大师视角、只出人看的报告,每晚 00:45 候选加池上限二十家;接口 GET /company/{代码}/review 取报告;定调"描述性估值不做规范性估值"已记台账。 ## 三、明早与本周要看的 - 09-09 早上:昨晚全量夜扫里 pv_heads 的出现比例与第一次解析失败的比例(超过一成就缩两个头的依据长度);逐票逻辑状态表 09-08 那一天的行数;计划文件候选单的催化事件与定价状态两列。 -- 09-09 起每天:提议卡六行(安全边际、催化事件、定价状态、相关快讯、行业催化、两个头)是否有值,研判理由有没有引用相关快讯;21:30 行业催化任务每晚标出几条(日检 3b 段有一行);电报表是否持续入库(台账 050 的三条数据侧要求);新建仓研判里"不可用"是否出现、驳回行的把握度分布。09-08 早上 19 条全驳回且都在开盘头十分钟研判,先看量价研判链接进盘中研判后的变化,再议阈值与研判时点。 +- 09-09 起每天:提议卡六行(安全边际、催化事件、定价状态、相关快讯、行业催化、两个头)是否有值,研判理由有没有引用相关快讯;21:30 行业催化任务每晚标出几条、00:45 个股深度评析每晚出几份(日检 3b 段各有一行);读报告的人记"读了有没有用",攒到十份判收;电报表是否持续入库(台账 050 的三条数据侧要求);新建仓研判里"不可用"是否出现、驳回行的把握度分布。09-08 早上 19 条全驳回且都在开盘头十分钟研判,先看量价研判链接进盘中研判后的变化,再议阈值与研判时点。 - 09-11(周五):跑复盘周报,看"定价状态""催化事件"两类分组、多空差一段、择时决策系统那一行下面的两个头。 - 09-15:量价研判链判收(方案第七节四条)。 diff --git a/docs/复盘决定台账.md b/docs/复盘决定台账.md index f8f7ea3..6edd519 100644 --- a/docs/复盘决定台账.md +++ b/docs/复盘决定台账.md @@ -483,3 +483,11 @@ - **09-08 试跑读数。** 最近一次扫描指向 25 个环节,13 个够料(近 180 天逻辑论断三条以上)。电网设备 26 条材料标出 0 条(模型按纪律判没有行业级事件),重跑指纹跳过;芯片设计 15 条材料标出 2 条(05-21 英特尔与英伟达 NVLink 互联,中·中期·利好;06-18 英伟达 NVQLink,小·长期·利好,把握都是中);动力电池 20 条标出 0 条。选股系统实时计划 71 只候选里 5 只所在环节含芯片设计,卡上"行业催化"行有值;PMS 解析到同样 5 只。数据基座评析工作容器、定时器、接口容器 15:40 经同意重启,任务注册、日程与触发入口都核过;选股系统接口容器第五次重启;PMS 镜像 15:22 重建(683 例)。材料没到的票显示"暂无",全链不断产。 - **投递不再有命名要求。** 目录名认别名与中文(研报、公告、年报、新闻、互动),根目录裸投按文件名关键词推断,默认研报;公司锚认 600519.SH、SH600519、裸六位数(按首位推交易所,标为猜测,画像从文内推断出不同公司时以画像为准);披露日文件名没有就用上传日兜底,再由画像从文内精修。原来投错目录被跳过的文件,现在会被登记。 - **要人做的。** 券商点评与深度照常投研报目录;财联社采集端存全文与持续入库;观察期看三处:21:30 任务每晚标出几条、卡上"行业催化"行有没有值、复盘分组两边的读数。不按读数回调阈值。 + +## 052 · 2026-09-09 · 个股深度评析第一批上线:十年财务表由代码算判据,十个大师视角出结论,只出人看的报告 + +- **定调变化。** 产业热点图谱设计里定过"不补深度、不算估值"。从今天起改为:数据基座做"描述性估值"(复述市场已给的价格、倍数、一致预期,并与公司历史作差),不做"规范性估值"(不产出内在价值、目标价、买卖建议);大师视角里带价格的判据只输出通过与否;结论标为"该视角的结论",不是系统判决。报告只给人看,不进候选卡、判决、逻辑状态、PMS、复盘分组,看过十份再议接不接。 +- **第一批做了什么。** 数据层读 153 库六张财务表加每日基础指标表加研报明细表(单表查询,代码与日期形态各归各);口径层把年初至今累计转单季、四季相加得最近四季,同期多版取披露日最新并记重述,只留披露日不晚于截至日的行;指标层出十年序列与八十来个指标;十个视角(薛云奎四维、彭曼重构、杜邦、皮奥特罗斯基 F、盈余质量三分、格雷厄姆、巴菲特与芒格数字部分、格林布拉特、特里·史密斯、冯柳弱者体系)各出判据表、一句结论、三个追问;报告六段落对象存储,索引表记每次运行;缺年报基底自动登记材料需求单;每晚 00:45 对候选加池上限二十家,指纹(最新期加视角版本)不变不重跑;三个接口与日检一行。全部并行新增。 +- **数据口径的三处发现(写进数据层常量与报告头部)。** 一,主营构成表每类分类都有一行名字就叫"产品""地区""行业"的表头,它的金额就是营业收入合计,分项里有同值别名要去重。二,重构报表的经营现金流只有真实经营现金流的四成上下(宁德时代 2025 年 525.6 亿对 1,332 亿),口径不明;现金流改取财务指标表口径(经营现金流对收入 × 收入,企业自由现金流列),重构表现金流标为供应商口径仅参考。三,财务指标表比率是百分数,唯独经营现金流对收入是小数;成长表与质量表两张派生表与原始金额对不上(茅台收入同比恒为零),只作参考列。 +- **试跑读数(当天候选第一只宁德时代)。** 2025 年收入 4,237.02 亿元,与公开年报一致;净资产收益率 24.7%、投入资本回报率 15.6%、经营现金流对净利润 1.49 倍、每股分红 7.96 元、总市值 15,522 亿元、滚动市盈率 18.3 倍;85 条判据算不了 9 条(应收存货增速、贝尼什四项、奥特曼两项、护城河类型与管理层两项)。十个视角六个"好"、三个"中"、格雷厄姆"差"(市盈率乘市净率超 22.5、分红年数不足二十年)。一次运行 0.1 秒。 +- **判收(方案第六节)。** 三条都要:目标集合都有报告且不落后最新财报期一个月;十份人读至少七份"比现有材料多说了东西";每份"无法判断"清单都对应需求单。第一批只完成代码与一家试跑,判收要等报告攒到十份、人读过。