2026-09-07 11:06:13 +08:00
|
|
|
|
> 本文件是《主观量化系统方案_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:
|
2026-09-07 14:44:49 +08:00
|
|
|
|
- 桥侧两个前置。一,把抗抖动接进计划:读昨日落定态与近几日原始态,调已写好的 settle,卡上同时带原始态与落定态,并落一张逐票日频表(写在早上那一次生成里,不在每次实时重算里)。二,加一个按代码查询逻辑状态的接口。四态唯一真正有用的地方是持仓,而持仓在候选筛选第一步就被整行剔掉,现有接口读不到。**(09-07 已上线,台账 040:表 t_akg_logic_state_daily 首日 1,210 行,逻辑成立 207、无法判断 1,001、逻辑存疑 2;接口 /logic_state 待 API 进程重启后对外可见,与 PMS 侧同一窗口。)**
|
2026-09-07 11:06:13 +08:00
|
|
|
|
- PMS 侧。解析层收逻辑状态;硬数字带它但不送研判(检查表第九行要继续成立);"候选加逻辑存疑"强制交人,复用现有的强制确认字段;持仓的当日状态在早上拉计划那一步顺带取回,取不到留空、绝不折成存疑;存疑票停增持侧自主动作,策略腿按来源暂停、退出时只清本来源;存疑票出减持提议走已预留的"研究走弱"来源,强制交人、绝不自动卖;入场论点的写入点已经在(三处落账本都带判决依据与论断),只需加逻辑状态一个键,并在持仓视图加"当初为什么买"与"现在证据还在不在"两栏。
|
|
|
|
|
|
- 三处口径一次定死:减持比例与保垫减仓相同(三分之一);同轮优先级为到价清仓、研究走弱、保垫减仓;去重键带来源,免得两种减持互相挡。分流有自己的开关,默认开;减持提议那一半默认关,先跑停增持一个月看误伤。
|
|
|
|
|
|
怎么验:造一个逻辑存疑的计划行,单测证明增持被停、减持进人工队列、无自动卖单;账本里新开仓的硬数字带判决依据、论断、逻辑状态;持仓视图三种情形(有指令链、外部成交并入、账本无行)都不留空。
|
2026-09-07 14:48:13 +08:00
|
|
|
|
**(09-07 PMS 侧已上线,台账 041:三条验法都有单测钉住,全套 676 例;三个开关现值为分流开、减持提议关、比例三分之一。选股系统接口进程已于 09-07 14:50 重启,整条链已接通;生产里的第一次无人值守读数在 09-08 早上 plan_pull 取回。)**
|
2026-09-07 11:06:13 +08:00
|
|
|
|
|
|
|
|
|
|
**第四件:安全边际有落点,只展示。**(与第三件并行,只碰选股系统)
|
|
|
|
|
|
买什么:第三步的前提。现在给人看的是目标价简单平均的预期空间,噪音口径;按盈利预测算的下行空间才回答"最坏情况下还有多少下跌空间"。
|
|
|
|
|
|
做什么:按同财年每股收益预测与市盈率预测算三情景(悲观、中性、乐观)估值与现价的差,加隐含市盈率与赔率,作为候选卡一行展示,不进判决。取数复用券商行动那一路的同财年去重逻辑。市盈率那一列此前没有代码读过,先在库上核列名再写。
|
|
|
|
|
|
怎么验:候选卡每票多一行,恩捷那例与方案四之三手算一致(赔率 0.87 比 1);单测覆盖每股收益为负、机构不足两家、市盈率缺、现价缺四种不适用。
|
2026-09-07 15:50:18 +08:00
|
|
|
|
**(09-07 已上线,台账 042:市盈率列名是 pe;恩捷实算悲观 42.64、乐观 84.96 与手算一致,中性 56.05 对 56.75 差在机构去重后少一家;09-04 数据 1,210 只里 444 只算得出。PMS 侧整句透传已上线;接口 /plan 要再重启一次 API 进程整句才会送到 PMS。)**
|
2026-09-07 11:06:13 +08:00
|
|
|
|
|
|
|
|
|
|
**第五件:收口上一段。**(放在第三件之后,因为检查表有四行会被它改掉)
|
|
|
|
|
|
买什么:判收标准本身。
|
|
|
|
|
|
做什么:核完一致性检查表剩下八行,不派并行代理;人工裁决理由改为服务端强制。链路已核实是通的,软肋是接口收到空理由时兜底写默认文案,浏览器之外的请求都能写出看不出区别的裁决记录。
|
|
|
|
|
|
怎么验:十三行每行有运行时证据;用不带理由的请求打裁决接口,返回错误而不是写入。
|
|
|
|
|
|
|
|
|
|
|
|
**第六件:让人裁决成为日常。**(已拍板每天处理)
|
|
|
|
|
|
买什么:人机分工第三条,机与人的裁决留痕可分开复盘。不靠改代码,靠运行方式。
|
|
|
|
|
|
做什么:从第三件上线次日起连续两周,每个交易日你在 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(缺就是 None);action_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_id,pms_repo 加 `ledger_by_ref`,FakeRepo 同步;新建 test_batch22_units.py,run_tests.py 的清单与例数表两处同改。
|
|
|
|
|
|
|
|
|
|
|
|
**第四件。** sources.py 加 `valuation_scenarios`,把 `broker_actions` 里按(代码,预测期)分箱、同机构只留最近、取覆盖最多预测期那段抽成共用函数;card.py 加 `valuation_view(scn, price)`,四种不适用写成人话;plan.py 装配与 Markdown 各加一列;PMS 透传放进 batch22,不进研判白名单。
|
|
|
|
|
|
|
|
|
|
|
|
**第五件。** web/main.py 的裁决接口对空理由返回错误;检查表八行逐行用运行时证据核,其中第二、四、十一、十二行在第三件上线后核。
|
|
|
|
|
|
|