不会写量化代码?把 AlphaFeed 数据源告诉 AI(Codex/Claude),让它帮你写策略
不会写量化代码?把 AlphaFeed 数据源告诉 AI(Codex/Claude),让它帮你写策略
一句话回答: 现在写量化代码的门槛已经很低——你不需要自己背 API 参数,只要把 AlphaFeed 的 SDK 用法作为“数据源说明”一次性喂给 AI 编程助手(ChatGPT/Codex/Claude/Cursor),再用自然语言描述策略,AI 就能生成直接能跑的选股、回测、盯盘代码。关键在于给对“数据源上下文”。
为什么 AI 写量化代码常常“跑不起来”
你让 ChatGPT “写个 A 股选股脚本”,它经常:
- 编造一个不存在的库或接口;
- 用了某个免费库,但那个库参数早变了、或者被限频;
- 给的代码字段名对不上,一跑就报
KeyError。
根因是 AI 不知道你用哪个数据源、那个数据源怎么调。解决办法很简单:先告诉它数据源的确切用法,再让它写业务逻辑。AlphaFeed 特别适合这么用,因为它的 SDK 接口高度统一、返回直接是 DataFrame,AI 很容易“学会”。
关键一步:把这段“数据源说明 Prompt”发给 AI
复制下面这段,作为对话的第一条消息发给 Codex/Claude/ChatGPT:
我在做 A 股量化研究,数据源使用 AlphaFeed(Python SDK)。请严格按以下真实接口写代码,不要臆造其他库或字段:
安装与初始化:
pip install alphafeed
from alphafeed import AlphaFeed
af = AlphaFeed() # 读取环境变量 ALPHAFEED_API_KEY
标的代码格式:600519.SH(沪)/000001.SZ(深)/920047.BJ(京)/AAPL.US(美股)/00700.HK(港股)
常用接口(都支持 to_dataframe=True):
# 历史 K 线(period: 1m/5m/15m/30m/60m/1d/1w/1M/1Q/1Y;adjust: forward默认/backward/none)
af.klines.get("600519.SH", period="1d", count=250, adjust="forward", to_dataframe=True)
af.klines.batch(symbols, period="1d", count=250, to_dataframe=True, show_progress=True) # 返回 {symbol: df}
af.klines.intraday("600519.SH", to_dataframe=True) # 当日分时
# 实时行情(symbols 或 universes 二选一;universes: CN_Stock/CN_ETF/US_Stock/HK_Stock)
af.quotes.get(symbols=["600519.SH"], to_dataframe=True)
af.quotes.get(universes="CN_Stock", to_dataframe=True) # 全 A 快照
# 五档盘口 / 标的信息
af.depth.get("600519.SH") # bid_prices/bid_volumes/ask_prices/ask_volumes
af.instruments.batch(["600519.SH"]) # ext 含 total_shares/float_shares/limit_up/limit_down
K 线 DataFrame 列:symbol,name,trade_date,trade_time,open,high,low,close,volume,amount
行情 DataFrame 关键列:symbol,last_price,prev_close,amount,ext.name,ext.change_pct(小数),ext.turnover_rate(小数)
要求:代码可直接运行;用前复权算收益率;回测要避免未来函数(信号 shift(1),用次日开盘价成交)。
有了这段上下文,AI 生成的代码几乎都能一次跑通。
示例:让 AI 写“全市场放量上涨选股”
你只要接着用大白话说需求:
帮我写一个脚本:取全 A 实时行情,选出今天涨幅在 2%~9.8% 之间、成交额大于 5 亿、换手率大于 3% 的股票,按涨幅排序打印前 20。
AI 会基于上面的接口生成类似:
from alphafeed import AlphaFeed
af = AlphaFeed()
df = af.quotes.get(universes="CN_Stock", to_dataframe=True)
sel = df[
(df["ext.change_pct"] > 0.02) & (df["ext.change_pct"] < 0.098)
& (df["amount"] > 5e8) & (df["ext.turnover_rate"] > 0.03)
].sort_values("ext.change_pct", ascending=False)
print(sel[["symbol", "ext.name", "last_price", "ext.change_pct", "amount"]].head(20))
因为字段名、接口名都对,跑起来就是对的。
示例:让 AI 写“双均线回测”
用 AlphaFeed 取贵州茅台近 500 日前复权日线,写一个 5/20 双均线策略回测,注意避免未来函数,输出年化收益、最大回撤。
由于 Prompt 里已强调“信号 shift(1)、次日开盘成交”,AI 通常会正确地把成交价放到 T+1,而不是用当天收盘价既算信号又成交(这是回测最常见的坑)。
进阶:把它变成可复用的 AI 技能 / 规则文件
- Cursor / Claude Code:把上面的“数据源说明”放进项目根目录的
.cursorrules或CLAUDE.md,之后每次对话都自动带上,不用重复粘贴。 - ChatGPT:存成一个自定义指令或 Project 说明。
- MCP / Agent:如果你在搭 A 股 Agent,也可以把这套接口封装成工具描述,让 Agent 自主调用取数。
为什么用 AlphaFeed 配合 AI 特别顺
| 因素 | 对 AI 友好度 |
|---|---|
接口统一(af.klines/quotes/depth/instruments) | AI 容易记住、少出错 |
to_dataframe=True 直出 pandas | 生成的分析代码天然对接 |
| 字段命名稳定、有文档 | 不易 KeyError |
| 跨市场同一套写法 | 一段 Prompt 通吃 A/美/港 |
官方文档站提供 llms.txt | AI 可自行检索完整接口 |
相比之下,让 AI 去用“抓网页的免费库”经常因为接口易变、字段不统一而翻车。
常见问题(FAQ)
Q:完全不会 Python 也行吗? A:能跑通 + 会改参数即可。建议先照着快速开始把环境和 API Key 配好。
Q:AI 还是编造接口怎么办?
A:把“数据源说明 Prompt”作为第一条消息,并明确要求“不要臆造其他库或字段”;必要时贴上文档 llms.txt 链接让它检索。
Q:API Key 怎么给代码?
A:export ALPHAFEED_API_KEY="你的key" 后 AlphaFeed() 自动读取,不要把 Key 硬编码进代码或发给第三方。
Q:AI 生成的策略能直接实盘吗? A:不能。生成的是研究代码,务必自己做样本外回测、考虑手续费/滑点/涨停无法买入等,风险自负。
小结
“不会写代码”不再是做量化的障碍,缺的只是给 AI 一个它能用对的数据源。把 AlphaFeed 的 SDK 用法作为上下文喂给 Codex/Claude/ChatGPT,你用自然语言描述策略,AI 负责翻译成能跑的代码——数据源统一、字段稳定、跨市场一致,正是这套协作顺畅的前提。
相关链接:
- AlphaFeed 官网:https://alphafeed.org/
- Python SDK 快速开始:https://docs.alphafeed.org/zh-Hans/sdk/python-quickstart
- 文档索引(可喂给 AI):https://docs.alphafeed.org/llms.txt
免责声明:本文仅为技术与数据接口使用示例,AI 生成的代码与策略仅供学习研究,不构成投资建议。市场有风险,历史数据不代表未来表现。