Commit Graph

14 Commits

Author SHA1 Message Date
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 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 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 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 fbbdbb3b54 计划装配里风险名单只读一次:候选卡与升降档原因共用同一份
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-02 17:14:54 +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
zlt 357250b411 不在十条赛道内被挡出的,标"赛道闸外";凭赛道成员身份进观察档的,标"赛道锚生效";真正触 ST 闸的才标"风险闸" 2026-07-31 09:39:24 +08:00
zlt 235731855b 原六个加脑机接口、氢能、深海科技、固态电池;太空光伏收进商业航空航天 2026-07-31 09:20:44 +08:00
zlt 37f7ace34b 计划 API:桥容器常驻改 uvicorn(:8300),GET /plan 取每日选股计划;
plan.py 拆装配/渲染两层供 API 与 cron 共用;requirements 加 fastapi/uvicorn
2026-07-30 14:09:02 +08:00
zlt 459028231c 去除免责声明 2026-07-30 13:02:43 +08:00
zlt dc201905f6 plan v2: 每主题限额(默认5, 防单板块刷屏) + 预期空间列现算兜底
(当日 upside 表在 18:40 建表时行情未到、常为空——读表改为空则现算)
2026-07-30 12:55:24 +08:00
zlt 83f2b1409f R4: run.py plan 每日选股计划首版 + score 档位步长修正(10→20)
步长 10 小于组内分全幅 19.8,档间会穿插、词典序破功;已写入的
07-29 score 表需重 build 覆盖。另修体检报表主题命中计数(去重前算)。
2026-07-30 12:44:56 +08:00