01 一个退役架构师的“不妥协”
今年3月中旬,又一次被大A教育之后,真的很想退出这个市场,但作为技术人真的不愿意服输,决定用技术来解决“管不住手”的问题。
和多数人一样,我的第一反应是找个现成的量化平台。注册、新建策略、打开编辑器——一个空空荡荡的代码窗口,里面躺着两个函数 initialize 和 handle_data,全是 pass。
然后呢?然后我就不知道该怎么写了。
我意识到:平台的边界就是我的边界。想加个自定义因子?不行。想用自己的数据源?没门。策略写好了想带走?代码不是你的,策略也不是你的。
我关掉浏览器,打开 VS Code。既然工具不顺手,那就自己造一个。
我没有疯。我知道一个人从零写一套完整的量化系统,传统模式下至少需要半年甚至更长时间,而且涉及很多陌生领域的知识,根本没法靠我一个人完成。但我有一个秘密武器——AI。 我给自己定了一个看似疯狂的目标:1.5 个月,从零写出一个可用的 A 股量化系统。并且全程开源。 项目取名 KHunter。
02 技术栈:只选 AI 最熟的
选型原则很简单:AI 最熟什么就用什么。
| 模块 | 选型 | 原因 |
|---|---|---|
| 语言 | Python 3.10 | AI 训练数据最多,写策略像呼吸 |
| 数据 | Tushare Pro | 文档全,AI 能直接生成调用代码 |
| 存储 | SQLite | 零配置,AI 永远写不错 |
| 计算 | Pandas / NumPy | 向量化,AI 的强项 |
| Web | Flask | 极简,AI 生成的代码几乎不用改 |
| 前端 | 原生 HTML+JS | 不折腾框架,AI 也能写 |
一个关键决策:不用异步框架。量化回测是 CPU 密集型,异步没有任何收益,反而会让 AI 生成的代码变得复杂且容易出错。
03 AI 辅助开发:我的真实工作流
3.1 启动期:一夜搭好地基
第一个晚上,我给 AI 下了第一个指令:
“帮我写一个 A 股数据获取模块,基于 Tushare Pro,支持自动重连、增量更新、本地 SQLite 缓存。”
几分钟后,AI 输出了一套完整的 data_fetcher.py,包含:
- Token 管理
- 自动重试机制
- 增量更新逻辑
- 数据库 ORM 映射
我几乎一行代码没写。只是把需求描述清楚,然后验收、微调。
3.2 成长期:测试驱动 AI 修复
很快,我遇到了第一个大坑:回测结果完全不对劲,收益高得离谱。
我把代码和日志一起贴给 AI:
[日志] 策略在 2025-03-15 买入,当天收盘价 10.2,买入价却是 9.8...
AI 秒回: “你用了未来数据。计算信号时用了当天的收盘价,而不是前一天的。”
它直接把修复代码写出来,加了 .shift(1)。从此我的 AGENTS.md 里多了第一条铁律:所有信号判断必须基于昨日数据,禁止未来函数。
3.3 迭代期:把“坑”写成文档,让 AI 自己学
每踩一个坑,我就让 AI 把解决过程总结成一个条目,塞进项目根目录的 AGENTS.md。
一个月下来,这份文档积累了 12 条量化开发的“常见病” :
- 复权数据用错 → 统一
adj='qfq' - 除权日价格突变 → 动态调整持仓成本
- 资金流向数据不全 → 换接口
- 仓位满了新信号进不来 → 实现动态换仓
- 趋势初段假信号太多 → 分层入场,先试探再重仓
- 参数过拟合 → 做敏感性分析 + 样本外验证
神奇的事情发生了:从那以后,AI 写的新代码几乎不会再犯这些低级错误。它每次动手前会主动去读 AGENTS.md。
这才是 AI 编程真正的复利:不是 prompt 技巧,而是把知识外化成一个可被 AI 引用的文档。
04 三个 AI 搞不定的时刻
AI 帮我写了大半的代码,但有几个坎,它完全跨不过去。
4.1 策略创新:AI 给不出“灵光一闪”
KHunter 里有一个“仙人指路”策略——利用长上影线识别主力试盘,然后捕捉突破。这个想法来自我复盘时看到的一张 K 线图。
我试图让 AI 帮我设计类似的形态识别逻辑。它给出了非常通用的“长上影线检测”代码,但完全抓不到“试盘后缩量横盘再启动”的那种微妙感觉。
交易认知,AI 学不会。
4.2 取舍与风控:AI 没法替你拍板
回测显示分层入仓策略收益更高,但参数怎么设?
- 初段用 10% 还是 15%?
- 中段用 30% 还是 40%?
- 凯利用全凯利还是半凯利?
AI 给了一堆数学分析和理论值,但最终拍板的必须是我自己。因为不同的参数对应不同的风险偏好,这是交易哲学,不是数学。
4.3 长上下文里偷偷“优化”不该动的代码
有一次我给 AI 三个任务:优化回测速度、增加资金流向过滤、同时重构持仓管理模块。
结果它把 BaseStrategy 的接口改了,导致所有派生策略全部报错。
教训:一次只让 AI 做一件事,做完立刻 commit。否则它会“好心”地帮你重写半个项目。
05 成果:KHunter 现在能做什么?
1.5 个月后,这套系统长这样:
- 11 种选股策略(底部拐点、涨停回马枪、W 底、仙人指路……)
- 5 维评分(技术面 35% + 资金面 35% + 基本面 10% + 板块 10% + 事件 10%)
- 4 种择时策略(海龟、RSI、布林带、支撑位)
- 完整回测引擎(输出胜率、盈亏比、最大回撤、夏普比率)
- 策略运行引擎(多日连续运行,每日输出 CSV 信号文件)
- Web 管理界面(选股结果、回测报告、实盘信号一目了然)
06 给想用 AI 做独立项目的你几条大实话
✅ AI 真正擅长的
- 快速搭建项目骨架,把想法变成可运行的第一版
- 写那些“模式固定、逻辑清晰”的模块(数据获取、数据库操作、基础计算)
- 帮你读文档、调试错误日志、解释复杂代码
❌ AI 做不好的
- 替你做产品决策(到底要不要加某个功能?)
- 提供真正创新的策略逻辑(它只能组合已知的东西)
- 在长上下文里保持稳定(一次给太多任务会崩)
- 替你承担风险(仓位、止损、交易哲学必须自己定)
07 最后一件事:文档即代码
这个项目给我最大的启发不是技术,而是对“工程”的全新理解。
在 AI 时代,写给人看的需求文档、设计文档、踩坑记录,才是真正的“源代码”。
因为 AI 能直接读懂它们,并据此生成高质量的程序。而传统的代码文件,反而成了编译产物的角色。
第一次发文章,请各位点赞收藏 + 关注支持一下。 下一篇预告:《手搓量化系统系列》,详细分享这神奇的一个半月。
KHunter 已在 GitHub 完全开源,欢迎 Star、Fork、试用。
⚠️ 本文所有内容均为量化技术研究记录,不构成任何投资建议。股市有风险,投资需谨慎。