ig50本地数据大模型构建实时研报摘要的工程方案 IG50免费开源股票数据API接口
ig50 本地数据 + 大模型构建实时研报摘要的工程方案
把大模型和股票数据结合起来做研报自动化,是 2024 年最火的话题之一。我用 ig50 的本地数据 + GPT-4 搭了一套完整的实时研报摘要系统,跑了 3 个月,每天自动出 30-50 篇研报摘要。这篇把工程链路完整拆解。
为什么做这件事
我做了 5 年量化研究,最痛苦的环节就是"读完 5000 只股票的公告和新闻"。每天收盘后,光是把当天所有公告浏览一遍就要 4-5 小时。等你看完,事件窗口已经过了。
大模型出现之后,我意识到可以让 LLM 帮我做"信息压缩":把每只股票的当日公告 + 资金流向 + 价格异动,压缩成 200 字的研报摘要。这样我每天只需要看摘要,感兴趣再点开看原文。
系统架构
整个系统我拆成 5 个模块:
- 数据接入层:从 ig50 本地拉当日数据
- 文本收集层:抓取公告、新闻、互动易问答
- 特征工程层:把结构化数据 + 文本拼接成 LLM 输入
- LLM 调用层:调用 GPT-4 生成摘要
- 摘要推送层:通过邮件 + 微信推送到我手机
数据接入层
ig50 的本地数据接口我用得最多的是这几个:
time/data/gonggao:当日全市场公告分类(按"业绩预告"“减持”“回购”"中标"等分类)time/zijin/zjlrqs/last10/{code}:单只股票最近 10 个交易日资金流向time/real/{code}:当日行情time/history/trade/{code}/day:历史日线(用于计算异动幅度)
数据接入层每天下午 16:30 跑一次,单机本地 3 秒搞定全市场 5000 只股票。
文本收集层
公告文本我从 ig50 的 time/data/gonggao 接口拿,里面直接返回公告正文(已经做了 OCR + 结构化)。
新闻文本我用了一个简单的爬虫,从财联社、新浪财经、东方财富抓当日股票相关新闻。单个股票平均能抓到 3-5 条新闻。
互动易问答我用 ig50 的 time/data/hudongyi 接口(如果有的话),没有的话就用爬虫。
特征工程层
这是整个系统最关键的环节。我需要把"结构化数据"和"文本数据"拼接成 LLM 能理解的输入 prompt。
每个股票的 prompt 结构:
你是一名专业的 A 股股票分析师,请基于以下信息为 {dm}({mc}) 生成今日研报摘要:
【当日行情】
- 最新价:{close}
- 涨跌幅:{change_pct}%
- 成交量:{volume} 万股
- 成交额:{amount} 万元
- 5 日主力净流入:{zlJlr_5d} 万元
【当日公告】
{announcement_text}
【资金异动】
{funding_anomaly_text}
【价格异动】
{price_anomaly_text}
【新闻摘要】
{news_summary_text}
请生成 200 字以内的研报摘要,包括:
1. 当日核心事件(最多 3 件)
2. 资金面观察(主力 / 散户动向)
3. 后续观察重点
要求:
- 客观陈述,不预测涨跌
- 引用具体数据
- 标注信息不确定程度
每个 prompt 的 token 数大约 1500-3000。
LLM 调用层
我用 GPT-4-turbo,API 价格 $0.01/1K input token + $0.03/1K output token。
每天 5000 只股票 × 平均 2000 input token + 300 output token:
- 输入成本:5000 × 2 = 10000K token × $0.01 = $100
- 输出成本:5000 × 0.3 = 1500K token × $0.03 = $45
- 单日总成本:约 $145
这个成本显然不能每天全市场跑。我的策略是先筛选后调用:
筛选规则(只用结构化数据,不需要 LLM):
- 当日涨跌幅 > 5% 或 < -5%
- 当日主力净流入 > 5000 万 或 < -5000 万
- 当日有"业绩预告"“减持”“回购”“中标”"重大合同"类公告
- 当日成交量 > 5 日均量的 2 倍
筛选后每天大约剩 30-50 只股票进入 LLM 调用,单日成本降到 $1.5 左右。
LLM 调用我用了异步并发,30-50 只股票并行调用,5 分钟内全部完成。
摘要推送层
LLM 输出的摘要用 Streamlit Dashboard 展示,我每天早上 9 点打开 dashboard 就能看到。
同时每天 8:30 通过企业微信 webhook 推送"今日重点关注摘要 TOP 10"到我的手机。这 TOP 10 是按"事件重要性"排序的,我自己写了一个简单的排序规则:
- 有业绩预告的股票排最前
- 有大额回购 / 减持的股票排第二
- 资金大幅流入 + 价格上涨的股票排第三
实际运行效果
2024 年 1 月到 3 月的实测数据:
- 每日推送摘要数量:35 ± 12 篇
- 摘要平均长度:186 字
- 摘要完整度评分(我自己打分):4.2/5.0
- 摘要中错误信息率:约 6%(LLM 偶尔编造数据,需要人工校验)
整体效率提升:
- 之前:每天 4-5 小时浏览公告
- 现在:每天 30-40 分钟看摘要,感兴趣再点开原文
- 效率提升 6-8 倍
踩过的 3 个坑
第一个坑是 LLM 幻觉。GPT-4 会"编造"不存在的公告细节,比如把"减持 1%“说成"减持 5%”。解决方案:让 LLM 输出时强制附带"信息源引用",凡是没有源数据的描述必须标注"信息源不明确"。
第二个坑是 token 超限。某些公告正文特别长(比如重大资产重组方案),单个 prompt 会超过 GPT-4 的 8K 限制。解决方案:先用一个简短的摘要模型把长公告压缩成 300 字,再喂给 GPT-4。
第三个坑是 prompt 注入。LLM 收到公告正文后,偶尔会被公告里的"我司郑重承诺…" 这种官方语气带偏,输出"看好 / 不看好"这种主观判断。解决方案:在 system prompt 里强制"客观陈述,不预测涨跌"。
接口汇总
这次实战用到的 ig50 接口:
time/data/gonggao:当日全市场公告分类(含正文)time/zijin/zjlrqs/last10/{code}:最近 10 个交易日资金流向time/real/{code}:当日行情time/history/trade/{code}/day:历史日线(计算异动)time/f10/info/{code}:公司基本信息(用于 prompt 上下文)time/data/longhubang:龙虎榜(资金异动分析)
整个系统用 ig50 的本地数据 + Python + GPT-4 搭起来,单机就能跑。最大的成本不是工程实现,是 LLM API 调用费。 但只要你做好前置筛选,把 LLM 调用量控制在每天 50 次以内,月成本不到 50 美元。
更多推荐
所有评论(0)