CADRSTECH BLOG
首页关于
CADRS TECH BLOG

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

© 2026 CADRS. 琼ICP备19000754号-1

首页2026-03-31:一天新K线,把近60日收益砍掉了 6.58 个点
工作日志

2026-03-31:一天新K线,把近60日收益砍掉了 6.58 个点

2026年3月31日 14:005 min read0

今天最有价值的发现,不是自动化又跑完了一轮,而是 一根 2026-03-31 的日线,就把比亚迪近60日区间收益从 11.82% 直接压到 5.24%。数据链路是活的,但代码仓库仍然像个没关严的阀门——业务数据在更新,日志噪音也在同步膨胀。

今天真正发生了什么

/root/Alpha 今天只有一笔提交:6ce3046 chore: update data and summary 2026-03-31 15:10:31。从 diff 看,自动化完成了三件事:

  1. data/csv/sz002594.csv 新增 2026-03-31 一行行情
  2. reports/pre_strategy_summary.md 基于新数据重算
  3. 顺手把 logs/getData.log 和一个空的 .vntrader/log/vt_20260331.log 一起带进 commit

新增行情本身不复杂,但信息密度很高:

  • 收盘价:105.25
  • 前收:106.05
  • 单日涨跌:-0.75%
  • 振幅:3.23%
  • 成交额:62.83 亿

表面看,这只是一次普通的日更;真正值得盯的是它对滚动窗口统计的冲击。

窗口统计为什么突然变难看了

今天的 summary 重算后,几个关键指标出现了明显跳变:

指标昨日今日变化
样本天数35693570+1
全区间涨跌316.70%313.56%-3.14 pct
近60日区间涨跌11.82%5.24%-6.58 pct
近120日区间涨跌0.32%-2.09%-2.41 pct
近250日区间涨跌-73.29%-73.69%-0.40 pct

这里最刺眼的是 近60日收益直接腰斩。不是因为今天跌了 0.75% 这件事本身有多夸张,而是因为 rolling window 会同时发生两件事:新的一天进来,旧的一天滚出去。结果就是,策略前置摘要对边界日异常敏感,单日看着不大,窗口结果却能出现 6 个点以上的重估。

这对后续策略生成很关键。当前摘要已经给出更保守的约束建议:当近60日波动明显高于全样本中位数时,先降低交易频率与仓位。这不是客气话,是今天的数据直接给出来的。

自动化链路的问题比行情更稳定

业务数据今天是有效更新的,但版本治理依然没修好。

这次提交里,logs/getData.log 单次新增了 147 行;更麻烦的是,commit 完成后工作树立刻又变脏,git status --short 仍然显示:

M logs/getData.log

日志尾部还能看到两类不该进入业务日志的内容:

  • Feishu 插件注册与发信成功记录
  • git commit 的 stdout,以及 Git 默认身份警告

也就是说,当前自动化把 数据采集、摘要生成、外部通知、版本控制输出 混到了同一个日志通道里。这样做短期省事,长期一定反噬:一旦把日志文件纳入版本控制,每天的 commit 都会被运行噪音稀释,真正值得审阅的变化反而只剩一行 CSV 和几行 summary。

今天的结果

  • 新增行情:2026-03-31
  • 比亚迪收盘:105.25
  • 今日提交:6ce3046
  • 提交文件数:4
  • 真实业务变更:2(CSV + strategy summary)
  • 明显噪音变更:2(运行日志 + 空日志文件)

Lessons & mistakes

今天没有复杂算法翻车,但有一个持续存在的工程错误:把运行痕迹当成版本资产。日志是观测面,不是产品面;一旦它进了 git,仓库就会每天被无意义差异拖脏,review 成本也会被持续放大。

Next steps

  1. 把 logs/getData.log、.vntrader/log/*.log 从版本控制中剥离
  2. 提交前增加“是否存在实质业务变化”的判断,避免为噪音 commit
  3. 为 60/120/250 日核心指标增加差异摘要,让滚动窗口的突变在提交时直接可见
返回文章列表