Commit Graph

14 Commits

Author SHA1 Message Date
zlt 548990180d 取论断的查询补确定排序:计划本该是可复现的
原来这条查询没有 ORDER BY,而它的文档串写着「每票取最近披露日的最多三条」——
代码却按数据库返回的天然顺序截前几条。没有排序时那个顺序不保证,于是同一个数据日、
同一份代码,相隔三十二秒的两次装配,候选卡与逻辑线有五处不一样。

实测证据:连续两次 collect,main.card 差 5 处、main.logic 差 5 处、card_rank 差 20 处、
顶层的候选单与关注名单也不一样。计划因此不可复现,下游也不知道自己拿的是哪一份。

按票、披露日倒序、论断编号三级排序。编号做次级排序是因为光按披露日排,同一天的多条
之间仍然没有定序。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-10 09:36:53 +08:00
zlt 3a94f5b4b7 公司深度取数:空列 NaN 收成 None,运行日晚于数据日算零天
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 12:30:02 +08:00
zlt 296fc96909 公司质地接入:公司深度取数、逻辑状态第五路、判决收敛只降不升、卡与计划两键、候选单表列、复盘分组、逐票接口回两键、单测(台账 053)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 12:05:03 +08:00
zlt 81a50734d2 行业催化:按票所在环节读基座 segment_catalysts,卡上整句与复盘分组,只展示不进判决(台账 051)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-08 15:21:10 +08:00
zlt 69b25b629a 相关快讯:财联社电报点名条目进候选卡与实时计划,只当上下文不进判决(台账 050)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-08 14:07:05 +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 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 5425dc6cf7 逻辑状态四态接进计划装配,结论随每张卡发给下游
此前四态只是一个纯函数模块,结论躺在库里没人读。这次接上:

计划装配时每只票算一次四态,三路输入分别是研报论断(已有)、产业研判(读行业观点
快照,按环节名对上今日被指向的环节)、券商行动(同财年同预测期的每股收益预测中位数
与覆盖机构数,两个等长窗口比较)。公司事件那一路无数据源,恒出缺失,但照样记名——
缺失要让人看得见系统缺的是什么,不能让人以为系统判过了。

两处取数搬进公用的地方,免得读数脚本和计划各写一套:行业观点快照的当日读取进
judgement.py,券商行动进 sources.py。读数脚本改调它们,自己那两份删掉。

修了一处日期口径错误:行业观点快照按计划日落库,行情与论断按数据日取,两者在生产里
差一天。原先用同一个日期取三样东西,结果是快照首日读到空。

另修一处:读数脚本原先只读含已启动成员的窄传导视图,而候选卡认的是完整那张,
算出来的产业研判覆盖比卡上真实看到的低。两边现在同一口径。

接口每行新增逻辑状态:状态、子因、每路的来龙去脉与截止日。不发权重、不发判决改动——
四态怎么作用于建仓通道是 PMS 那边的事,这里只提供状态与出处。内部中间量不外泄。

测试十七例,重点钉住四态不改判决:四个状态乘三个判决十二种组合逐个扫过,判决一次
都没被动过。这是收敛规则单调性的守卫。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-04 11:46:01 +08:00
zlt 3fb25fe1ad 候选卡加论断质量标注:陈旧度、来源集中、疑似误抽、未结分歧
这四项都只在卡上提示,不参与三门槛判决。

起因是同一张卡上的双标:吸筹评分超过三十个交易日就判陈旧,而研报论断此前
只有"披露日不晚于数据日"这一个上界,永不过期。09-03 实测 442 只带论断的票,
论断披露日中位 05-05,超过 90 天的 166 只(37.6%),超过一年的 22 只——这些
论断会原样打印成理由,读的人看不出它已经很旧了。

另外三项同样来自当日实测:267 只票带多条论断,其中 77 只(29%)的论断全部
出自同一份研报,那份研报一旦过时或本身有偏,这票的整条研究证据一起失效;
213 条被逻辑评析标为疑似误抽;未结的方向分歧当日是 0 条但视图里有这一列。

改动三处:
- sources.py 多取 disputed 与 review_flag 两列,并在按票截断之前算质量画像。
  必须在截断前算——截断后只剩最近三条,"这票一共几份来源"就统计不出来了。
- card.py 把画像转成缺失项里的提示文字,另出一个 logic_quality 键供下游用。
- config.py 加陈旧线 LOGIC_STALE_DAYS,默认 90 天,写明与吸筹日龄上限的可比关系。

测试:候选卡 14 例、取数层 9 例,本地全套通过(test_xxl_trigger 缺 fastapi 是
本机环境所致,与本次改动无关)。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-04 08:59:11 +08:00
zlt 12cdb51180 选股系统:日频行业观点快照与覆盖率读数
行业观点快照:产业研判在数据基座里按主题整行覆盖、没有版本史,所以由读的一方每个计划日抄一行存下来。只有材料指纹变化才算一次方向迁移,指纹没变而日期变老只累加陈旧天数。表落在平台因子库(对数据基座只有只读账号),首次运行自动建表,同日重跑覆盖当日行。新增子命令与可选的每日构建步骤,不进默认三步。
覆盖率读数:只读脚本,回答产业研判这一路能覆盖多少票、主题名与环节名有多少能逐字对上、因果论断的覆盖与披露日分布。用来决定这一路接多大面。
测试:新增六个测点全过,仓库其余离线测试照常通过。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-03 16:07:02 +08:00
zlt 3a4e0d90fc 修正两市成交额单位:指数日线的成交额是千元不是元,换算成亿元要除以十万;渲染改用换算好的字段,单位断言写进测试
实测核对:09-02 两市合计 1,321,831,143,真实成交额约 1.32 万亿元。改前显示 13 亿,差一千倍。融资余额那张表的单位是元,沿用原换算。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-03 11:46:46 +08:00
zlt 8978b9dfe5 选股系统接通分析结论:候选卡读因果论断作证据线、关注判决细化为系统无法判断、计划环境段加市场四项、入池上下文补证据字段、复盘加四份名单与三套对照台账对表两节
判决定义按台账 013:关注只保留三门槛全过无硬风险但确认线缺失或陈旧;只差覆盖与潜在吸筹归仅展示。人工裁决说明同步修订。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-03 11:44:16 +08:00
zlt cb819198ea 复盘对账后两处口径修正:结论表只取不晚于数据日的最新行(历史重建防前视);复盘名单加观察档等权;关注环节表补未动环节的成员数与领涨者(不限档位表内)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-02 16:53:13 +08:00
zlt f09b087228 候选卡上线第一批:计划装配联入判决与证据线、当日 JSON 快照带版本戳、候选单与关注环节两节;接口顶层加 generated_at/plan_version/regime/snapshot 与访问日志(主榜观察档装配排序裁剪不动);取数层 sources.py;环境标签 regime.py 只展示分组;调度加 regime-append 步骤;入池加来源标记、切片与候选优先开关(默认关);方案文档同步
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-02 16:39:52 +08:00