文章
30 分钟,用 AI 做了一个量化选股系统
我不是在说 AI 有多强大。我是在说,"先想清楚要什么"这件事,比以前值钱多了。
年初到现在,我在 A 股做了不少 T,折腾了两个多月,最后算下来亏了 5%。美股那边最近跌得也很惨,又损失了一块。
正好最近在看《聪明的投资者》。格雷厄姆说防御型投资者只该买估值低、财务稳健、有长期盈利记录的公司,不要猜市场,不要频繁交易。道理我都懂,但美股有几千只票,这套标准靠人工根本筛不完。

我没去找现成工具,直接打开 Claude Code,把要的东西说了一遍。
30 分钟后,graham_investor 跑起来了。
30 分钟做了什么
Claude Code 写了四个模块:从 Yahoo Finance 批量预筛全美股的 screener、按 12 个维度加权打分的模型、跟踪组合每日收益的 monitor,还有集中管理所有参数的 config。顺带处理了假日检测、夏令时转换、盈利衰退惩罚,数据每天存成 CSV。
这些自己写大概要两三天,而且我很清楚自己会在「要不要先搭个 Web 界面」上纠结半天。

但这不是我想说的重点。
我在这 30 分钟里做的事
我没写一行代码,但做了很多决策:打分分几个维度、各占多少权重、怎么处理「看起来便宜但其实在衰退」的股票、要跟几组组合做对照。这些在开口之前就想好了,因为书已经给了我框架,我只是把它翻译成系统的语言。
AI 能快速执行的前提,是你知道要执行什么。
以前「有个想法」到「做出来」之间有一道很宽的沟,很多想法就在那道沟里消失了。现在沟窄了很多。这反而意味着想法的质量要求变高了——做的成本低了,做错的代价就更可见。
模型是怎么打分的
评分分四类,共 12 个维度。
估值占 30%:P/E ≤ 15、P/B ≤ 1.5、Graham Number 安全边际。Graham Number 是格雷厄姆自己的公式 √(22.5 × EPS × BVPS),市价低于这个数才算便宜。财务健康占 15%:流动比率 ≥ 2、债务权益比 ≤ 0.5。成长与稳定占 28%:连续盈利年数、连续分红年数、盈利增长率、营收增长率。质量因子占 27%:ROE、净利率、自由现金流收益率,这是巴菲特加进来的部分,用来挡掉那些「便宜但没什么竞争力」的公司。
另外有一个盈利衰退惩罚:如果近期盈利在下滑,总分乘以 0.45 到 0.80 的系数。P/E 低不够,还得看公司是不是还在走下坡路。
最终出 A/B/C/D/F 五档评级,A 是 ≥ 80 分,B 是 ≥ 65 分。
跑一行命令出报告:
python -m graham_investor.model --top10

这次筛出来唯一的 A 级是 SLDE(Slide Insurance),安全边际 81.9%。其余 9 只 B 级,行业以金融服务为主,还有房地产、能源、通讯。
用模拟投资来验证

现在跑着两组组合做对照:一组是模型筛出来的 Top 10,另一组是我自己挑的蓝筹(BRK-B、JPM、GOOGL 这些)。3 月 18 日建仓,各 $30,000 等权买入。时间太短,什么都看不出来。
但我想把这个记录留下去。一个从书里来的想法,变成每天自动跑的系统,最后到底有没有用——这个问题值得用真实数据来回答,哪怕答案是「没用」。
接下来想做的
两件事。一是接入 A 股和港股数据源,同一套评分逻辑直接用,不用重写。二是加定期重新评分和自动调仓,现在组合建完就不动了,太静态。
代码在这里
github.com/XiongTi/graham_investor
依赖只有 yfinance 和 pandas。不构成投资建议,后果自负。