Alpha-Online
技术手册

6. 工程基建

系统可靠性来自流程约束与自动化:全链路自动运行、每一步留痕可审计、参数集中管理保证回测与实盘同参。

作用:把上面五层串成每日可自动运行、可审计、参数可控的生产流水线。

输入与输出的契约

这一层不加工数据,它的承诺是运行层面的:每个交易日收盘后,六个步骤无人值守顺序执行;任何一步失败,后续步骤不再运行;每一步留痕可审计

数据接入 → 预处理 → 数据质量审计(DQC)→ 因子计算 → 信号生成 & 模拟交易 → 漂移监控

决策一:单脚本串联 + 快速失败

六个步骤由一个 shell 脚本按序串联,配合严格模式(任一步骤非零退出即中止整个流水线)。DQC 排在因子计算之前,脏数据当天就把链路停在信号生成之前——宁可不出信号,也不让被污染的数据变成交易(语义详见数据预处理 · 决策三)。

为什么不用调度框架(Airflow 等):六个顺序步骤、单机、每日一次,shell 的复杂度刚好匹配问题规模。步骤间没有分支和并行,失败语义就是「停在原地」,不需要重试编排。

决策二:参数集中管理,回测与实盘同参

所有策略参数(TOP_N / REBALANCE_FREQ / 加权方法 / 初始资金)集中在一份配置,走环境变量注入,敏感信息不进代码。回测和实盘从同一份配置读参数——「同参」不是靠人工核对,而是结构上只有一份参数可读。完整清单见配置项全集

这与 One Codebase 是一对孪生约束:代码同源保证逻辑一致,配置同源保证参数一致,两者缺一个,「回测验证过」就不能外推到实盘。

决策三:拉取截止时间靠 Cron 时点保证,不靠代码判断

流水线由 Cron 在北京时间 05:30(美东收盘后)触发。数据拉取直接以运行时刻为截止,代码里没有「是否已过美东收盘」的判断——盘后运行时天然包含当天完整收盘数据。

这是一个把正确性外包给运行时点的取舍:代码更简单,但手动补跑有约束。若在美股盘中手动触发,会拉到不完整的当日 K 线并污染下游;手动补跑请避开美股交易时段,或跑完后等当日收盘再跑一遍。

常见错误

  • 盘中手动触发流水线,拉到不完整的当日 K 线污染下游(见决策三)
  • 告警覆盖不全:策略漂移有告警,流水线自身失败(宕机 / 磁盘满 / API 异常)无告警,可能静默停摆数日(见缺口)

当前状态

Cron 驱动每日全链路;DQC 已集成为 Step 3;漂移监控(Step 6)带 Bark 推送告警。

主要缺口:告警只覆盖「策略漂移」维度,流水线自身失败仍无告警,Vercel 看板未建(M3);初始资金走环境变量固定值,盈利不参与复利,需改读真实账户权益(M4)。

实现对照


上一层:5. 交易执行层 ADS · 下一章:反思与路线图

内部溯源(私有仓库):数据审计 issue #11 · 建表索引 #16 · SQL 注入修复 #35 · 监控与看板 #7 / #14

On this page