zlt
9ef5e4c18f
个股详情抽屉文案清理:信号补全状态、三条提示、写入时刻说明改成专业表述
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 09:27:11 +08:00
zlt
094e7214c6
DEVLOG:个股详情抽屉重做节点(开发机完成,未部署)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 09:16:07 +08:00
zlt
e3fb0c6562
个股详情重做:系统判断卡加三路意见行,慢变量与指标细节收进详情,去掉内部设计词
...
抽屉第一段改成主页面的风格:一张判断卡给结论芯片加一句白话与三票概览,
基本面、技术面、择时各一行(沿用提议卡来源行样式),点开才看质地明细、失效条件、
指标读数。页面不再出现合议、路由、交人这些设计词。信号说明里的裸英文码不当句子显示,
处置改成芯片,日期带横线。地址栏 #detail=代码 可直达该票详情。
研究面接口合议改用现读的技术面,修掉「显示看空却按无读数合议」的自相矛盾。
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 09:13:26 +08:00
zlt
985abc48a2
DEVLOG:三包按评审修订并部署 155,自决全开,真机判收读数回填
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-14 16:49:12 +08:00
zlt
980235cb25
按评审修订系统自决包:清仓停买入侧三件、弱表态按强弱、真通过要求、逻辑存疑不送研判
...
到价自动清仓前改成与命令清仓同样的三件:撤方案、驳回该票待确认买入提议、撤在途买入指令
(原来只撤方案,已下发的网格买单会与清仓单对倒),且不再只在有活动方案时才做。
只有一方表态改按合议强弱打标记,弱表态开关关掉时不再按标准仓采纳。
自动采纳只认带应答体的真通过,动作不在研判范围的 PASS 一律交人。
decline/full 档逻辑存疑的新建仓不送研判直接放弃。到价清仓理由保留现价目标价股数。
页面加「系统已采纳」「系统已放弃」两种处置词。第三十四批加两例、装配自检加一例,共 900 例。
台账 015 补记,上午规格书附录己补真实仓三条。
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-14 16:40:22 +08:00
zlt
998ebb4ea8
三包评审:自决包、页面包、选股打分包可部署,两处小修建议部署前做完
...
逐行读了六个本地提交与选股桥一个提交,全量 897 例与三道守卫全绿。
两处建议部署前修:目标价自动清仓只撤方案不撤在途买单(与命令清仓不一致);
弱表态开关关掉时只有一方表态会按标准仓采纳。另六处不阻塞。
155 现无目标价票、弱表态开关开着,先部署也守得住前提。
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-14 16:23:02 +08:00
zlt
a6d5f1046c
文档:UI_COPY_AUDIT 词表第二版、FRONTEND_TRADER 裁决/档位/参考位改人工(台账 015 §6.5)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-14 16:01:42 +08:00
zlt
459edffc52
DEVLOG:页面专业化包五段式节点(开发机完成+浏览器冒烟,未部署)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-14 15:59:48 +08:00
zlt
77db6b830f
页面专业化包·抽屉重构与裁决弹窗、候选可点击、来源芯片(台账 015 / §4 §5.3)
...
单票抽屉重构成三段固定结构加顶部吸顶锚点条(研究面·三源合议 / 今日信号 / 系统动作),
三条黄色警告条移到今日信号段标题下,新增计算属性 csSnapMetrics/csSnapMr/csSignalCount/csDisp。
裁决改成 el-dialog 选预设理由码(取不到用内置副本),选其他补充必填,submitDecide 校验提交。
建仓候选/提议卡/未建仓表票名可点开个股详情。顶栏芯片显示计划来源与赛道闸状态(plan_feed 收三字段)。
浏览器冒烟:全页挂载不白屏、抽屉三段与锚点、裁决弹窗七个预设理由均正常。全量 897 例 ALL SUITES PASS。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-14 15:58:34 +08:00
zlt
c94787acd1
页面专业化包·文案与守卫:全页口语化文案改交易术语(台账 015)
...
板块标题(等我拍板→待确认提议、我的持仓→持仓、今日在办→当日指令、今天发生了什么→评审账本、
我的策略→交易方案、系统在盯的候选→建仓候选等)、处置词、六个合成句、T 表六组、后端随行句与参数
说明全部改成交易术语,去第一二人称与拟人口语。新增 test_page_copy_guard.py 守卫(禁用词扫显示文本、
剥三种注释、成对豁免、网址不误截),登记进 run_tests。全量 897 例 ALL SUITES PASS。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-14 15:38:50 +08:00
zlt
de06c778cb
选股打分包·PMS 侧:解析层收上游计划来源字段(§5.3)
...
plan_feed.parse_plan 收 plan_source、snapshot_generated_at、gate_on 三键,写进名册快照 meta;
缺就是 None,gate_on 布尔归一。第七批加两例,全量 896 例 ALL SUITES PASS。页面顶栏芯片随页面专业化包做。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-14 15:11:35 +08:00
zlt
44ec6d4a5d
系统自决包:把新建仓/深亏补仓/目标价的该不该做交回合议与研判(台账 015)
...
PMS_SELF_DECIDE 四档 off/record/decline/full,人只处理四类例外(研判不可用、上游硬风险、
合议装不上、判决词认不出)。合议加择时异议观察(wait_timing);动作引擎打 decide_kind;
proposal_service._self_decide 按决定表判采纳/放弃/交人,自动采纳走建议档重算数量、自动清仓
按可卖量夹紧并先撤方案;裁决接口改收预设理由码(decide_reasons);观察读数加七类、复核加
两张表、日报加自决注意项。撤销台账 001 与 008 两句。全量单测 894 例 ALL SUITES PASS
(既有 871 例全绿即 off 逐字回旧)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-14 15:07:41 +08:00
zlt
da272cc1c1
下一阶段开发规格说明书:系统自决、页面专业化、选股打分(只写文档,未动代码)
...
用户拍板:自决直接全开;目标价到价清仓、深亏补仓、判决关注三项全部自动;
工作包四批准且改完即可重启桥。规格逐条给出十六个交人触发点的新归属、
合议乘研判的最终决定表、决定种类取值、数据契约与理由模板、三个参数、
单测与哨兵、验证命令与回退,附八个流程示例、与现有状态机的冲突核对表、页面词表。
摸底查实两处冲突:仓位矩阵「技术面看空」那格的观察字段无人消费;
目标价自动清仓遇挂着网格方案的票会对倒,落指令前要先撤方案。
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-14 14:00:33 +08:00
zlt
2958d955ab
DEVLOG 回填:盘中确认+页面收尾已 12:35 部署 155,盘中确认开关设 False
...
版本 f3c766b、指纹一致 a4089e22999f、四容器健康、make test ALL SUITES PASS、建表 21 张。
PMS_TECH_INTRADAY_CONFIRM=False(读回 False),观察检查点正常。09:40 策略层那一跳查实
为空跑(今天唯一自动策略是网格非跟踪止盈,SAR 止损线与紧止盈都无对象可触发)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-14 12:40:16 +08:00
zlt
f3c766b9c8
DEVLOG:盘中确认包与页面收尾包五段式节点(开发机完成,未部署)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-14 12:19:58 +08:00
zlt
2f64274d53
页面收尾包:单票研究面接口补齐六块,抽屉四芯片、候选栏芯片、管理研究面列
...
评审发现六/七:研究面接口只给技术面一块,候选栏与管理视图缺研究面。补齐:
- GET /api/research/{ts_code} 补成六块:公司质地/基本面/技术面/择时/合议/各路来源状态。
持仓票的买方评析从逻辑状态映射取,候选票从当日计划主榜与观察档取(_research_st),
四块用 consensus_service.assemble 凑齐,company 块复用 logic_state_service.company_view。
任一路取不到按无读数弃权,sources 逐路标 ok/无读数/错误。
- 单票抽屉那一节改成「研究面 · 三源合议」四枚芯片(基本面/技术面/择时/合议),
按立场红涨绿跌、悬停看理由,下面保留技术面详细读数与评析报告链接。
- 候选栏每行加质地芯片与技术芯片:disposition_snapshot 把候选处置快照按代码挂上合议摘要
(consensus_seen 加 overall),前端用 conOf(code) 取。
- 管理视图持仓总览加研究面列,与「我的持仓」那列同款。
前端三处由两道页面守卫(wiring 204/324 对齐、enum 通过)与本地 uvicorn 浏览器冒烟
(页面完整挂载不白屏)兜;真实数据视觉判收在 155 部署后过目。第三十三批5例,
全量871例 ALL SUITES PASS。未推未部署(随盘中确认包下批一起)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-14 12:18:58 +08:00
zlt
64863171f4
DEVLOG 回填:观察读数+加固+文档三包已 11:31 部署 155 并判收
...
版本 94da25b、指纹一致 de81fa1c6143、四容器健康、make test ALL SUITES PASS、建表含
pms_consensus_stat。记下表里 2 行 09-11 遗留种子数据(非本次所写、对 09-17 复核无影响)。
consensus-review 首日读数待 09-15 09:37 后回填。盘中确认包已提交待部署。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-14 11:46:06 +08:00
zlt
1ccd542898
盘中确认包:给技术面这一票加盘中放量确认,只用于入场(台账012)
...
方案第三节的盘中确认,之前没落地——技术面那一票全是昨夜数据。现在加两条规则,
只用于入场,时段与量比与解锁重问同源(台账003):
- 收口突破:收口等待的候选盘中站上昨日布林上轨且时段折算量比≥1.5,当轮视为开口向上,
改立场重新合议后进候选。
- 开口确认:开口向上的候选盘中要现价不低于当日均价且量比≥1.5,不满足就当轮进观察,
处置词「等盘中确认」,取不到按等待不放行(入场的门,方向保守)。
做了什么:
- core/tech_rules.py 加纯函数 intraday_confirm;synthesize 的 base 带 boll_upper(收口突破
拿昨日上轨);时段判断复用 reask_rules.in_window(同一函数对象,台账003同源哨兵)。
- tech_service._compact 带 boll_upper。
- proposal_service._attach_consensus 装配后跑盘中确认:突破改 blocks 重新合议、开口未确认
把路由改观察带 wait_confirm、硬数字 tech 块记 intraday;_scan_open 与 _attach_consensus
多接 now。动作引擎 scan_open 观察分支按 con 的 disp 选处置词与标签。
- 处置词 wait_confirm(页面「等盘中确认」,与在盯同档);观察读数新增 open_wait_confirm、
open_breakout 两类。
- 四参数登记(PMS_TECH_INTRADAY_CONFIRM/BREAKOUT/VOL_CONFIRM/WINDOW),量比阈值加范围。
拍板点二(开口向上候选在时段外进观察)按规格书附录乙实现,事后确认即可。
总闸 PMS_TECH_INTRADAY_CONFIRM 关掉两条规则都不走,逐字回旧。第三十二批19例,
开发机全量866例 ALL SUITES PASS。未推未部署(新包改入场行为,部署时机待定)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-14 11:40:51 +08:00
zlt
94da25bc25
按评审修订观察读数包:增持门口径改只数、清早重复无读数行、复核脚本与台账口径一致
...
按 docs/观察读数包与加固包评审_2026-09-14.md 第五节,改读数口径与文档一致性(非代码缺陷):
- 增持门拦截改看只数:检查点是两分钟窗口,累计次数 rounds 会把同一只翻倍(一天最多
八次),会误读。复核脚本第二张表用只数,台账 013 口径同改,rounds 只当诊断。
- 映射重建先清当日 tech_noread(consensus_stat_repo 加 delete_day_kind),以最新一次
为准。06:30 缺读数、08:40 补上的票不再留旧行让逐只无读数偏高(占比用覆盖行算,一直准)。
- 复核脚本第四张表把「合议交人而人采纳」单列成信息行,不计入分歧——交人本就让人定;
提议上限按天数放大(三十天窗口够用)。
- DEVLOG 09-14 节点修内部不一致:补文档包、从欠账里删掉已完成的 README/CLAUDE.md。
- record_round 的 params 注明暂未用(保留对齐规格书签名)。
第三十一批加一例(映射重建先清当日无读数),开发机全量 847 例 ALL SUITES PASS。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-14 11:07:39 +08:00
zlt
845d6f2d0b
观察读数包与加固包评审:可部署,三处读数口径与文档一致性要在 09-17 复核前修
...
逐行读了三个提交的差异与四个新文件,开发机全量单测 846 例 ALL SUITES PASS,
核实了七处单测覆盖不到的接线。结论是可以收盘后部署 155。要修的三处:
增持门拦截次数用累计次数会因两分钟窗口翻倍、DEVLOG 节点欠账写了已做的事、
早上两次映射重建都写逐只无读数行。另有四条不阻塞的小建议。
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-14 10:58:08 +08:00
zlt
b1ebb3659e
文档包:改掉影子模式过时说法、CLAUDE.md 入库、DEVLOG 追加本轮节点(拍板点五)
...
- README 与 CLAUDE.md 里「当前是影子模式、没有系统自动下单」已过时(模拟仓 155
从 8-3 起就是 ws、发过真实委托)。安全相关的说法过时比一般过时更危险。按拍板点五
改成:下发模式由 PMS_DISPATCH_MODE 决定、以页面顶部横幅为准;写清模拟仓 155 现为
ws、真实仓 188 尚未追平上线等 QMT 侧、追平先进影子期。
- CLAUDE.md 入库(原为未跟踪)。
- DEVLOG 追加观察读数包与加固包的五段式节点(未真机判收,待收盘后 155 部署)。
文档包其余项随对应工作包做:台账 012(盘中确认包)、014(真实仓准备包)、
接口契约单票研究面(页面收尾包)。台账 013 已随观察读数包提交。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-14 10:43:27 +08:00
zlt
e21b73b46d
加固包:去重集清除条件、持仓行转多留痕、登记弱表态开关、时钟用例改相对时刻
...
评审第五节四处小加固,每处开关关掉或默认值即旧行为:
- 转空去重集只在 SAR 明确为多时才清除(原来「不是空就清」把缺读数也当翻多,
会重复减仓)。抽出纯函数 _keep_tech_exit_done,第三十批加三例。
- 持仓行的择时票带上当日盘中转多留痕:decorate_positions 从买入信号同一来源
取 flip_map,昨夜中性当日转多时择时票升看多。第二十八批加一例。
- 登记 PMS_CONSENSUS_WEAK_CONFIRM(默认开):合议方向看多但只有一方表态时
交人,关掉则放行。consensus.decide 加 weak_confirm 参数。第二十八批加两例。
- 第二十四批时钟用例改相对当前时刻构造陈旧告警,任何时刻跑都过(原来写死
今天09:35,开发机09:36前跑年龄算成负数)。
开发机全量单测846例 ALL SUITES PASS。未在155部署(收盘后随观察读数包一起)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-14 10:32:54 +08:00
zlt
f2d6b37fd2
观察读数包:合议判定落表 pms_consensus_stat,加复核脚本与日报小节(台账013)
...
每轮扫描把合议相关的判定归类落表,供台账006到011复核,之前这些数只活在
扫描返回值与页面即时快照里,复核日期到了拿不出数。
做了什么:
- 新表 pms_consensus_stat(第21张),一天一票一类一行,重复记到只加次数。
- 动作引擎给合议跳过项(跳过分fund/bear、观察wait_tech)与增持门(gate_block
带fill/add/dca)打类别标签,只在对应开关开着的分支里打,关掉逐字回旧。
- consensus_stats.record_round 按检查点归类落表:转空实弹随时写,路由与装配两类
只在检查点写,试算不写;映射重建时 record_map_cover 记覆盖只数与逐只无读数。
- 复核脚本 scripts/consensus_review.py 与 make consensus-review 打出台账要的四个
读数;日报加合议观察小节。
- 新参数 PMS_CONSENSUS_STAT_TIMES 控制检查点(默认0935,1030,1330,1445)。
哨兵:DDL表数20改21;record_round进SOFT_FAIL;第31批登记进SUITES与例数表。
开发机全量单测840例 ALL SUITES PASS。未在155部署(收盘后另行审批)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-14 10:19:51 +08:00
zlt
28347fcb00
三源合议阶段评审与下一阶段开发方案规格书(只写文档,未动代码)
...
评审对照方案逐包核对完成度与真机判收,155 只读读数、开发机全量单测,
十条发现里最要紧的两条是盘中确认没有落地、观察读数不落表复核做不了。
下一阶段定为观察与收尾,八个工作包、六个新参数、八个拍板点,
每个工作包带改动点、单测清单、验证命令与回退。DEVLOG 追加五段式节点。
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-14 09:22:15 +08:00
zlt
969d189be0
修管理视图持仓总览「证据列印两遍」并加评析报告链接
...
「证据还在不在」列里,logic_now.text 上面已印一次,而公司质地行的 v-else 在没有
公司评析时又把它印一遍。改成兜底只在既无逻辑状态又无公司评析时出「今天没有读数」。
顺手给质地行加评析报告链接(company_view 已返回 report_url)。两道页面守卫 ALL OK。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-11 17:18:45 +08:00
zlt
b5c5b348cb
DEVLOG:工作包三 part3+4 已在 155 真机判收(策略层未开,代码已部署但休眠)
...
补记 2d019a1 部署与判收:make test 全绿、指纹一致、四容器健康、自动挂载试算无报错。
155 上 PMS_STRATEGY_ENABLED 未开,part3+4 代码已部署但休眠,启用策略层才激活。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-11 17:16:27 +08:00
zlt
2d019a1b17
三源合议工作包三(二):策略层两道技术面离场(part 3+4)
...
part3 跟踪止盈盘中 SAR 止损线:09:45 后现价跌破昨日 SAR×(1-0.003) 即全清、当日一次;
每天 09:40 把技术面映射的 SAR 值刷进每条自动跟踪止盈,无读数撤旧线。
part4 弱基本面试探仓紧止盈自动挂载:基本面看空+技术面看多的试探仓次日 09:40 自动挂
回撤 3%/硬目标 8%/带 SAR 线的跟踪止盈,不占每日名额;认它靠入场账本 advice.tight_trail。
至此工作包三四部分全做完。台账 011;第三十批扩到 33 例;开发机全量 ALL SUITES PASS。
只对自动跟踪止盈与弱基本面试探仓生效,其余策略票行为不变(batch17/19 回归绿)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-11 17:13:51 +08:00
zlt
85f4330c59
工作包五:README 调度总表补齐到十三个调度位
...
补上 tech_pull(06:30)、macro_scan(09:35)、strategy_attach(09:40)、nav_snapshot(15:20)
四位,按一天时间顺序列全,每行带 pms.* 任务名。接口契约技术面一节工作包一已加(V1.4)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-11 17:00:47 +08:00
zlt
06fe25a2a4
DEVLOG:工作包三 part1+2 已在 155 真机判收
...
补记 8fdcc2a 部署与判收:make test 全绿、指纹一致;当前持仓无转空相位故未触发。
更正措辞:155 下单模式是 ws(连模拟 QMT)非影子模式,full 档位转空离场会真下发模拟卖单。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-11 16:56:08 +08:00
zlt
8fdcc2ac16
三源合议工作包三(一):技术面转空自动离场(part 1+2)
...
动作引擎加转空离场评估器 eval_tech_exit:相位转空且翻空≤2 交易日才评,
确认转空清仓全部可卖量、未确认减三分之一;默认自动执行(与保垫减仓同档),
档位 PMS_TECH_EXIT_AUTONOMY 三档 off/propose_only/full;同一翻空只处理一次
(PMS_TECH_EXIT_DONE 去重,SAR 翻多即清,不动表结构)。
- EVALUATORS 加一条改七条(TRIM、TRIM、EXIT、EXIT、ADD、FILL、DCA)
- 卖出优先级改来源分档:目标价<研究走弱<技术面转空<保垫减仓(既有相对次序不变)
- 策略票判据改按函数判:策略票只评到价清仓、不评转空离场(SAR 归策略层)
台账 010;第三十批 18 例;开发机全量 ALL SUITES PASS。
策略层两部分(盘中 SAR 止损线、弱基本面试探仓紧止盈)留下一增量。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-11 16:52:35 +08:00
zlt
cb6b308620
DEVLOG:三源合议接入下单链路已在 155 真机判收
...
补记 51815d5 的部署与判收:make test ALL SUITES PASS、指纹一致、四容器健康;
试算真机确认合议分流生效(三只方向看空跳过、一只等技术面开口)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-11 16:34:13 +08:00
zlt
51815d5588
三源合议工作包二(四):接入下单链路(合议分流·增持门·质地排序·提议卡合议行)
...
把三块大脑接进新建仓与持仓的下单链路,每处守开关关掉即逐字回旧:
- 新建仓扫描前批量装配合议挂候选;scan_open 按合议路由分流
(跳过/观察不占名额、观察带 wait_tech、交人强制确认、放行照常、缺合议退旧路)
- 合议开着时定档改用 advise_v2 仓位矩阵;六键进硬数字但不进送研判白名单
- 持仓增持门:合议看空停三类、技术面看空停回踩补足与盈利加仓、基本面看空停补仓,减持不受影响
- 候选先按基本面立场分桶再按分数;观察档质地看多进池开关(默认关)
- 提议卡加合议行与详情弹窗;候选处置新增「等技术面开口」
台账 007/008/009;第二十九批 24 例,本地全量 ALL SUITES PASS。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-11 16:28:32 +08:00
zlt
2f4f9cbf52
交接文档:技术面接入与三源合议进度(工作包二接入待做)
...
对照方案汇总:工作包一 155 真机判收完成;工作包二三块大脑(纯逻辑/装配/advise_v2)完成;
剩接入下单链路(扫描分流/增持门/候选排序/页面合议行)。含接入设计(复用判决分流手法)、
真机两个坑(upsert 用 VALUES / 分页按 matched)、验证命令。供新开上下文接手。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-11 15:02:57 +08:00
zlt
0dd5b68e11
三源合议工作包二(三):advise_v2 基本面×技术面仓位矩阵
...
方案附录乙的仓位矩阵, 叠在现有 advise 的基本面维度上加技术面维度, 旧 advise 原样保留:
- 基本面看多×技术面看多/中性 → 标准仓 5/2.5/2.5; 估值贵或共识已定价 → 减半, 共识已定价还首批推迟
- 基本面看多/中性×技术面看空 → 观察(route), 已持仓只停增持
- 基本面中性×技术面看多/中性 → 标准仓 3/3.5/3.5
- 基本面看空×技术面看多 → 试探仓1%一批交人, 配紧止盈与SAR线(tight_trail)
- 基本面看空技术面非多 / 无读数 → 不建
- 保留既有: 逻辑存疑不建、赔率低降试探、高位兑现首批推迟
batch28 加矩阵八例, 现 37 例。扫描接入路由、增持门、页面合议行随后。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-11 14:50:45 +08:00
zlt
be7884da46
三源合议工作包二(二):装配服务与批量读昨夜定性
...
- downstream_repo.fetch_nightly_verdicts: 批量读 strategy_daily_results.signal_type (择时那票的源)
- consensus_service: 给候选/持仓行凑齐基本面/技术面/择时四块意见, hard_keys 折成六个硬数字键
- 参数登记 PMS_FUND_REQUIRED/STALE_DAYS/CONSENSUS_GOOD_MIN、PMS_CONSENSUS_ROUTE
- batch28 加装配三例 (脱库桩参数与映射), 现 29 例
装配层不改下单链路。advise_v2 仓位矩阵、扫描接入路由、增持门、页面合议行随后。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-11 14:33:58 +08:00
zlt
84207d53b8
三源合议工作包二(一):基本面/择时/合议三个纯逻辑模块
...
方案第四节的三个纯逻辑判定,零外部依赖好单测:
- fund_rules 基本面立场:质地好看多/质地中两好零差看多/差或硬疑点看空/缺或超120天无读数/
十视角好≥8且估值贵打共识已定价标记
- timing_rules 择时立场:昨夜 BUY/WATCH/SELL 映射 + 盘中转多升级
- consensus 合议与路由:多数决方向、强弱、附录丙路由表逐条
batch28 二十六例。装配服务 consensus_service 与 advise_v2、扫描接入、增持门、页面合议行随后。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-11 14:17:04 +08:00
zlt
5fa68817dc
修技术面分页:按 matched 拉完,不再用页大小判最后一页
...
真机(2026-09-11)接口 limit 上限 1000 < 页大小 1500,旧逻辑第一页 got=1000<1500 就判
最后一页,只落 1000/4991。改为优先按 matched 终止、空页停、页大小设 1000。batch27 加一例。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-11 14:06:57 +08:00
zlt
f30d1a1d0a
修技术面落表 SQL:ON DUPLICATE 子句改用 VALUES(列)
...
真机首验(2026-09-11)抓到: upsert_daily 的 ON DUPLICATE KEY UPDATE 用 :col 绑定参数,
pymysql executemany 对 INSERT...ON DUPLICATE 做多行合并优化时只展开 VALUES 子句占位符,
UPDATE 子句的 %s 不展开却仍算参数, 5000 行批量落表参数错位、SQL 留裸 % 报 1064。
改用 VALUES(列) 引用插入值。batch27 加哨兵钉住(脱库单测 mock 落表测不到)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-11 14:01:11 +08:00
zlt
a33bae5e20
修 batch20 提议卡守卫断言:propVerdictLine 重构后移进详情弹窗
...
提议卡重构把 propVerdictLine 从卡面(参数 p)移进弹窗(参数 propDetailP),
断言按字面查 "propVerdictLine(p)" 失配。放宽为只要求用到 propVerdictLine。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-11 13:54:18 +08:00
zlt
83022e1347
提议卡重构:卡面留结论、详情进弹窗、加技术面
...
用户反馈提议卡信息过载(选股/决策/公司深度整句全平铺、公司深度那句占大半屏)。
改成卡面只留结论、点开弹窗看详情。
- 卡面四行来源结论标签(选股系统/决策系统/公司深度/技术面)加数量档位,采纳驳回
- 弹窗 teleport 到 body(层级 3000/2995 同信号抽屉)从底部滑出,四类详情各自排版
- 公司深度弹窗用质地档/十视角/买方论点/失效条件/反方/催化分段带彩色小标题
- 技术面弹窗三指标块(布林/多空布林线/SAR),点开时调 /api/research 取完整读数
- 颜色按页面口径红涨绿跌:技术面看多红看空绿,评价类用中性蓝黄
- /api/proposals 每条挂技术面立场;两道页面守卫 ALL OK;本地注入假提议冒烟验证渲染
未真机判收。合议行与候选芯片仍属工作包二。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-11 13:44:30 +08:00
zlt
d89580240b
技术面接入工作包一(页面):顶栏新鲜度芯片、持仓研究面列、单票抽屉技术面节
...
- 顶栏加技术面新鲜度芯片(调 /api/tech/status,绿=映射新鲜/黄=读不到或过期/灰=没开)
- 我的持仓加「研究面」列显示技术面立场,点击进单票抽屉
- 单票抽屉顶部加「研究面·技术面」节(调 /api/research),展示立场/相位/理由/三指标读数
- /api/positions 每行挂 tech 立场;设置页自动列出 11 个 PMS_TECH_* 参数(无需另做设置卡)
- 两道页面守卫 ALL OK;本地起服务冒烟确认不白屏、顶栏芯片与研究面列渲染正确
候选技术芯片、管理视图修显示错误并入工作包二一起铺。未真机判收。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-11 12:58:08 +08:00
zlt
0d3984582c
技术面接入工作包一(后端):取数落表、相位合成与映射打通
...
方案见 docs/技术面接入与三源合议方案_2026-09-11.md 第五节。让每只票多一份结构化
技术面立场,数据取自决策系统全市场技术面接口(布林线/多空布林线/SAR)。
- 新表 pms_tech_daily 存全市场每日读数,保留 40 个交易日
- core/tech_rules 相位合成(纯逻辑)、repo/tech_repo 单表访问、services/tech_service 分页取数落表与每早映射
- 调度加 06:30 tech_pull;plan_pull 拉完计划后补拉一次并重建映射
- 三接口:技术面状态、手动拉取(管理员)、单票研究面
- 参数 PMS_TECH_* 登记;哨兵同步(DDL 表数 20、调度位、路由清单)
- batch27 二十七例,开发机全量 ALL SUITES PASS;相位与五个阈值记台账 006
页面七处建议并入工作包二;合议(二)、离场(三)、选股打分(四)未做。未真机判收。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-11 12:32:00 +08:00
zlt
cabcf04397
修 batch25 一条钉住排版而非行为的断言;硬风险排在重问之后
...
batch25 那条断言写的是 `'or bool(reask_why))' in src`,它把「reask_why 必须是
force_queue 那一行的最后一项」也一起钉住了 —— 而那只是当时的排版,不是这条规矩的
内容。往一票否决里加「上游标了硬风险的候选也交人」之后,那一行结尾变成
`bool(risk_why))`,断言就红了,而被它保护的行为一个字都没变。改成取出那一行、
只看 reask_why 在不在里面。
同时把交人原因的次序改回来:重问放行仍排最前(2026-09-09 拍板),硬风险紧随其后。
原先我把硬风险排到了最前,那等于顺手推翻上一次拍板 —— 而两者实际上几乎不会同时
出现(上游标了硬风险的票判决多半不是「候选」,走不到重问那一步),这个次序之争
是空的,不值得为它改口径。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-10 13:47:04 +08:00
zlt
c9b468e7a2
数量按建议档位重算:卡上写试探仓 1%,采纳后就真的只买 1%
...
一、问题。155 实测 8 张待确认提议,7 张卡上写「建议方案:试探仓(目标 1.0%,
分批 100%)」,而每一张采纳后实际会买 3.00%(标准仓 6% 的第一批),正好三倍。
只有 300118.SZ 那张标准仓的是自洽的。
根因是次序。候选产出时 advise() 的档位是进过数量的(params_for 把 target_pct
塞进 stock_target_default,action_engine 据此拆批)。但研判回来之后 apply_judge
还会再降一档 —— 把握度低或结论不可用就降成试探仓 —— 那一步只改档位文字,数量
已经算完了。apply_judge 的说明原文写着「不改数量, 数量交人」,而页面上采纳按钮
根本没有填数量的地方,这个「交人」无处兑现;采纳时后端直接抄提议里的股数原样
落单(web/main.py 只有卖出侧会按可卖量重算)。
二、改法。新增 advice_service.resize_to_advice,在 apply_judge 降档之后重算这一批
的股数,并把 target_pct / target_amount / base_amount / batch_scheme 一起改掉 ——
否则卡上那三个数字仍然是旧口径。总规模不另外读参数表,直接从硬数字里的
target_amount ÷ target_pct 反推,保证与当初算数量用的是同一个规模。
买不足一手时抬到一手:300604.SZ 现价 264.81,1% 只有 75 股,抬到 100 股实际
占 1.32%,仍远小于机械档 6%。但一手金额不许超过机械档 —— 超过说明这只票对当前
规模本来就太贵,那就不改数量、把原因留在卡上,不默默按旧数量下单。
三、一并补上持仓的目标仓位。pms_position.target_pct 这一列全库从来没有任何一处
写过,而动作引擎算补仓与加仓金额时先读它、读不到退全局 6%。不补的话会得到一个
更难看的组合:第一笔只买 1%,随后系统自己按 6% 一路补,试探仓的意思当场作废。
现在在建仓成交入账时记一次,且只记第一次(目标仓位是建这只仓时定的意思,
后续加仓不该改)。记不上绝不拦成交入账。
四、补一个洞:上游标了硬风险的候选一律交人,哪怕档位是 full。
这一条原先只写在 _verdict_auto_exec_why 那条更窄的旁路里(第四条「上游风险列表
为空」),而一票否决那条链完全不看 risk。后果是反的:档位是 propose_only 时旁路
会拦住带风险的票,一旦档位改成 full,那条旁路根本不走,带硬风险的候选反而畅通
无阻直接落指令 —— 越放开越不设防。交人原因也把硬风险排到最前,不再笼统说
「档位 propose_only」。
硬风险是选股系统在候选卡上标的三类:昨夜给出卖出/回避/已剔除信号、用的传导快照日
与计划日不符、吸筹为高位派发。
五、方向。这一批改动只会让发出去的钱变少或不变,不会变多:同一张卡从 1200 股
58,260 元降到 400 股 19,420 元;硬风险那条是把自动执行改成必须人点头。
新增 test_batch26_units.py 十七例,D 组专门钉「重算之后的金额一定不超过原来那一笔」。
前端跟上两种结果:重算成功了说一声「数量已按试探仓重算:1200 股 → 400 股」,
重算不成的把原因摆在卡上。两道页面守卫通过。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-10 13:42:39 +08:00
zlt
d30440edb2
提议卡重排:要紧的放前面,证据收进展开,并标出「建议档位」与「实下股数」不一致
...
一、重排。原先一张卡一口气铺十六行,实测二十七八个可视行,大半是「暂无」
「近三天没点名」这类占位句,要人在一屏读不完的文字里自己找哪条要紧。
现在按「决定要不要点采纳所必需」分两层:
卡面留——这一笔买多少股多少钱占总规模几成、建议档位、选股系统判决、
决策系统结论(截到 60 字)、公司深度(真有报告才占一行)、为什么选它。
展开里收——研报、安全边际、催化事件、定价状态、相关快讯、行业催化、
判决收敛、建议方案整句、择时层两个期限、候选榜信息、决策系统原话。
「这一笔买多少」原先排在第十四行,而它才是采纳按钮真正会执行的东西,提到第一行。
二、删掉重复行。propBasis 与 propVerdictLine 在判决为「候选」或「仅展示」时
读的是同一个 hard_numbers.basis,逐字相同,模板里又挨着摆两行,于是卡上出现
两行一模一样的话。今天 77 只票里 38 只判候选,每一只出提议都重复一次。
删 propBasis,留 09-04 专门写的收口函数 propVerdictLine。
三、「为什么选它」第一次上卡。propReasons 这个函数写好之后模板里一直没引用过
(grep 只有定义与导出两处),而这恰恰是人做决定最先要看的。顺带不再只取前两条。
四、【要紧】新增一行红字,标出建议档位与实下股数不一致。
研判把握度低或不可用时,advice_service.apply_judge 把档位降成「试探仓」、
把 advice.target_pct 改成 1%,但它明确不改数量(函数说明原文「不改数量,
数量交人」),而页面上采纳按钮没有填数量的地方,这个「交人」无处兑现——
采纳时后端直接抄提议里的 qty 原样落单(web/main.py:485,只有卖出侧会重算)。
155 实测 8 张待确认提议,7 张写着「试探仓(目标 1.0%)」,而每一张实际都会
买 3.00%(标准仓 6% 的第一批),正好三倍:
002812.SZ 1200股×48.55 实占 3.00% 建议 1% 算量用 6%
300604.SZ 200股×264.81 实占 3.00% 建议 1% 算量用 6%
300638.SZ 3300股×18.11 实占 3.05% 建议 1% 算量用 6%
301525.SZ 1600股×37.37 实占 3.00% 建议 1% 算量用 6%
688698.SH 1400股×41.49 实占 3.00% 建议 1% 算量用 6%
605598.SH 2300股×25.24 实占 3.07% 建议 1% 算量用 6%
688556.SH 7300股×8.11 实占 3.02% 建议 1% 算量用 6%
只有 300118.SZ(标准仓)是自洽的。
根子上的修法是让数量跟着档位重算,那会改变每一笔采纳真正发出去的钱,
还要一并处理「1% 在高价票上凑不满一手」与「pms_position.target_pct 从未写过、
试探仓建的仓日后会被按 6% 补满」两件事,所以单独拍板、本次不做。
在那之前先把矛盾摆到人眼前——让人看错数字下单,比让页面难看严重得多。
判定用的键一个都没动,只动 DOM 与显示函数。两道页面守卫通过。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-10 13:00:03 +08:00
zlt
9359056d04
修页面白屏:十一个显示函数没交给模板,并加一道接线守卫
...
现象。持仓管理系统页面整页白屏,控制台只有一句
propVerdictLine is not a function。
根因。这批函数在 setup() 里定义好了、模板里也在用,但没有写进 setup()
末尾那份 return 清单,模板拿到的是 undefined,当函数调用就抛异常、整棵
组件树渲染失败。一共漏了十一个:propVerdictLine、propBasis、propLogic、
propLogicMore、propText、propHeads、hardCn、opCn、paramsCn、dropCn、
plainCheck,全部出自 2026-09-04 的 bcf5783 那批文案改造。
为什么隔了六天才炸。这几行都挂着 v-if,条件是「这条提议带选股判决」。
平时提议队列是空的、条件不成立,函数一次都不会被调用。09-10 早上队列里
出现八条新建仓提议(09:32 到 09:52,全是 WAIT_USER),第一次真的调到它。
修法。把十一个名字补进 return 清单。页面走 FileResponse 每次读盘,
155 是源码挂载,所以 git pull 之后浏览器强刷即生效,不用重启容器。
守卫。新增 scripts/test_page_wiring_guard.py,查两件事:模板引用了、
setup 里定义了、却没 return 的名字;以及 return 清单里写了、setup 里
找不到的名字。不用维护名单,从文件本身推。已在把修复回退的副本上验过,
报满十一处、退出码 1。已登记进 run_tests.py 的 SUITES 与清单说明。
index.html 二十七万字节、没有任何单测,原有的 test_page_enum_guard.py
守的是文案有没有翻译,守不到接线,所以要单独这一道。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-10 11:06:39 +08:00
zlt
4455002a4a
交接文档 2026-09-10:当前状态、待办重启、上线顺序、两个容易再踩的坑
...
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-10 09:50:55 +08:00
zlt
e30b333a1c
pms-ws 启动横幅与联调面板改读运行参数表, 与运行逻辑同源
...
pms-ws 的启动横幅原来直接读 settings (.env 层) 的 PMS_QMT_WS_ENABLED 与
PMS_QMT_WS_URL, 而进程实际的启停与端点由运行参数表 pms_runtime_param 决定。
两个源不一致时横幅就说反话: 参数表里通道开着, 横幅却打「未启用 (空转)」,
下一行紧接着就是握手成功、ONLINE、心跳、每 5 分钟拉快照。
改成与 _refresh_params 同一个取值源 (param_store 优先, 读不到退回 .env 初值,
并明说这行是初值)。同批把 ws_smoke.py status 面板的端点显示一并对齐 ——
同一类误导, 排错时最先看的就是它。
只改日志与取值源, 不碰连接、握手与下发逻辑。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 16:10:39 +08:00
zlt
4e8e2e4ac4
台账 001 到 005 与落地记录(含上线前试算读数)
...
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 15:36:33 +08:00
zlt
11fbc36119
候选池发布给择时决策系统(台账 004)
...
只写代码列表到共享 Redis 的 pms:candidates 键,择时侧的盘中强势扫描拿它当覆盖面。
走 Redis 不走接口:两侧本来就连着同一台盘中库,不新增网络方向、不涉及鉴权;失败模式
也良性,键没了就是那边本轮不扫,绝不回退全市场。写失败只记日志,不影响本轮扫描。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 15:30:35 +08:00