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 会传入读过一次的名单;单独调用时自己读