2026-02-22:用“策略工厂”把想法变成可验证的结果
2026年2月22日 14:006 min read5
今天最重要的收获是:与其在一两个指标上纠缠细节,不如把"从想法到可验证结果"的流水线做顺——当回测框架足够顺滑,策略迭代速度会直接上一个量级。
1) 回测流水线:从“能跑”到“批量产出”
今天的工作核心围绕回测与策略迭代的工程化:让新增策略、跑完回测、落盘结果、更新文档这一套流程更可重复、更不容易被环境问题打断。
关键改动
- 将回测脚本移动到
src并同步更新文档(refactor: 将回测脚本移动到src目录并更新相关文档) - 重构
run_backtest:支持动态目标文件夹(refactor(run_backtest): ... 支持动态目标文件夹)- 这类改动看似“只是路径”,但实际上决定了你能不能把回测做成批处理:
- 多策略并行/串行运行
- 按日期/策略版本/参数集分目录保存结果
- 结果可追溯、可对比
- 这类改动看似“只是路径”,但实际上决定了你能不能把回测做成批处理:
- 修复导入问题:把项目根目录加入
sys.path(fix: 添加项目根目录到sys.path以确保模块导入正确)- 这一步本质上是在“把不确定性从运行时挪走”:避免因为工作目录不同、入口脚本不同导致的
ModuleNotFoundError。
- 这一步本质上是在“把不确定性从运行时挪走”:避免因为工作目录不同、入口脚本不同导致的
2) 策略迭代:连续产出 v90v96(以及 v85v88 的补齐)
今天新增/完善了一批“体制 + 动量/趋势”类策略,同时补齐了若干自适应/流量类版本,整体风格更接近一个可扩展的策略库:
- v90 / v91:VHF Adaptive Momentum(含一次修正提交)
- v92:CCI Regime Momentum
- v93:Keltner Channel Momentum
- v94:MFI Flow Strength
- v95:Bollinger Band Width Squeeze
- v96:VWAP Deviation Trend
同时也有历史策略的补齐与文档/脚本配套:
- v85:Ichimoku Cloud Regime
- v86:KAMA Adaptive Efficiency
- v88:nvi_pvi_smart_flow
- v89:VHF Regime Momentum + nvi/pvi 自适应分位体制
这一组策略的共同点是:不再只盯某个单一指标的“信号”,而是更强调市场体制(regime)与动量/趋势的组合。工程上把它们做成一套可重复的模板后,后续扩展会非常快:新增一个策略更像“填空题”。
3) 结果与质量控制:让回测结果可读、可复盘
今天的回测结果提交里出现了两类信号:
- 有一次汇总为:7 passed, 2 failed
- 也有多次“小批量”策略验证:1 passed, 0 failed
这里我更在意的是:
- 失败能否被快速定位(导入/路径/数据问题 vs 策略本身)
- 结果能否被稳定落盘并进入文档(避免“跑完就忘”)
- 回测脚本是否支持未来的批量对比(按版本/参数集维度归档)
对应地,今天也更新了文档:
- 比亚迪策略库文档更新回测结果与总结(
docs(比亚迪策略库): 更新策略测试结果和总结文档) - 回测结果摘要加入 AI 指令建议(
docs: 更新回测结果摘要中的AI指令建议)
Key metrics / outputs
- 新增/完善策略版本:v85, v86, v88, v89, v90, v91, v92, v93, v94, v95, v96
- 回测执行与结果提交:
- 一次批量:7 passed / 2 failed
- 多次小批量:1 passed / 0 failed
- 工程稳定性改进:
run_backtest支持动态输出目录- 修复模块导入易碎点(
sys.path) - 回测脚本与文档结构调整(迁移至
src)
Lessons & mistakes
- **“路径/入口/导入”这种工程细节不 glamorous,但它决定了策略研究的上限。**如果每次运行都要手动修环境或猜工作目录,你就不可能稳定做批量迭代。
- 回测的失败不应被掩盖:把失败显式记录在结果提交里,比“只挑成功的写进文档”更利于长期进化。
Next steps
- 复盘那 2 个 failed 的根因:分类为框架问题/数据问题/策略逻辑问题,并给出可重复的修复步骤
- 把新增策略统一做一次跨标的/跨时间段的批量回测,输出对比报告(胜率/回撤/换手/稳定性)
- 进一步把策略模板化:统一参数命名、信号输出结构与结果落盘格式