tick-stock-panel零运维的秘密:15:30盘后定时管道全流程解析
tick-stock-panel零运维的秘密15:30盘后定时管道全流程解析【免费下载链接】tick-stock-panelTSP自托管、零运维的 A 股「选股 监控 回测」量化工作台 | LLM能力驱使策略定制个股分析复盘 | 自由接入第三方数据源与个性化扩展数据 | 个人开源项目地址: https://gitcode.com/GitHub_Trending/ti/tick-stock-paneltick-stock-panel 是一个自托管、零运维的 A 股「选股 监控 回测」量化工作台。它的零运维核心是一条在收盘后自动执行的盘后定时管道同步日K、补除权因子、重算指标、结算模拟盘、推送复盘报告——全程无需人工干预。本文带你完整拆解这条 A 股量化盘后管道是如何做到开机即忘的。为什么默认设在 15:35而不是 15:30A 股的盘后固定价格交易要到 15:30 才彻底终止且供应商的日线数据还需要一点时间定稿。所以管道默认15:35触发用 5 分钟缓冲保证拿到的是官方收盘价而非 15:30 前的盘中快照源码注释里明确写着这个原因。调度器start_scheduler在 backend/app/jobs/daily_pipeline.py#L1271-L1397 里注册了整套工作日mon-fri、Asia/Shanghai定时任务时间任务说明09:10盘前维表同步同步个股维表含当日涨跌停价刷新缓存15:02五档盘口定版收盘快照 sealed 定版15:35盘后管道本文主角日K 除权 指标 结算15:40AI 定时复盘可选流式生成报告并归档、推送时间均可在面板设置页调整偏好读取逻辑见 backend/app/services/preferences.py#L490-L512。管道全流程从维表到视图刷新的 8 个阶段整条管道的主函数是run_nowbackend/app/jobs/daily_pipeline.py#L192-L800每个阶段都会向前端汇报进度你在数据页能看到实时进度条1. 同步个股维表先更新 instruments 维表确保涨跌停价、连板梯队等读到的是当日最新值避免前一日残留。2. 解析标的池_resolve_universe优先拉取沪深京 A 股全市场约 5500 只无批量拉取能力时自动降级为自选 维表兜底免费用户也能跑通管道。3. 日K同步最聪明的一步这里不是无脑全量拉取而是按场景分四条路径今天已有数据→ 用一次实时行情请求覆写全市场1 个请求搞定有历史缺口→ 从最新日期或最早坏日批量补齐首次运行→ 拉取 1 年历史数据修正→ 指定起始日强制批量回补拉取前还有一道完整性自愈data_integrity扫描会检查最近交易日是否存在盘中快照残留或分区缺口比如服务器中午停机留下的半截数据命中后自动把拉取起点提前到坏日降级为范围拉取修复——这正是零运维的关键一环。4. 除权因子增量同步从已有数据最新日期的下一天开始增量获取与日K范围对齐实时增量分支则兜底拉最近 15 天覆盖春节/国庆长假期间的新除权事件。merge unique幂等设计让多拉无副作用。5. enriched 指标计算全量/增量四分支指标宽表的计算策略非常精细首次运行或往前扩展历史 → 全量重建往后新增日期 → 增量补新区块 受除权影响个股全日期重算无新日期但有新除权 → 只重算受影响个股毫无变化 → 直接跳过。计算前还会剪枝两类脏分区覆盖不全的分区#L37-L73和收盘价停留在竞价前快照的分区#L76-L115删掉后当新日期重算实现值级自愈。管道产出的指标数据直接驱动连板梯队、选股等页面6. 指数 / ETF 同步物理分开存储指数不复权、ETF 可复权支持独立开关起点取本地最新日期到今天完整性修复时自动提前到最早坏日。7. 市场环境 市场主线增量计算regime聚合每日环境指标情绪周期、阶段切换检测到阶段切换如退潮→冰点还会通过监控通道推送告警mainline聚合概念/行业的涨停梯队增量通常只有 1 天开销可忽略。盘后管道第 7 步产出的市场环境分析页8. 模拟盘结算 刷新视图按当日开盘/收盘价撮合模拟盘顺延单 → 除权调整 → 定版净值。订单状态与除权台账双重守卫保证幂等重跑同日不会重复成交或二次除权。最后刷新全部 DuckDB 视图并失效内存缓存次日开盘连板梯队等基准列不会停留在旧交易日。零运维的 5 个工程细节读懂源码后会发现自动背后是一组防御性设计单飞 执行槽调度或手动触发时若已有活跃任务直接复用/跳过杜绝并发写同一批 parquetbackend/app/services/pipeline_jobs.py管道运行期间还会暂停实时行情取数防覆写竞态。软失败不误报非关键阶段环境、主线、结算单独 try/except 不阻断主管道但只要有阶段失败管道末尾抛出PipelineStageError任务终态如实标记为 failed——不再部分失败却报成功#L118-L128。卡死自愈任务按进度停滞而非总时长判定卡死reap_stale在轮询时自动收割僵尸任务无需人工重启。北京时间锚定管道内的今天用cn_today()计算backend/app/market_time.py美西主机 15:35 仍是本地昨天不锚定北京时间会把昨日日K误判为已齐。能力热更新每小时重探一次数据源能力Key 过期/续费无需重启服务即可被感知。监控中心可看到盘后结算成交留痕与各类触发记录管道跑完之后AI 复盘自动接力盘后管道成功后若开启了 AI 定时复盘默认 15:40系统会流式生成当日大盘复盘报告边生成边推送到打开的页面断流自动重试 2 次完成后归档并可选推送到飞书 / 企业微信 / Webhook / 邮箱#L1046-L1113。另外每周挖掘任务也会在管道成功后自动入队。盘后定时任务自动生成的 AI 复盘报告上手三步 源码索引首次使用设置里配置数据源 → 立即跑一次盘后管道拉日K 算指标→ 选股/监控页面即可用顺序建议见 docs/features.md调整时间/拉取范围面板设置页可视化修改配置项说明见 docs/configuration.md手动触发POST /api/pipeline/run异步返回 job_id轮询进度AI 助手也走同一条触发路径backend/app/api/pipeline.py想深入阅读从这几个文件开始管道主体与调度backend/app/jobs/daily_pipeline.py指标计算backend/app/indicators/pipeline.py完整性自愈backend/app/services/data_integrity.py任务化执行backend/app/services/pipeline_jobs.py【免费下载链接】tick-stock-panelTSP自托管、零运维的 A 股「选股 监控 回测」量化工作台 | LLM能力驱使策略定制个股分析复盘 | 自由接入第三方数据源与个性化扩展数据 | 个人开源项目地址: https://gitcode.com/GitHub_Trending/ti/tick-stock-panel创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考