zlt
|
29fef46609
|
台账 049:三件代码活落地;交接 09-08 版本表与主线进度更新
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-09-08 13:39:43 +08:00 |
zlt
|
338558e03a
|
复盘周报固定动作入口:run.py plan-review 滚动窗口、调度步骤 plan-review、单测
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-09-08 13:24:20 +08:00 |
zlt
|
216aede701
|
台账 048:整链核对与开发完成判定;交接_2026-09-08 当前进度总汇
|
2026-09-08 12:58:17 +08:00 |
zlt
|
1d76b902d6
|
台账 047 补记启用与两只票读数;交接与方案同步
|
2026-09-08 12:43:36 +08:00 |
zlt
|
20af8bf195
|
台账 047:量价研判链 3.3 与 3.5 编码完成,待启用
|
2026-09-08 12:31:09 +08:00 |
zlt
|
2c0ad41963
|
方案进度:量价研判链 3.4 上线读数
|
2026-09-08 11:45:56 +08:00 |
zlt
|
1f7d0d8f22
|
台账 046:量价研判链 3.4 上线;方案进度
|
2026-09-08 11:43:50 +08:00 |
zlt
|
1fc874b313
|
量价研判链 3.4:催化事件、事件日字段与定价状态、周报分组(只展示不进判决)
sources:analyst_reports / analyst_events 从券商研报明细表算四类正向事件(深度覆盖前 365 天无覆盖且买入类、
同机构同预测期 180 天内上调五成、标题含超预期、同日合并为复合),窗口 60 天;price_history 分两段读前复权
行情(无事件 35 天、有事件 100 天);event_day_fields 算事件前 5/20 日涨幅、跳空、日内、收盘位置、量比、涨停。
card:pricing_state 按四情形归类(价格发现、趋势延续、高位兑现、震荡消化),阈值一次定死;两类整句与短写法。
plan:候选卡带 events / pricing_state 与整句,候选单表格加两列并附口径说明。
plan_review:分组读数加"定价状态"与"催化事件"两类,另出定价状态多空差一段。
测试:新建 test_events_pricing.py;09-04 实机:档位表 1,210 只里 102 只有事件,定价状态分布
震荡消化 1,146、高位兑现 33、价格发现 16、趋势延续 15;计划装配 30 秒。
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-09-08 11:40:51 +08:00 |
zlt
|
7cf47d050a
|
台账 045:批准量价研判链吸收方案
|
2026-09-08 11:26:13 +08:00 |
zlt
|
dbe5c92231
|
量价研判链吸收方案(2026-09-08,已批准)
|
2026-09-08 11:24:42 +08:00 |
zlt
|
1918cf7e82
|
台账 044 补记接口第三次重启与整链实测;交接同步
|
2026-09-07 16:42:42 +08:00 |
zlt
|
7dedda0567
|
台账 044:两条拍板;方案四处自动止损定性改写;交接同步
|
2026-09-07 16:38:21 +08:00 |
zlt
|
ab09154594
|
接口 /logic_state 随状态回安全边际三情景(持仓页参考目标价用;算失败不拖垮状态查询)
|
2026-09-07 16:35:29 +08:00 |
zlt
|
f913b84446
|
台账 043:一致性检查表十三行核完;交接 5.2 改为结论表;方案第五件进度
|
2026-09-07 16:15:22 +08:00 |
zlt
|
a6bbd6d17d
|
台账 042 补记两处尾巴已收;交接同步
|
2026-09-07 15:57:57 +08:00 |
zlt
|
8e23395858
|
台账 042:第四件上线;方案与交接同步
|
2026-09-07 15:50:18 +08:00 |
zlt
|
e00b38e36b
|
第四件:安全边际三情景,只展示不进判决
sources:券商研报原始行取一次(broker_reports,带市盈率列),券商行动改用共用分箱
(行为不变,单测钉住);新增 scenarios(悲观=最低每股收益×最低市盈率、中性=两项中位数、
乐观=两项最高,隐含市盈率、赔率、机构分歧标注)、valuation_scenarios(优先年度预测期、
同机构只留最近)、close_prices(与预期空间同源的前复权收盘价,左闭右开区间)。
card:valuation_view 整句与 valuation_short 短写法,四种不适用与两种赔率不成立各一句人话。
plan:候选卡带 valuation 原值与整句,候选单表格加一列并附口径说明。
测试:新建 test_valuation.py,恩捷手算对表(悲观 42.64、中性 56.75、乐观 84.96、隐含 21.4、赔率 0.87)。
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-09-07 15:48:27 +08:00 |
zlt
|
54607015f9
|
台账 041 补记接口容器重启与整链接通实测
|
2026-09-07 14:48:13 +08:00 |
zlt
|
a7c7a62c73
|
台账 040、041:第三件桥侧与 PMS 侧上线;方案与交接同步进度
|
2026-09-07 14:44:49 +08:00 |
zlt
|
faede9ab68
|
第三件桥侧前置:逐票日频逻辑状态表(抗抖动)与按代码查询接口
新模块 logic_state_daily.py:每个数据日为档位表里的每只票记一行原始态与落定态,
落定走 logic_state.settle(进入存疑即刻成立、退出要连续三天、其余迁移要连续两天),
只在 plan.generate 里写、/plan 实时重算只读;同日重跑幂等。
plan.py:四路取数抽成 _logic_inputs(计划装配与接口现算共用一处);卡上的 state 改为
落定态,另发 raw_state、settle_note、prev_state;新增 logic_states_for 给接口现算。
api.py:GET /logic_state?codes=…,优先回当日表行(source=daily),不在表里的按此刻
现算并按历史落定(source=computed)。config 加表名与三个天数。
单测:新建 test_logic_state_daily.py(落定口径、读不到不断产、幂等落库、往返形状),
test_plan_logic_state.py 加落定态发出两例;十个测试文件在 155 容器隔离副本全绿。
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-09-07 14:21:42 +08:00 |
zlt
|
b2ebf6d368
|
台账 039:第二件上线
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-09-07 12:05:18 +08:00 |
zlt
|
857e642c19
|
第二件选股侧:启动线关着时理由行不再写当日涨幅
09-04 关闭启动线后理由行写成"当日涨幅 x%(启动线已关闭,不作门槛)"。理由行在 PMS 送
研判的白名单里,择时决策系统的模型能直接读到这句选股层的政策旁白——它回答"启动线关闭、
价格处高位滞涨区"就是被牵着走的结果,等于选股层在替择时层判时点。
现在启动线关着时理由行不提当日涨幅,涨幅只留在候选卡的信息子字典里给人看,不当理由、
也不送研判。守卫用例改为钉住"理由行里没有启动线与当日字样"。
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-09-07 11:59:42 +08:00 |
zlt
|
a568f001cb
|
台账 038:第零件丙组上线,第零件收官
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-09-07 11:44:22 +08:00 |
zlt
|
33d8292c0a
|
第零件丙组:四态的三处输入缺陷
独立审查(09-07)第 8、9、10 条,不修的话第三件一接入就是分流错。
一,甲路只喂了展示用的三条论断。跨期翻转与同期分歧都在三条上算,"之前的论断"最多
两条,翻转两头都会判错:历史八空两好加最新一空,全量判无法判断、三条判逻辑存疑;
历史五好近三空则反过来。现在全量取一次(上限由新配置项 LOGIC_CLAIMS_FULL 定,
默认 200,与覆盖率读数脚本同口径),展示从里面切前三条。
二,乙路的硬触发只维持一个计划日。迁移只在指纹变化那天记 migrated=1,次日归零,
而采信倾向仍偏空并未回稳,存疑却自动解除。加一份每簇近几个计划日的历史(一次查询
取全部簇,不逐簇查),规则是近 N 日内出现过偏多到偏空的迁移且此后一直偏空,硬触发
就仍成立;倾向一离开偏空立刻作废。N 取 5(新配置项 JUDGEMENT_HOLD_DAYS)。
三,落在法定假日的快照会吞掉硬触发。快照按工作日投递、plan_date 取当天,假日那行
夹在两个数据日之间,节后计划读到的是与假日行比对得到的 migrated=0。加交易日守卫:
今天不是交易日就不落行。日历读不到时不拦,不让守卫本身成为断产点。
测试:四态模块加五例,快照模块加八例,计划装配加三例。
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-09-07 11:42:40 +08:00 |
zlt
|
d0dc6cdcf2
|
台账 037:第零件乙组上线
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-09-07 11:31:08 +08:00 |
zlt
|
46aaa94060
|
台账 036:第零件甲组上线
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-09-07 11:24:06 +08:00 |
zlt
|
e68103823f
|
下一阶段工作方案落档;台账 035 记批准、拍板与审查结论
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-09-07 11:06:13 +08:00 |
zlt
|
145c75e127
|
交接:随 5.1 更正过期的三处字句
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-09-07 09:41:39 +08:00 |
zlt
|
ad4b255a54
|
台账 034 与交接 5.1 更正:快照没断,错在我;记周末持仓被对账清零
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-09-07 09:40:42 +08:00 |
zlt
|
05c5e2f889
|
读上一版快照改为取全部列并归一空值
这个函数 2026-09-07 起也给计划装配用,要按环节名索引、再读采信倾向与自我校验。
原先只取算迁移用的五列,环节名是空的,按环节索引必然为空,产业研判这一路整个缺席。
上一处修改(读 ds 当天或之前的最近一版)方向对了,但被这一层挡住,周一计划里可用数
仍为零。
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-09-07 09:33:40 +08:00 |
zlt
|
fcd1f547f6
|
计划读快照改为"数据日当天或之前最近一版",修掉一个把手工时序写进代码的错
快照在交易日 D 晚上写、plan_date 记 D;计划在 D+1 凌晨构建、数据日是 D。原先读的是
D+1,永远对不上。09-04 能对上只因为那天上午手工跑过一次快照。周一起产业研判这一路
可用数变成零,台账 033 把它记成"快照断了、要查调度中心"——调度中心其实一直按时在跑,
错在这里。
改成 load_previous(D+1),即 plan_date 不晚于 D 的每簇最新一行。顺带扛得住某个晚上没跑:
退回上一版,陈旧天数照常累加。
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-09-07 09:30:16 +08:00 |
zlt
|
5d727ae61a
|
交接文档落档,台账第 033 条:费用估算更正与快照断裂
交接文档覆盖 09-03 方案批准到 09-07 上午这一段:做完的六件事、费用的实际口径、
上线状态、踩过的五个坑、接手第一件要处理的三处、以及四条实跑验过的验证命令。
台账 033 记三件 09-07 新查到的事:
一是更正 09-04 的费用估算。周五定时投的 24 个环节全部指纹跳过、一个都没重跑,
而当时估的是每天约 59 万 token。原因是封顶挪到了指纹之前,新事件多数落在
进模型的前 44 条之外。
二是行业观点快照断了,只有两天的记录,导致产业研判这一路在周一的计划里可用数为 0。
三是论断质量标注已随周一的计划生效。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-07 09:04:04 +08:00 |
zlt
|
655cef79df
|
台账 032 更正:旁批实跑通过,此前报的环节图建不出来是我查错了
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-04 16:40:54 +08:00 |
zlt
|
4895148b2e
|
台账第 032 条:旁批的产业理由与三处输出额度
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-04 15:42:43 +08:00 |
zlt
|
652ba2dd60
|
翻译表按清点结果补齐;修一处守卫自己的错
枚举清点扫全了后端会送到页面的字段,结果比先前的清单彻底得多。
**先修守卫自己的错**:它把字段名 autonomy 一律映射到全局参数那一组,而个股交易
方案的 autonomy 是另一套取值(auto / confirm,对全局的 full / propose_only / off)。
字段同名但不是一回事,照它整改会接错组。改成按"字段在哪个对象上"区分。
翻译表补十组、扩四组,出处都核到了代码定义不是注释:
- 动作那组原先只有八个真动作,账本里还有八个伪动作(对账修正、信号留痕这类)
是直写的字面量,少一个就在页面上露原码。挂方案那条用了中性词——想挂但放弃的
三处调用也以同一个值落库,写成"挂成功"会说反。
- 方向那组缺 none。停手那类动作真实产出这个值,此前会印成原码。
- 评审账本的结论与研判闸的结论是两组,别混:前者记"这一步放行还是驳回",
后者记"决策系统怎么说"。
- 三个字段的取值是开放集(对端下发的拒单码、上游透传的等级、决策系统给的中文
原文),不许声称全集也不许吞掉原值,在守卫里单独登记一笔免得以后被当成漏网。
周报的加权列还漏一个:excess_w 去掉后缀是 excess,而本体列叫 excess_all,
按后缀规则查不到。补一条对应。翻不出来的原样返回,宁可露出原名让人发现,
也好过安一个错的说法。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-04 15:17:05 +08:00 |
zlt
|
3a06f1224e
|
台账第 031 条:文案第四批与周报的一处事实改正
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-04 15:13:17 +08:00 |
zlt
|
0bf29287a1
|
文案第四批:计划的环境标签与周报的表头、导读、口径栏
环境标签那行原先印出「环境标签:UNKNOWN,弱势指数 None/8」。三处毛病:UNKNOWN 是
枚举值;8 是硬写的分母,而快照里其实带着真实的指数总数;None 是取不到时的空值。
改成三种情况分开写,并补上一句此前没说的要紧话——这个标签不影响任何一只票买不买,
只在事后复盘时用来分组。不写的话,看到「弱势日」会以为下面的名单被压过一轮。
周报整张表的表头都是英文字段名。翻译放在渲染函数里,每张表都受益。有三处不能想当然
地译:比全池多涨几个点与跑赢全池的占比都跟全池比,但一个是收益差、一个是只数比例,
译成同一个说法会在同一张表里紧挨着撞车;往后看几个交易日不能译成持有天数,脚本开头
反复写明不建仓、不计成本、不是回测。
导读段落原先按英文列名写,表头一改就指向不存在的列,而且里面有一处事实错误:写着
样本纪律三档,代码里只有两档。一并重写并改正。
自评与账本那两栏的口径说明里有库表名与枚举值。改成说清算法本身,特别是"为什么这个
数不能和上一行直接比大小"——那正是并列这两行时最容易读错的地方。
两处会把数据库异常原文印进周报的,改成只进运行日志。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-04 15:00:54 +08:00 |
zlt
|
7651dbc815
|
台账第 030 条:文案三批上线,以及 exec 打到孤儿容器的发现
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-04 14:51:33 +08:00 |
zlt
|
0a70082405
|
候选卡文案第一批:预期空间、传导那句话、论断出处、ST 门槛
四条都出自 09-04 的文案扫描,这四个字段被 PMS 原样显示给人读。
一,预期空间原先写「券商预期空间 -5%,低于 +0% 的容忍线」。两处毛病:默认配置下
容忍线就是 0,说「低于 0% 的容忍线」等于没说;两个数一个带正号一个带负号、方向
相反,人要在脑子里翻一次才比得了大小。改成同向同单位:「券商给的目标价比现价低
5%,目标价低于现价的不买」。两处同源的写法抽成一个函数,口径不再分叉。
二,传导那句原先写「所在环节「减速器」被 4 路指向」。「被 4 路指向」不是人话。
改成「这只票在「减速器」环节,今天有 4 个上游来源传导到这个环节」。
三,论断出处原先在行尾挂一个 36 位的内部编号,占掉半行且对读的人没有任何信息。
去掉它,换成距今多少天——旧不旧交给人自己判。追溯用的编号仍在论断原值里,
计划的那一支照旧带着。
四,ST 那道门槛没有对应文案,掉进兜底后页面上会出现「门槛 clean_name 未过」。
补专属文案,并把兜底改写成「还有一条买入条件没通过,暂时没写对应的说明(内部代号
xxx)」——内部代号退到括号里,句子主干永远是中文。
守卫扩到四个人话字段(判决依据、理由、缺失、风险),此前只管住判决依据一个。
另加一条:每句话至少六个字,半句话的电报体也算不合格。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-04 13:17:54 +08:00 |
zlt
|
5de97173d1
|
台账第 029 条:环节评析进定时,产业研判链路打通
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-04 13:09:21 +08:00 |
zlt
|
c366571c82
|
台账第 028 条:四态接进计划装配,并更正两处日期与视图口径
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-04 11:49:02 +08:00 |
zlt
|
5425dc6cf7
|
逻辑状态四态接进计划装配,结论随每张卡发给下游
此前四态只是一个纯函数模块,结论躺在库里没人读。这次接上:
计划装配时每只票算一次四态,三路输入分别是研报论断(已有)、产业研判(读行业观点
快照,按环节名对上今日被指向的环节)、券商行动(同财年同预测期的每股收益预测中位数
与覆盖机构数,两个等长窗口比较)。公司事件那一路无数据源,恒出缺失,但照样记名——
缺失要让人看得见系统缺的是什么,不能让人以为系统判过了。
两处取数搬进公用的地方,免得读数脚本和计划各写一套:行业观点快照的当日读取进
judgement.py,券商行动进 sources.py。读数脚本改调它们,自己那两份删掉。
修了一处日期口径错误:行业观点快照按计划日落库,行情与论断按数据日取,两者在生产里
差一天。原先用同一个日期取三样东西,结果是快照首日读到空。
另修一处:读数脚本原先只读含已启动成员的窄传导视图,而候选卡认的是完整那张,
算出来的产业研判覆盖比卡上真实看到的低。两边现在同一口径。
接口每行新增逻辑状态:状态、子因、每路的来龙去脉与截止日。不发权重、不发判决改动——
四态怎么作用于建仓通道是 PMS 那边的事,这里只提供状态与出处。内部中间量不外泄。
测试十七例,重点钉住四态不改判决:四个状态乘三个判决十二种组合逐个扫过,判决一次
都没被动过。这是收敛规则单调性的守卫。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-04 11:46:01 +08:00 |
zlt
|
f53bcc9973
|
读数脚本改用完整传导视图,与候选卡一致
候选卡判「所在环节被指向」时认的是两张视图取或,读数脚本原先只读了含已启动成员
的那张窄视图,算出来的乙路覆盖比卡上真实看到的低。一只票挂多个环节时取第一个
评析过的那个。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-04 11:42:03 +08:00 |
zlt
|
25724003d1
|
读数脚本分开数据日与计划日
行业观点快照按计划日落库,行情与论断按数据日取,两者在生产里差一天。
原先用同一个日期取三样东西,结果是要么读不到当天快照、要么读不到行情。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-04 11:40:56 +08:00 |
zlt
|
5e72282e8d
|
台账第 027 条:环节评析首跑与推理型模型的额度坑
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-04 11:35:58 +08:00 |
zlt
|
49e423e0de
|
台账第 026 条:关闭启动涨幅线的实测对照,以及计划接口的真实耗时
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-04 10:58:48 +08:00 |
zlt
|
de7f83d18d
|
启动涨幅线做成整条开关,2026-09-04 按拍板关闭
原先只有一个阈值 CARD_START_PCT,想不要这条门槛只能把它调成一个很小的负数。那是绕法,
不是关闭:没有当日行情的票仍然会被拦下,而关掉门槛的本意是这一条根本不参与判断。
新增 CARD_REQUIRE_STARTED,置 0 即整条不参与。关掉后:涨跌多少都不拦,没有行情也不拦,
理由行改写成「当日涨幅 -3.2%(启动线已关闭,不作门槛)」——涨跌仍是人要看的信息,
只是不再当作一条通过的理由。
这条门槛回答的不是这只票好不好,是今天是不是买点:只在票已经动起来的当天买,不猜底。
关掉它等于改成左侧买入,好处是研究结论成立的当天就能进场,代价是要承受不确定的等待,
候选数会明显变多。09-04 关之前的实测:当日 83 只强传导票全部落到仅展示,绝大多数就
卡在这一条上。
九条用例钉住关掉后的行为,重点是不许顺带放松别的门槛:传导、覆盖、吸筹确认线、
硬风险四道都仍然照拦,判断不了的仍归关注。另有一条钉住默认值仍是开着的——改口径
要靠配置,不靠默认值悄悄变。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-04 10:49:30 +08:00 |
zlt
|
29621432f5
|
给人看的文字里不再出现代码名
页面上出现过「选股系统判为仅展示,不出提议:门槛未过:started」。started 是门槛在
代码里的变量名,SELL 是决策系统的枚举值,两者都只该在系统之间传递,不该印到页面上。
而且整句话没有说清到底为什么不买。
判决依据、缺失项、风险这三个字段会被 PMS 原样显示给人读,这次全部改写成完整的中文
句子,并且带上具体数字。举例:原先写「门槛未过:started」,现在写「当日涨幅 -3.2%,
没到 3% 的启动线」——后者能让人自己判断差多少。原先写「决策系统昨夜信号 SELL」,
现在写「择时决策系统昨夜给出卖出信号」。
同时删掉几处解释设计规则的话,例如「不升格关注,归仅展示」。那是给写代码的人看的
规则说明,不是给读页面的人看的原因。
新增一条守卫用例:造十五种情形,逐个检查这三个字段里一个代码名都没有,且判决依据
不许短到说不清原因。以后再往文案里写代码名,这条会当场失败。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-04 10:26:37 +08:00 |
zlt
|
99b845eb30
|
研判视图:双冒号的环节簇键单独取名
2026-09-04 起数据基座按投影环节做评析,簇键是 Segment:: 双冒号,与逐条论断
聚簇出来的单冒号 Segment: 分开——后者是研报里的自由短语,在投影里未必查得到
这个环节。双冒号那一支必须写在前面,否则会截出一个多余的冒号。
判定 scope 的那一句不用改:双冒号同样满足单冒号的前缀匹配,两者都归 segment。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-04 10:17:16 +08:00 |
zlt
|
84349172e1
|
台账第 025 条:PMS 研究理由两键上线,更正下发模式的记载
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-04 09:34:18 +08:00 |