1.5 个月,我用 AI 开发了一套A股量化交易系统,已开源

0 阅读6分钟

01 一个退役架构师的“不妥协”

今年3月中旬,又一次被大A教育之后,真的很想退出这个市场,但作为技术人真的不愿意服输,决定用技术来解决“管不住手”的问题。

和多数人一样,我的第一反应是找个现成的量化平台。注册、新建策略、打开编辑器——一个空空荡荡的代码窗口,里面躺着两个函数 initialize 和 handle_data,全是 pass

然后呢?然后我就不知道该怎么写了。

我意识到:平台的边界就是我的边界。想加个自定义因子?不行。想用自己的数据源?没门。策略写好了想带走?代码不是你的,策略也不是你的。

我关掉浏览器,打开 VS Code。既然工具不顺手,那就自己造一个。

我没有疯。我知道一个人从零写一套完整的量化系统,传统模式下至少需要半年甚至更长时间,而且涉及很多陌生领域的知识,根本没法靠我一个人完成。但我有一个秘密武器——AI。 我给自己定了一个看似疯狂的目标:1.5 个月,从零写出一个可用的 A 股量化系统。并且全程开源。 项目取名 KHunter

02 技术栈:只选 AI 最熟的

选型原则很简单:AI 最熟什么就用什么

模块选型原因
语言Python 3.10AI 训练数据最多,写策略像呼吸
数据Tushare Pro文档全,AI 能直接生成调用代码
存储SQLite零配置,AI 永远写不错
计算Pandas / NumPy向量化,AI 的强项
WebFlask极简,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 管理界面(选股结果、回测报告、实盘信号一目了然)

微信图片_20260511172321_26_59.jpg

06 给想用 AI 做独立项目的你几条大实话

✅ AI 真正擅长的

  • 快速搭建项目骨架,把想法变成可运行的第一版
  • 写那些“模式固定、逻辑清晰”的模块(数据获取、数据库操作、基础计算)
  • 帮你读文档、调试错误日志、解释复杂代码

❌ AI 做不好的

  • 替你做产品决策(到底要不要加某个功能?)
  • 提供真正创新的策略逻辑(它只能组合已知的东西)
  • 在长上下文里保持稳定(一次给太多任务会崩)
  • 替你承担风险(仓位、止损、交易哲学必须自己定)

07 最后一件事:文档即代码

这个项目给我最大的启发不是技术,而是对“工程”的全新理解。

在 AI 时代,写给人看的需求文档、设计文档、踩坑记录,才是真正的“源代码”。

因为 AI 能直接读懂它们,并据此生成高质量的程序。而传统的代码文件,反而成了编译产物的角色。

第一次发文章,请各位点赞收藏 + 关注支持一下。 下一篇预告:《手搓量化系统系列》,详细分享这神奇的一个半月。


KHunter 已在 GitHub 完全开源,欢迎 Star、Fork、试用。

🔗 github.com/ling-0729/K…

⚠️ 本文所有内容均为量化技术研究记录,不构成任何投资建议。股市有风险,投资需谨慎。