程序员量化交易实战 31:给每日任务加运行时间窗 第 30 篇生成了每日运行健康报告。系统已经能告诉我们一次模拟盘运行是健康、警告还是阻断。第 31 篇开始处理另一个生产化问题:任务不能什么时候想跑就跑。模拟盘日报如果在行情没收完、复权没更新、人工还没确认的时候运行,结果再漂亮也不可信。时间窗解决什么定时任务最怕两种错误。一种是晚了不跑,日报缺一天。另一种是早了乱跑,拿着半截数据生成建议。第 31 章不直接接 cron,也不绑定具体调度平台,只抽一个小对象:给定当前时间和允许运行窗口,判断现在能不能跑;如果不能跑,告诉调用方下一次窗口从什么时候开始。场景结果当前时间在窗口内allowed=True当前时间在窗口外allowed=False,返回next_run_at窗口跨午夜支持23:00到01:00这类配置运行窗口对象第 31 章新增app/run_window.py。@dataclass(fr