akg-factor-bridge/docs/下一阶段工作方案_2026-09-07.md

140 lines
18 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

> 本文件是《主观量化系统方案_2026-09-03.md》第七节的独立副本09-07 经用户批准。
> 阶段总结在《交接_2026-09-07.md》逐条决定在《复盘决定台账.md》。
# 下一阶段工作方案2026-09-07 批准)
> 这一节是给下一阶段用的。前面六节和附录是 09-03 那一轮的,不改。
> 阶段总结与踩过的坑在《交接_2026-09-07.md》逐条决定在《复盘决定台账.md》到第 34 条)。
### 7.1 最终目标(原文重述,不改一字)
系统要模拟主观选股基金经理的六步工作流:
1. 自上而下建立行业认知。
2. 自下而上找个股机会。
3. 行业与个股都确认后容忍短期波动,前提是建仓时的安全边际够厚。
4. 交易层面的动作(回踩补足、盈利加仓、跌破补仓、保垫减仓)。
5. 达到盈利预期后按某种策略退出。
6. 逻辑不证伪则不退出。
四层定位不变数据基座分析并保存结论选股系统基于已深度分析的数据选股PMS 根据分析结论确定建仓方案;择时决策系统结合形态与信号盘中择时,不判产业逻辑。
人机分工不变:系统裁决为主,人工为辅;系统能识别"我无法判断"时再由人裁决。
判收标准不变:只看系统逻辑、实现、设计目标三者是否高度一致,不看样本数与收益。
### 7.2 六步各走到哪09-07 实测)
| 步骤 | 目标要的东西 | 现在有什么 | 差什么 |
|---|---|---|---|
| 一 行业认知 | 每个被指向的环节有一份多空研判,且会随材料更新 | 环节评析每工作日自动跑20 个环节已落库,指纹不变不重跑 | 材料只有行业研报,二十个全偏多,六成自我校验不过。**缺公司深度研报**,代码解决不了 |
| 二 找个股 | 候选卡给出判决与理由,理由来自研究结论 | 三门槛判决、判决依据、因果论断、论断质量四项提示,全部到了 PMS 页面 | 关闭启动线后候选 33 只,择时层拒了 29。核实后不是"两道门槛重复",而是两件具体的事:选股层把"启动线已关闭"写进理由行,理由行又在送研判的白名单里,择时层被这句旁白牵着走;对新建仓,择时层把"不确定"折成"拒绝",没有交人 |
| 三 双确认与安全边际 | 行业与个股各一票;建仓价相对内在价值的折扣可见 | 四态回答"证据还在不在",已随每张卡产出 | **安全边际没有落点**。券商每股收益预测覆盖 98%,算得出,没接 |
| 四 交易层动作 | 四类动作有边界,与研究理由挂钩 | PMS 四类自主动作、同轮只一条减持、到价必交人 | 策略挂载看的是热度与吸筹,不看研究理由 |
| 五 达到预期退出 | 有"我的目标价",到价出提议 | 用户设的目标价已接通、到价必交人 | 目标价没有来源,只能人手填 |
| 六 不证伪不退出 | 证据走弱 → 停增持、出减持提议交人 | 四态里"逻辑存疑"的判定与收敛规则写好并测过 | **PMS 没有按逻辑状态分流**——状态发过去了,那边没读。这是落地顺序第五步,没做 |
另外三件横向的:持仓不绑定入场论点(四之四第三条,未做);一致性检查表十三行核完五行;"关注"判决交人裁决那条路四段代码齐全、单测逐段钉住、依赖开关 `PMS_PLAN_ROUTE_BY_VERDICT`(默认开),但**从未在真实运行里走过**——它要等第一只被判"关注"的票出现。
### 7.3 这一阶段买什么
一句话:**从"管道通了"走到"系统开始出决策、人开始裁决、裁决被记下来并复盘"。**
上一段把字段从 A 送到了 B。这一段要让 B 拿这些字段做事,并让人看到系统做的事、说同意还是不同意。判收仍是一致性,但一致性要在**有真实提议和真实裁决**的运行里核,不在空跑里核。
有一个前提要先说清。09-07 对上一段代码做的独立审查结论是:**现在的代码不能直接当起点**。它找出 11 条成立的缺陷,其中两条是 PMS 里今天就会出事的资金安全问题,直接违背上一段自己写下的"目标价必交人、系统不自动卖"。所以这一段的第零件是修它们,不修完不开新工作。
### 7.4 做哪几件,按顺序
顺序的道理:材料最慢所以最先启动;缺陷修完才有起点;让择时层能说"我不知道"是一句拍板加两处小改、却决定后面有没有提议可裁;分流与安全边际不在同一个仓库可并行;检查表里有四行会被分流改掉,所以核对放在分流之后;人的裁决从分流上线次日起算两周。
每件先说为最终目标买什么,再说做什么,最后说怎么验。实现细节在附录乙,可不读。
**第零件:修独立审查找出的缺陷。**(插队,先于一切)
买什么:不是六步里的哪一步,是"系统不自动卖"这条承诺本身。
做什么,分三组:
- 甲组PMS 目标价那条路的四个缺陷。一,同一只票到价清仓等人拍板时,下一分钟的保垫减仓会自动卖掉三分之一,随后人采纳的清仓单永远等不到可卖量。二,到价提议挂着时,择时决策系统的高置信止损被"在途检查"整条吞掉,不落单不记账。三,到价当天有买入成交时,清仓按全部持仓报数、被合规检查整条拒掉且当天不再评。四,挂了交易方案的票,目标价命令显示生效、实际永远不触发。
- 乙组基座指纹与重试的同一个根。排序没有第二键导致指纹自己漂09-04 已白烧一次,下次定时至少重评六个;第二三轮失败仍以完整指纹落库、锁到材料变化为止;截断后原样重试是白烧且无总额上限;事件少于十三条的环节一条老化就重评。
- 丙组,四态的输入。甲路只喂了展示用的三条论断,翻转两头都会判错;乙路的硬触发只维持一个计划日,抗抖动函数写了没接;落在法定假日的快照会吞掉硬触发。这三条不修,第三件一接入就是分流错。
怎么验:每条缺陷各加一个回归测试,先红后绿;甲组上线后用不连库的两轮扫描复现脚本证明减持不再自动执行、止损不再被吞。
**第一件:材料。**(立即启动,非代码)
买什么:第一步行业认知与第六步证伪都卡在这里。二十个环节全偏多、六成自我校验不过,根子是只有行业研报。
做什么:运维按方案 2.4 的优先级上传公司深度研报与个股跟踪报告。今天就传,不等任何一件。研报每周一批,是整条链最慢的一环。
怎么验:环节评析的采信倾向出现非"偏多"的值;自我校验通过率上升;甲路"缺失"占比从九成四下降。
**第二件:让择时层独立判时点,并把"不确定"交给人。**(已拍板,见 7.8
买什么:第二步与人机分工第二条。核实后择时层对新建仓做的不是涨幅门槛,是证据对账——驱动仍成立、量价与资金没有背离、昨夜定性不看空才支持,口径是"不确定就拒"。问题两处:选股层把"当日涨幅(启动线已关闭)"写进理由行,理由行又在送研判的白名单里,择时层被这句旁白牵着走;"不确定就拒"把"我不知道"折成了"不该做"。
做什么:一,选股层把"当日涨幅"从理由行挪到信息行,政策说明只留在判决依据(判决依据不送研判)。二,择时层对新建仓的提示词改一处:证据不足以判断时回"不可用"这个值已存在PMS 收到会强制交人),只有"驱动已被证伪、放量破位、主力持续净流出"这类有证据的反对才拒。三PMS 侧加第二道保险:研判回拒绝但置信度低于阈值时按交人处理、不记拒绝,阈值一次定死写台账。
怎么验:连看五个交易日,研判拒绝理由里不再出现"启动线""不可用"的新建仓进待确认队列;提议数不为零。
**第三件PMS 按逻辑状态分流,入场论点随持仓走。**(已拍板随时可上,仍先跑哨兵测试)
买什么:第三、四、六步。四态发到 PMS 但没人读;持仓不绑论点;"逻辑不证伪不退出"没有判据。
做什么,先桥后 PMS
- 桥侧两个前置。一,把抗抖动接进计划:读昨日落定态与近几日原始态,调已写好的 settle卡上同时带原始态与落定态并落一张逐票日频表写在早上那一次生成里不在每次实时重算里。二加一个按代码查询逻辑状态的接口。四态唯一真正有用的地方是持仓而持仓在候选筛选第一步就被整行剔掉现有接口读不到。**09-07 已上线,台账 040表 t_akg_logic_state_daily 首日 1,210 行,逻辑成立 207、无法判断 1,001、逻辑存疑 2接口 /logic_state 待 API 进程重启后对外可见,与 PMS 侧同一窗口。)**
- PMS 侧。解析层收逻辑状态;硬数字带它但不送研判(检查表第九行要继续成立);"候选加逻辑存疑"强制交人,复用现有的强制确认字段;持仓的当日状态在早上拉计划那一步顺带取回,取不到留空、绝不折成存疑;存疑票停增持侧自主动作,策略腿按来源暂停、退出时只清本来源;存疑票出减持提议走已预留的"研究走弱"来源,强制交人、绝不自动卖;入场论点的写入点已经在(三处落账本都带判决依据与论断),只需加逻辑状态一个键,并在持仓视图加"当初为什么买"与"现在证据还在不在"两栏。
- 三处口径一次定死:减持比例与保垫减仓相同(三分之一);同轮优先级为到价清仓、研究走弱、保垫减仓;去重键带来源,免得两种减持互相挡。分流有自己的开关,默认开;减持提议那一半默认关,先跑停增持一个月看误伤。
怎么验:造一个逻辑存疑的计划行,单测证明增持被停、减持进人工队列、无自动卖单;账本里新开仓的硬数字带判决依据、论断、逻辑状态;持仓视图三种情形(有指令链、外部成交并入、账本无行)都不留空。
**09-07 PMS 侧已上线,台账 041三条验法都有单测钉住全套 676 例;三个开关现值为分流开、减持提议关、比例三分之一。选股系统接口进程已于 09-07 14:50 重启,整条链已接通;生产里的第一次无人值守读数在 09-08 早上 plan_pull 取回。)**
**第四件:安全边际有落点,只展示。**(与第三件并行,只碰选股系统)
买什么:第三步的前提。现在给人看的是目标价简单平均的预期空间,噪音口径;按盈利预测算的下行空间才回答"最坏情况下还有多少下跌空间"。
做什么:按同财年每股收益预测与市盈率预测算三情景(悲观、中性、乐观)估值与现价的差,加隐含市盈率与赔率,作为候选卡一行展示,不进判决。取数复用券商行动那一路的同财年去重逻辑。市盈率那一列此前没有代码读过,先在库上核列名再写。
怎么验:候选卡每票多一行,恩捷那例与方案四之三手算一致(赔率 0.87 比 1单测覆盖每股收益为负、机构不足两家、市盈率缺、现价缺四种不适用。
**第五件:收口上一段。**(放在第三件之后,因为检查表有四行会被它改掉)
买什么:判收标准本身。
做什么:核完一致性检查表剩下八行,不派并行代理;人工裁决理由改为服务端强制。链路已核实是通的,软肋是接口收到空理由时兜底写默认文案,浏览器之外的请求都能写出看不出区别的裁决记录。
怎么验:十三行每行有运行时证据;用不带理由的请求打裁决接口,返回错误而不是写入。
**第六件:让人裁决成为日常。**(已拍板每天处理)
买什么:人机分工第三条,机与人的裁决留痕可分开复盘。不靠改代码,靠运行方式。
做什么:从第三件上线次日起连续两周,每个交易日你在 PMS 页面处理当天的提议,采纳或驳回都写理由。周五复盘脚本出"三套对照",把机器判决与你的裁决并列。
怎么验:两周后账本里人工裁决不少于二十条且理由非默认文案;周报里"人批""人拒"两份名单有样本。
### 7.5 明确不做
不做回测、因子合成、IC。不改传导公式与档位。不让择时决策系统读产业逻辑。不让 PMS 回写上游。不重开上下游业绩传导与产业级驱动跟踪。不再做文案改写。不再派并行代理做核对类工作。
三件记台账待决、本段不做:一,"我的目标价"没有来源,第四件的中性情景值要不要作持仓行上的参考目标价(只显示不触发);二,风控高置信卖出直通清仓与设计文档"无自动止损"不一致,先定性归位;三,环节维度的集中度限仓。
### 7.6 判收
一致性检查表十三行全部有运行时证据,且四条成立:
一,第零件的每条缺陷有回归测试且全绿。
二,连续五个交易日有真实提议产生。
三,账本里人工裁决理由非默认文案。
四,"逻辑存疑"在测试里走通增持停、减持交人这条路,且生产里至少出现过一次。
### 7.7 风险
一,第零件甲组改的是 PMS 卖出侧,与资金最近;每条先写复现脚本再改,上线前跑哨兵测试。
二,第二件改择时层提示词后,"不可用"的量可能一下子很大,把待确认队列灌满;先看三天再调阈值。
三,公司深度研报上传节奏不受代码控制;第一件长期不动时,乙路只能当慢变量,第三件里"逻辑存疑"首月几乎只会由券商行动那一路触发,读数时要知道。
四,第三件的减持提议默认关;开之前先看停增持一个月的误伤。
### 7.8 已拍板2026-09-07
一,择时层对新建仓"证据不足以判断"改为交人裁决,不再折成拒绝。
二,第六件每个交易日处理提议并写理由,连续两周。
PMS 随时可上,我仍会先跑测试、避开开盘头几分钟。
### 附录乙 · 实现细节(可不读)
**第零件甲组PMS。** 在途键对卖出侧按代码而不是代码动作同票已有等人拍板的卖出提议时所有减持候选跳过或一律强制入队人采纳清仓时按当时可卖量重算数量action_engine.py 的 `_inflight_keys`、proposal_service.py 的 `_route_one`)。`_has_inflight` 按来源区分目标价来源的提议不算在途高置信风控到达时驳回或改写该提议再落单signal_service.py。提议路对卖出候选按可卖量夹紧与执行器口径对齐可卖量为零以等待留痕而不是拒绝rule_gate.py、action_engine.py 的 `eval_target`)。`scan()` 对挂了交易方案的票仍跑到价评估。每条在 test_batch4 或新批次加跨轮用例。
**第零件乙组(基座)。** 论断与事件两处排序加 claim_id 第二键rounds 小于 3 不落指纹;`_brain_json` 改用带截断标记的 chat_ex截断时放大预算或跳过、不原样重试加每环节总额上限新集合是旧集合子集仅老化时不重评tasks.py、claim_store.py
**第零件丙组(桥)。** plan.py 喂 from_claims 的用全量(与 coverage 脚本同口径 per_stock=200展示另取三条from_judgement 回看近 N 天有无 migrated=1 且偏多到偏空,或先接 settle快照 plan_date 用最近交易日、非交易日不落。
**第二件。** card.py 的 reasons 不再写"启动线已关闭",当日涨幅只留在 card 子字典;择时决策系统 tasks_intraday.py 第 585 到 605 行的新建仓提示词改"证据不足以支持建仓时选 UNAVAILABLE"PMS proposal_service `_route_one` 研判分支加低置信拒绝转交人,阈值进参数表。
**第三件桥侧。** plan.py 的 `_assemble_cards``logic_state.settle``_state_out` 多发落定态;新表 t_akg_logic_state_daily 写在 `plan.generate` 里,幂等写法与回看读法逐字照抄 judgement.py 的 `save``load_previous`api.py 加按代码查询接口,取数四路直接复用 `_logic_state_of` 的输入logic_state_coverage.py 的 main 就是它的草稿pool.py 写入股票池的上下文不带四态。
**第三件 PMS 侧。** plan_feed.py `_rows` 收 logic_state缺就是 Noneaction_engine.py `eval_open` 硬数字加它judge.py 白名单不加;`logic_confirm_why` 与 `verdict_confirm_why` 并列,`scan_open` 在判决之后再看一次逻辑状态;新参数 PMS_LOGIC_STATE_ROUTE 与 PMS_LOGIC_DOUBT_TRIM_RATIO 进参数表说明PMS_LOGIC_STATE_MAP 进运行参数(照 PMS_MACRO_GATE_STATE 的手法);`scheduler.pms.plan_pull` 拉完计划后对在持代码调桥的查询接口写入映射;`scan_and_route` 在宏观闸之后加逻辑存疑闸;策略腿用 strategy_service 的 `pause_buy(source="logic")``clear_buypause(only_source="logic")`;减持走 `reduce_on_weak_research`,新增求值器排在 TRIM 之前,`_SELL_PRIORITY` 改为按动作加来源;持仓视图 `positions_view` 每行加 entry 块,链条是首批批次的指令号对账本 ref_idpms_repo 加 `ledger_by_ref`FakeRepo 同步;新建 test_batch22_units.pyrun_tests.py 的清单与例数表两处同改。
**第四件。** sources.py 加 `valuation_scenarios`,把 `broker_actions` 里按代码预测期分箱、同机构只留最近、取覆盖最多预测期那段抽成共用函数card.py 加 `valuation_view(scn, price)`四种不适用写成人话plan.py 装配与 Markdown 各加一列PMS 透传放进 batch22不进研判白名单。
**第五件。** web/main.py 的裁决接口对空理由返回错误;检查表八行逐行用运行时证据核,其中第二、四、十一、十二行在第三件上线后核。