diff --git a/docs/data-platform/daily-update-design.md b/docs/data-platform/daily-update-design.md index 859e3ff4..326b64cd 100644 --- a/docs/data-platform/daily-update-design.md +++ b/docs/data-platform/daily-update-design.md @@ -3,8 +3,8 @@ **项目**: sanguo_vnpy 数据平台 **作者**: 赵云(数据总管) **日期**: 2026-05-03 -**版本**: v1.0-draft -**状态**: 待评审 +**版本**: v1.1 +**状态**: 评审通过,代码已修改 --- @@ -263,9 +263,13 @@ CREATE TABLE dbbaroverview ( **interval值说明**: - `d` = 日线 -- `1m` = 分钟线(vnpy 4.x 原始枚举,15分钟线也用此值,与BacktestingEngine兼容) +- `15m` = 15分钟线(v1.1修正:与司马懿确认,采用方案B) -> ⚠️ 注意:vnpy原始Interval枚举只有 `MINUTE="1m"`,没有 `MINUTE_15`。Docker回测服务用原始vnpy,加载分钟线时传 `interval="1m"`。因此DB中15分钟线也存储为 `interval="1m"`。如果未来引入真正的1分钟线,需重新设计。 +**方案B实现**(2026-05-03 司马懿评审确认): +1. vnpy Interval枚举加 `MINUTE_15 = "15m"`(monkey patch方式注入,不依赖vnpy版本) +2. executor INTERVAL_MAP 改 `"15m" = Interval.MINUTE_15` +3. DB迁移:`UPDATE dbbardata SET interval="15m" WHERE interval="1m" AND ...` +4. DB中现有"1m"数据需要一次迁移(迁移前备份) --- @@ -524,18 +528,30 @@ sanguo_vnpy/ | 日期 | 版本 | 变更 | 作者 | |------|------|------|------| | 2026-05-03 | v1.0-draft | 初始版本 | 赵云 | +| 2026-05-03 | v1.1 | 司马懿评审后修改:interval→15m, 严格增量追加, 日线进度文件, 全局源检测, DB轮转备份, 失败率告警 | 赵云 | --- -## 十三、待评审项 +## 十三、评审结果(2026-05-03 司马懿评审) -> 以下是需要与司马懿讨论确认的项目: +### 评审结论:有条件通过 -1. **SMB性能问题**:方案A/B/C选择,是否需要NAS本地执行? -2. **vnpy DB同步到Docker**:自动化方案? -3. **数据源保留粒度**:是否需要在Parquet中记录数据来源? -4. **amount为0的处理**:腾讯日线amount=0时是否用新浪补? -5. **interval="1m"设计**:未来1分钟线和15分钟线如何区分? -6. **部署整合**:Docker容器化方案的优先级? -7. **DB备份策略**:是否需要轮转备份(如保留最近7天)? -8. **错误告警**:更新失败时如何通知?(当前只有飞书announce) +**2个阻塞项(已解决)**: +1. ✅ interval="1m" → "15m":采用方案B(vnpy加MINUTE_15枚举 + monkey patch) +2. ✅ 15min增量合并:改为严格按日期追加,不再用drop_duplicates keep=last + +**4个硬伤(已修复)**: +1. ✅ 日线增加进度文件 +2. ✅ 全局源不可用检测(连续30只首次失败→终止) +3. ✅ DB轮转备份(保留7天,`quant_trading_{YYYYMMDD}.db.bak`) +4. ✅ 失败率>5%告警标记 + 源终止告警 + +**8个待评审项确认**: +1. SMB性能:V1方案A(Mac→SMB),V1.1切方案B(NAS本地执行) +2. DB同步Docker:V1手动,V2用cron job +3. 数据源标记:V1不加 +4. amount为0:V1保留腾讯0值,记录告警 +5. interval:已改为"15m" +6. 部署整合:P2不急 +7. DB备份:已实现轮转备份 +8. 错误告警:已实现失败率阈值