diff --git a/docs/主观量化系统方案_2026-09-03.md b/docs/主观量化系统方案_2026-09-03.md index c225661..5a95adc 100644 --- a/docs/主观量化系统方案_2026-09-03.md +++ b/docs/主观量化系统方案_2026-09-03.md @@ -255,6 +255,56 @@ PMS 解析多取五键后两条现有断言要同步改,回退是回滚一个 **上线后核对**:PMS 全套测试 626 例通过;探针的分流开关为真且打印判决分布;选股系统健康接口带池深;计划环境段四项有值;账本里人工裁决理由不再是默认文案;择时决策系统的持仓股吸筹带计算时刻;区制历史表每日一行。 +## 四之三、2026-09-03 上线后的实证核实(为下一轮工作留底) + +用户当日提出主观选股基金经理的真实工作流:先自上而下建立行业认知,再自下而上找个股机会;行业与个股都确认后容忍短期波动,前提是建仓安全垫足够厚;然后是交易层面的工作(网格、定投、跌破补仓);达到盈利预期后按某种策略退出;逻辑不证伪则不退出。围绕这条流程逐层核实的结果如下,全部是只读读数。 + +**行业认知这一层,有能力但没接上,且停更。** 数据基座的产业研判记录在评析表里,质量足够作为行业观点:多空分列、每条论点带原文编号可追回。例如钨产业链判为偏多,多头是钨价上涨推升业绩与人工智能电路板微钻需求,空头是采矿权到期与环保处罚,依据 35 条材料。但是:只有 8 个主题(钨产业链、消费类锂电池、商业航天、人工智能数据中心制冷、通信、印制电路板、人形机器人、光通信),最新一条停在 08-19;生成方式是人工在主题页点按钮,不是自动;覆盖面是 8 个主题对投影表里的 1,906 个环节;而且完全不进选股链路。今天恩捷股份所在的固态电解质环节没有任何研判,那笔决策是在"没有行业观点"的情况下做的。 + +**持仓不绑定入场理由。** 持仓表 28 个字段全是交易层面的(数量、成本、安全垫、支撑压力参考、止损参考、分批计数),没有入场理由、行业逻辑、候选卡判决、目标价。所以持仓期间无法回答"当初为什么买它、这个理由还成立吗"。 + +**安全边际缺失(用户 09-03 纠正了我的表述)。** 我起初把 PMS 里那个恰好也叫"垫"的字段当成了概念本身,那是错的。PMS 的 cushion_pct 定义是现价除以平均成本减一,即建仓后的浮盈;而用户说的是价值投资的经典安全边际,即买入价相对内在价值的折扣,回答"最坏情况下当前价格还有多少下跌空间",是事前概念。系统里没有这个东西。 + +**但是算它需要的数据全都有,而且是活的。** 平台行情库的券商研报明细表近 90 天有 35,779 行、覆盖 2,358 只票、最新到 09-02。字段覆盖率:每股收益预测 98.4%、市盈率预测 91.4%,而目标价只有 26.6%(最低价)与 14.6%(最高价)。所以安全边际应当基于盈利预测算,不要基于目标价——这顺带解决了现在预期空间的噪音问题(现口径是 90 天全部研报目标价简单平均、不去重不加权,覆盖率不到三成,出现过 +181% 的读数)。另有一处字段陷阱要记住:该表的 tp 列是利润总额(万元)不是目标价,数据基座的代码注释里记过这一条,首跑曾误用。估值分位表(gp_pe_valuation_factor、gp_pb_valuation_factor)存在但停更在 2026-03-18,不可用。 + +**用恩捷股份实算一遍(09-02 收盘价 50.17 元)。** 近 90 天九家机构对 2026 年度的预测:每股收益从 2.08 到 2.68,市盈率从 20.5 到 31.7 倍。三情景估值——悲观(最低每股收益乘最低市盈率)42.64 元,下行 15.0%;中性(两项均取中位数)56.75 元,上行 13.1%;乐观(两项均取最高)84.96 元,上行 69.3%。当前隐含市盈率 21.4 倍。**赔率是上行 13.1% 对下行 15.0%,即 0.87 比 1,不到一比一。** 对照两个现有读数:择时决策系统给的支撑位 49.5 元距现价只有 1.3%,那是技术位不是估值底;选股系统现在给的预期空间是 +78%,来自目标价简单平均。也就是说系统当前呈现给人的是一个单边乐观的数字,而按盈利预测算,这个位置的赔率并不吸引人。这就是缺失安全边际的实际代价。 + +**策略挂载不看研究理由。** 网格与跟踪止盈的自动挂载依据是热度阈值与吸筹状态,不是"这只票我看好的理由是什么"。 + +**逻辑证伪只有技术层。** 择时决策系统的关注条件共 32,329 条,类型全是跌破、突破、时间止损、放量、回踩。它的备注里也用"证伪"一词,但证伪的是技术逻辑(跌破前压力转支撑则突破逻辑证伪、三日内无法收复则动能证伪),不是研究逻辑(海外订单增长的假设是否还成立)。退出的五条路里没有一条是研究层的逻辑证伪。 + +**盈利预期没有落点。** 券商预期空间只参与选股门槛,不参与建仓规模与退出判断,也没有"我的目标价"这个字段。 + +## 四之四、按主观选股工作流重新对照的缺口清单(2026-09-03,三路核实加对抗验证) + +用户提出的六步流程(自上而下建行业认知、自下而上找个股、双确认后容忍波动且看安全边际、交易层动作、达到预期退出、逻辑不证伪不退出)经三路独立核实确认成立,与四层定位相容,代码里找不到与它冲突的设计意图,找到的是落差。三处表述要校准:安全边际是建仓时的估值折扣而非浮盈;第四步的"网格"系统里没有,实际是回踩补足、盈利加仓、跌破补仓、保垫减仓四类;"容忍短期波动"必须有事前写死的边界,否则与死扛无法区分。 + +**对"已启动"门槛的判断(修正用户与我先前的说法)**:定位对了一半。它确实是时点问题不是机会认定问题,归入改进环节正确。但它不是在增加左侧等待——它本身就是一个右侧门槛,消除左侧等待的办法就是只在右侧买。真正的机会成本不在等待本身,而在等待没有被任何一层记住:候选卡是当日无状态重算的纯函数,名册快照里没有判决字段,系统连一只票等过几天都查不到。更要紧的是,保留或拿掉它都不改变"研究结论从未进入判决"这个事实——三条门槛全是可交易口径,09-03 建成的研判结论视图在选股系统里没有任何一个 Python 文件读它。所以它应当排在下面前三条之后再动,先动等于把票放进一条还接不住它的流水线。 + +**按关键程度排序的缺口(对抗验证确认,共十三条,此处列前六条与三条风险项)** + +一,**失效条件与关键假设在四层里没有任何字段承载**。这是第三到第六步共同的空:没有失效条件,容忍波动没有边界、跌破补仓没有前置判据、达到预期退出没有对照面、逻辑不证伪不退出没有判据,四步一起退化成"不卖"。而且不可回退——错过的证伪信息事后补不回来,账本里也没留下当时的失效条件是什么,复盘时判不了一笔亏损是论点错了还是纪律没执行。补法不改抽取层:给两个评析任务的第二轮提示词各加关键假设与证伪条件两项输出,落进现有的 JSON 字段不动表结构,视图末尾追加两列,选股系统候选卡加字段先只展示,PMS 收下并写进账本硬数字。 + +二,**行业观点没有版本史与状态链**。评析表按簇键唯一,重评整行覆盖并把生成时间改成当前,库里永远只有最后一张快照,查不到上一版是什么、什么时候改的,也没有成立、跟踪、修正、证伪这条状态链。第六步在实现上没有可挂靠的对象。同一个仓库里骨架版本表与词表冻结表已有现成范式可照抄。 + +三,**入场论点不随持仓走**。选股系统已经下发了判决依据与带出处的因果论断,PMS 在解析层一行代码就丢掉(白名单只收五个键,判决依据与因果论断不在内);持仓主档全表只有价格与仓位口径;已持仓的票在候选筛选第一步就被整行剔掉,剔在判决检查之前,所以持仓期间判决从候选变成仅展示,系统既不知道也不会动。拿着一只票查不到当初买它的逻辑,一条逻辑真被证伪时也找不出对应哪些持仓。 + +四,**复核节奏两端都不存在**。数据基座的评析任务不在定时表里,刷新只在有人点按钮且材料指纹变过时才发生,时间流逝本身不触发任何事;PMS 侧没有持仓论点的定期复核。就算把证伪条件补上,也没有任何人或程序会定期去用它。 + +五,**研判结论没有下游消费者,产业侧在候选卡上没有独立的一票**。系统把日频的传导截面当成了行业认知,那回答的是"今天什么在动",属于第二步。补前要先解决簇键口径:产业研判按股票池主题聚簇,候选卡按环节,两者不在一个命名空间且无对照表,直接接会大面积为空。 + +六,**因果论断永不过期,与同一张卡上吸筹评分的日龄闸形成双标**。论断取数只有"披露日不晚于数据日"这一个上界,没有日龄也没有回看窗口。恩捷那两条来自 6 月 23 日会原样打印成理由,而技术侧的吸筹评分超过三十个交易日就判陈旧。同一张卡上技术侧证据会过期、研究侧不会,这个不对称本身说明第六步没被设计进来。 + +**三条风险项(与流程无关但已核实,需要单独处置)** + +七,**设定目标价与设定止损价是界面上可点、点了会成功、状态会变、实际不生效的命令**。个股参数字典里实际被读的只有黑名单一个键,目标价与止损价被解析、被存、页面能看到,没有任何一处代码读它们做决策。这是静默失败,与 PMS 自己文档里列的"静默失败专项"同类。 + +八,**集中度只按行业限仓,没有环节维度**。这套流程按环节选票,风控按行业限仓,一个环节的十只成员可能分落在几个三级行业里,于是同一条逻辑的十只票能全部通过集中度硬拦截,实际上它们是一笔注。数据是现成的,不需要上游配合。 + +九,**三套市场环境判断并存,真正在动仓位的那一套不在四层定位里**。设计目标写的是环境只展示不拦票,实现里 PMS 自己的宏观择时每天在下升降仓命令。这是逻辑、实现、设计目标三者不一致的直接例子,正好命中判收标准,先做定性归位不动代码。 + +**建议顺序**:一、二、三、四为一组先做(证伪条件、观点版本史、论点随持仓走、复核节奏),第七条静默失败随手止血;然后是五、六;"已启动"的重新定位排在这之后。 + ## 五、验证(命令标机器) 选股系统(155,factor,~/project/akg-factor-bridge):入池干跑的计划入选数与改前一致;复盘脚本名单表含机器通过、人批、人拒、择时看多四行;健康接口含 pool_top;快照目录每交易日一个 JSON;候选卡每票理由能看到因果论断出处;计划环境段含两市成交额、广度、融资、恐贪四项。