From fcd1f547f6bd080866fd1f9ed524e625eb501814 Mon Sep 17 00:00:00 2001 From: zlt Date: Mon, 7 Sep 2026 09:30:16 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A1=E5=88=92=E8=AF=BB=E5=BF=AB=E7=85=A7?= =?UTF-8?q?=E6=94=B9=E4=B8=BA"=E6=95=B0=E6=8D=AE=E6=97=A5=E5=BD=93?= =?UTF-8?q?=E5=A4=A9=E6=88=96=E4=B9=8B=E5=89=8D=E6=9C=80=E8=BF=91=E4=B8=80?= =?UTF-8?q?=E7=89=88"=EF=BC=8C=E4=BF=AE=E6=8E=89=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E6=8A=8A=E6=89=8B=E5=B7=A5=E6=97=B6=E5=BA=8F=E5=86=99=E8=BF=9B?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=9A=84=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 快照在交易日 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 --- plan.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/plan.py b/plan.py index 6f44689..1dce725 100644 --- a/plan.py +++ b/plan.py @@ -216,8 +216,13 @@ def _assemble_cards(ds: str, codes: list, ev: dict, upside: pd.Series, # 这三路都是"研究证据还在不在"的跟踪,与候选卡的三门槛判决是正交的两维: # 判决回答今天要不要买,四态回答支撑它的研究证据还在不在。收敛规则在 # logic_state.apply_to_card,是单调的——强化只能提前卡内序、永远不升判决。 - plan_day = _next_day(ds) - seg_view = judgement.by_segment_name(judgement.snapshot_of(plan_day)) + # 行业观点快照在交易日 D 的晚上 20:40 写,plan_date 记的是 D;计划在 D+1 凌晨构建, + # 数据日 ds 就是 D。所以要读的是 plan_date 不晚于 ds 的最近一版,不是 ds+1。 + # 09-04 之前这里读的是 ds+1,能对上只因为那天上午手工跑过一次快照——把一次手工操作 + # 的时序写进了代码,到周一就全部落空(台账 033 记的"快照断了"其实是这个错, + # 调度中心一直在按时跑)。load_previous(D+1) 取的正是 plan_date <= D 的每簇最新一行, + # 顺带也扛得住某个晚上没跑:会退回上一版,陈旧天数照常累加。 + seg_view = judgement.by_segment_name(judgement.load_previous(_next_day(ds))) broker = sources.broker_actions(codes, ds) seg_of = _segments_of(ds) if risk is None: # collect 会传入读过一次的名单;单独调用时自己读