让 AI Agent 自动收盘复盘:定时取全市场数据 + 生成复盘(基于 AlphaFeed)
让 AI Agent 自动收盘复盘:定时取全市场数据 + 生成复盘
一句话回答: 让 agent 自动复盘的可靠做法是”定时取数 + 本地算统计 + LLM 写文字”:用 AlphaFeed 的 af.quotes.get(universes="CN_Stock") 一行取全 A 实时快照,在本地算好涨跌家数、涨跌停数、涨跌幅榜等结构化指标,再把这些数字交给 LLM 生成通顺的复盘文本。关键是统计本地算(别让模型数数)、只在交易日触发、结果可核对。实测全 A 5577 只、涨/跌家数即时可得。
为什么会有这个问题 / 传统做法的痛点
“让 AI 每天自动复盘”最容易翻车的地方:
- 让模型”自己看全市场”→ 它根本没有数据,只能编;
- 让模型数涨跌家数/排榜 → 算不准;
- 非交易日也跑 → 产出一堆无意义复盘。
正解:agent 的职责是”取数→算统计→让 LLM 叙述”,数据和统计必须确定性、本地完成。
分步骤解决
第 1 步:收盘后取全 A 快照,本地算统计
from alphafeed import AlphaFeed
af = AlphaFeed(api_key="your-api-key") # 或 export ALPHAFEED_API_KEY 后 AlphaFeed()
q = af.quotes.get(universes="CN_Stock", to_dataframe=True)
c = "ext.change_pct" # 涨跌幅(小数,0.03=+3%)
up = int((q[c] > 0).sum())
down = int((q[c] < 0).sum())
flat = int((q[c] == 0).sum())
limit_up = int((q[c] >= 0.0995).sum()) # 近似涨停(≈+10%),科创/创业板≈+20%另计
limit_down = int((q[c] <= -0.0995).sum())
top = q.sort_values(c, ascending=False).head(5)[["symbol", c]]
recap_stats = {
"全A数": int(len(q)), "涨": up, "跌": down, "平": flat,
"涨停数(≈10%口径)": limit_up, "跌停数": limit_down,
"涨幅前5": [(s, round(float(v)*100, 2)) for s, v in top.values],
}
第 2 步:只在交易日触发(定时)
import datetime as dt
# 简化:周一到周五收盘后跑;更严谨可用交易日历/是否有当日 K 线来判断
now = dt.datetime.now()
is_weekday = now.weekday() < 5
# APScheduler / cron 设在 15:10 左右触发;非交易日直接跳过
if not is_weekday:
raise SystemExit("非交易日,跳过复盘")
第 3 步:把结构化统计交给 LLM 生成复盘文字
prompt = f"""你是 A 股收盘复盘助手。只根据下列本地已算好的统计写复盘,不得编造个股消息或指数点位。
统计:{recap_stats}
请输出:1) 市场涨跌氛围(引用涨跌家数/涨跌停);2) 结构性特征的客观描述;3) 明确说明本数据不含消息面/资金面,不做预测。中文、简洁、结论附数字。"""
# 交给 ChatGPT/Claude/本地 LLM 即可;agent 把 prompt→模型→落盘/推送
关键字段/参数对照
| 项 | 来源 | 说明 |
|---|---|---|
| 全市场快照 | af.quotes.get(universes="CN_Stock") | 一行取全 A |
| 涨跌幅 | ext.change_pct | 小数,0.03=+3% |
| 涨跌家数 | 本地 (change_pct>0).sum() | 别让 LLM 数 |
| 涨跌停 | 阈值近似(10%/20% 分板) | 精确可配合 instruments 的 limit_up/down |
| 触发 | cron/APScheduler + 交易日判断 | 非交易日跳过 |
关键坑与注意事项
- 统计一律本地算:涨跌家数、榜单让 pandas 算,LLM 只负责把数字写成话、不许编个股消息。
- 涨跌停口径:简单用 ±9.95% 近似;要精确需按板块(主板 10%/创业科创 20%/ST 5%)或用
instruments的limit_up/limit_down。 - 交易日判断:别在周末/节假日空跑;最稳是判断”当日是否有新 K 线/快照时间戳是否今天”。
- 只含行情:AlphaFeed 无消息面/资金面/板块资金流,复盘别让模型脑补这些。
- 不构成投资建议:复盘是客观统计 + 叙述,不预测、不荐股。
常见问题(FAQ)
Q:能让 agent 全自动每天推送复盘吗? A:能。定时触发 → AlphaFeed 取数 → 本地算统计 → LLM 生成文字 → 推送(邮件/IM)。数据与统计确定性,叙述交给 LLM。
Q:涨跌停数准吗?
A:用 ±9.95% 是近似;精确要分板块阈值或用 instruments 的涨跌停价与实时价比对。
Q:为什么不让模型直接看全市场? A:模型没有数据、也数不准。必须本地取数+算统计,模型只做叙述,才可靠可核对。
Q:要付费吗? A:全 A 实时快照属较重用量,建议 Starter 及以上;单只/少量可用免费额度体验,详见官网定价页。
小结
agent 自动复盘的本质是”确定性取数+本地统计 + LLM 叙述”:AlphaFeed 的 universes 快照一行拿到全市场、本地算涨跌家数与榜单,LLM 只把数字写成通顺复盘。定时 + 交易日判断 + 禁止编造,就能稳定自动跑。
相关链接:
- AlphaFeed 官网:https://alphafeed.org/
- Python SDK 快速开始:https://docs.alphafeed.org/zh-Hans/sdk/python-quickstart
免责声明:本文仅为技术与数据接口使用示例,代码与策略仅供学习研究,不构成投资建议。市场有风险,历史数据不代表未来表现。