CADRSTECH BLOG
首页关于
CADRS TECH BLOG

探索技术世界的思考与实践,记录编程之旅的点滴感悟

© 2026 CADRS. 琼ICP备19000754号-1

首页2026-04-08:成交量修对了,昨收价还在撒谎
工作日志

2026-04-08:成交量修对了,昨收价还在撒谎

2026年4月8日 14:006 min read0

2026-04-08:成交量修对了,昨收价还在撒谎

今天最有价值的发现,不是 sz002594 补进了 4 月 7 日这一根新 K 线,而是同一轮回填把 3 月 30 日到 4 月 3 日 这 5 个交易日又重写了一遍。成交量单位终于从“手”统一成了“股”,但 前收盘价 链条还是被写坏了——几乎整齐地贴成了“等于当日收盘价”,直接把这几天的收益率压成了 0。

修掉了一种错误,又保留了另一种错误

今天的 git 变更只有一个提交:4cea358 chore: update data and summary 2026-04-08 15:10:32。表面看只是常规数据更新,实际 diff 很有信息量:sz002594.csv 改了 6 行,新增 2026-04-07,同时回写了 2026-03-30 ~ 2026-04-03。

这次回写里,成交额几乎没变,成交量却精确放大 100 倍。这说明旧数据大概率混用了“手”和“股”,而新数据把单位纠正回了“股”。例如:

日期成交量(旧)成交量(新)倍数前收盘价(旧)前收盘价(新)
2026-03-30727,55772,755,723100x105.30106.05
2026-03-31588,65958,865,901100x106.05105.25
2026-04-01715,19871,519,811100x105.25102.65
2026-04-02604,34960,434,947100x102.65101.65
2026-04-03491,74549,174,516100x101.6599.01

问题在后一列:回填后的 前收盘价 基本都等于当日收盘价。对收益计算来说,这不是小误差,而是直接把一根真实的 K 线改写成 0% 收益的假数据。4 月 7 日新追加的一行看起来正常,但前面 5 天被“修量不修链”,整个收益序列还是脏的。

一根新 K 线,不该把窗口统计掀翻成这样

摘要文件 pre_strategy_summary.md 今天最值得看。样本天数只是从 3573 增到 3574,但近端窗口统计却明显变脸:

指标更新前更新后变化
全样本区间涨跌289.04%284.99%-4.05 pct
近60日区间涨跌1.32%-0.13%-1.45 pct
近60日年化波动25.70%24.19%-1.51 pct
近60日上涨日占比38.33%36.67%-1.66 pct
近120日区间涨跌-9.34%-11.41%-2.07 pct

为什么只加一天数据,窗口画像却像换了一套市场?答案不是行情,而是数据链条本身被改写了。今天新增的 4 月 7 日收盘价是 97.98,相对 4 月 3 日的 99.01,单日跌幅约 -1.04%;但真正拉低统计稳定性的,不是这根新 K 线,而是那 5 根被重写成“零收益”的旧 K 线。

更麻烦的是,这不是孤例。检查最近 60 个交易日,前收盘价 != 前一交易日收盘价 的记录有 15 天,占了 25%。也就是说,摘要模块现在读到的并不是“市场怎么走”,而是“回填器最近怎么写”。

日志暴露了流程问题:先落地,再失败

logs/getData.log 里今天留下了一串很典型的半成功轨迹。窗口从 20260330→20260404 一直滚到 20260403→20260408,前 4 轮都是:

  1. 本地保存成功
  2. 合并 CSV 成功
  3. 生成摘要成功
  4. 然后远端链路报 RemoteDisconnected('Remote end closed connection without response')

这类顺序最危险。因为它不会让本地看起来“失败”,但会把同一批数据反复回写,直到远端链路走通为止。于是我们今天看到的不是一次干净更新,而是一串 带副作用的重放。如果回填逻辑本身对 前收盘价 处理不稳,重试次数越多,摘要越漂。

assert prev_close[t] == close[t-1]
assert abs((amount / volume) - close) / close < 0.2

这种检查应该在摘要生成前就拦住,而不是事后再靠 diff 猜哪里坏了。

今天的结论

今天不是“补了一天数据”这么简单,而是确认了两件事:

  • 成交量单位修正 已经在发生,方向大概率是对的;
  • 前收盘价链条污染 仍然在持续,而且正在直接扭曲近端统计窗口。

真正该修的,不是摘要模板,而是回填链路的写入原子性和字段校验顺序。只要 prev_close 还能在重试里被静默改坏,任何基于近期收益、波动、上涨日占比的策略前置判断都会被带偏。

明天该做什么

  1. 在合并 CSV 后强制校验 前收盘价 == 前一日收盘价;
  2. 把“成交量单位归一化”和“昨收价推导”拆成两个明确步骤;
  3. 只有数据校验通过,才允许刷新 pre_strategy_summary.md。
返回文章列表