一、真实痛点:大模型分析股票,幻觉满天飞
前段时间,我试着让 TRAE 直接分析一只股票:
分析 603019.SH,给出买卖建议
它给我生成了一份「分析报告」------看起来很专业,有均线、MACD、KDJ,还有买卖区间。但我去核对数据时发现问题:
- 指标数据是编的:它说的「当前价 45.2」实际是 42.8,「MACD 金叉」那天根本没有金叉
- 回测数据不存在:它说的「历史胜率 65%」完全是幻觉,根本没有跑过回测
- 买卖区间靠猜:没有 ATR、没有布林带,区间数字凭空冒出来
这就是大模型分析金融数据的致命问题:幻觉。
大模型没有实时行情数据,没有量化框架,只能基于训练语料「编造」看似合理的分析。但你敢拿这个做交易决策吗?
我的量化分析框架是这样的:
- 多因子加权打分定方向:趋势(均线排列)+ 动能(MACD/KDJ)+ 资金(主力净流入)+ 基本面(PE/PB 分位),四个维度加权求和,输出一个「时机评分」
- 波段规则定进出场:突破 20 日高点 + 放量确认 → 入场;跌破 10 日均线 → 止盈止损
- 左侧 + FSS 只做观察:不作为交易信号,但会纳入风险判断
- ATR / 布林带定三档区间:用 ATR 计算波动率,布林带确认支撑压力位,输出「激进/中性/保守」三档买入区间
- LangGraph 做数据质检与二次复核:行情数据拉回来后,自动跑一遍质检流程,剔除异常值、补齐缺失字段,再用 LLM 做一轮逻辑校验
这套框架已经封装成本地脚本,一条命令就能跑完整流程,数据来源是 AKShare,不是编的。
核心问题:大模型有幻觉,工具没有
我要解决的是:让 TRAE 不再编数据,而是调用真实的量化分析工具。
二、实操过程:让 TRAE 接管整个流程
第一步:在项目里加一条「规则文件」
TRAE 启动时会自动读取工作区根目录的规则文件,里面定义了工具的调用方式。
我在项目根目录创建了一个规则文件,内容大致是:
markdown
## 触发条件
当用户说「个股分析」「生成报告」「买卖时机」「回测」时,调用外部工具
## 命令模板
"$ADVISOR_AGENT_BIN" \
--symbols "<symbol>" \
--backtest \
--report-lang zh \
--history-dir "./data/history" \
--report-html "./reports/<symbol>_report.html"
## 输出约定
执行后返回:报告路径 + 摘要表格(股票名称、代码、操作建议、风险点)
第二步:直接对 TRAE 说一句话
我打开 TRAE,直接输入:
分析 603019.SH
TRAE 自动做了这些事:
- 识别意图:匹配「个股分析」关键词
- 提取代码 :从文本里识别
603019.SH - 推断语言 :用户说的是中文,设置
--report-lang zh - 构建命令:按模板生成完整命令
- 创建目录 :执行前先
mkdir -p ./data/history ./reports
第三步:几秒钟后,HTML 报告自动生成
TRAE 执行完命令后输出:
bash
Report generated: ./reports/603019.SH_report.html
同时返回一份摘要表格,核心字段包括:
| 名称 | 代码 | 时机评分 | 信号 | 激进区 | 中性区 | 保守区 | 关键风险 |
|---|---|---|---|---|---|---|---|
| 中科曙光 | 603019.SH | 45/100 | 观望 | 42.0-42.5 | 44.0-44.5 | 46.0-46.5 | 行业周期下行 |
字段说明:
- 时机评分:多因子加权后的综合评分(趋势+动能+资金+基本面)
- 信号:基于波段规则的交易建议(买入/持有/卖出/观望)
- 三档区间:ATR + 布林带计算得出的买入参考价位
- 关键风险:LangGraph 质检后标记的异常点或风险因素
三、落地成果:批量分析 16 只股票,效率翻倍
有了这套流程,我试着批量分析工作区里的 16 只股票(数据都在 ./data/history 里)。
原来手动操作:
- 每只股票敲一次命令,改代码、改路径
- 16 只股票,至少 20 分钟
现在用 TRAE:
- 连续说 16 次「分析 xxx.SH」
- TRAE 自动调用工具,生成报告 + 返回摘要
- 全程不到 5 分钟
最终交付物:
reports/
├── 000791.SZ_report.html
├── 000938.SZ_report.html
├── 000977.SZ_report.html
├── 002050.SZ_report.html
├── 002202.SZ_report.html
├── 002361.SZ_report.html
├── 002475.SZ_report.html
├── 002648.SZ_report.html
├── 513120.SH_report.html
├── 600176.SH_report.html
├── 601138.SH_report.html
├── 601398.SH_report.html
├── 601872.SH_report.html
├── 603019.SH_report.html
├── 603993.SH_report.html
每份报告都包含完整的量化分析输出:
1. 多因子加权评分
- 趋势因子:均线排列状态(多头/空头/震荡)
- 动能因子:MACD 金叉死叉、KDJ 超买超卖
- 资金因子:主力净流入、北向资金变动
- 基本面因子:PE/PB 在历史分位的相对位置
四个维度加权后输出一个「时机评分」(0-100),>60 偏多,<40 偏空。
2. 波段交易规则匹配
- 入场条件:突破 20 日高点 + 放量确认
- 止盈条件:跌破 10 日均线
- 止损条件:跌破入场价 5%
3. 三档买入区间(ATR + 布林带)
- 激进区:布林带下轨附近,风险高、收益高
- 中性区:布林带中轨附近,风险收益平衡
- 保守区:布林带上轨附近,风险低、收益低
4. LangGraph 数据质检结果
- 异常值剔除:成交量异常放大/缩小
- 缺失字段补齐:用前值填充或线性插值
- 逻辑校验:价格与成交量是否背离
四、复用经验:量化分析框架 + TRAE 调度,这套模式可以直接照搬
经验一:触发词要覆盖口语化表达
规则文件里写清楚触发条件,覆盖中英文:
markdown
当用户说「个股分析」「stock analysis」「生成报告」「买卖时机」「回测」时...
这样不管怎么问,TRAE 都能正确路由到量化分析工具。
经验二:多因子评分的逻辑要可追溯
每次生成的报告里,要能看到每个因子的原始数据和权重:
markdown
时机评分 = 趋势(40%) + 动能(30%) + 资金(20%) + 基本面(10%)
这样用户才能理解评分是怎么算出来的,不是黑盒。
经验三:三档区间要绑定具体的指标
不要只给一个「买入区间」,要拆成激进/中性/保守三档,并说明每一档的计算依据:
- 激进区 = 布林带下轨 - 0.5×ATR
- 中性区 = 布林带中轨
- 保守区 = 布林带上轨 + 0.5×ATR
这样不同风险偏好的用户都能找到合适的入场点。
经验四:LangGraph 质检要自动触发
数据质检流程不要手动跑,要在量化分析前自动触发:
markdown
Before analysis:
1. LangGraph 拉取 AKShare 数据
2. 质检:剔除异常值、补齐缺失字段
3. 二次复核:LLM 校验逻辑一致性
这样能避免脏数据污染整个分析结果。
经验五:输出要「结构化」,不要只说「完成了」
规定 TRAE 返回的内容格式:
markdown
After execution, return:
1. 报告路径
2. 摘要表格(时机评分 + 三档区间 + 关键风险)
3. 质检结果(异常字段、校验状态)
这样用户一眼就能看到关键信息,不用再打开 HTML 文件翻。
五、这套模式还能用在哪些场景?
核心思路:在规则文件里定义调用方式,让 TRAE 自动路由到本地工具。
其他可复用的场景:
- 自动化测试 :定义
pytest模板,开发完自动跑测试 - 文档生成 :定义
swagger/markdown输出路径,自动生成 API 文档 - 数据清洗 :定义
pandas脚本模板,自动处理数据表 - 部署流水线 :定义
docker build/push命令,辅助发布流程
只要你的工具是命令行可调用的,就能用这套模式让 TRAE 接管。
总结
通过一个规则文件 + TRAE 自动调度,我实现了:
- 一句话触发完整流程:从「分析 603019.SH」到生成多因子评分 + 三档区间 + 质检报告
- 量化框架全链路自动化:多因子打分 → 波段规则匹配 → ATR/布林带定区间 → LangGraph 质检
- 批量处理效率翻倍:16 只股票,从 20 分钟降到 5 分钟
- 可复用的模式:关键词路由 + 命令模板 + 结构化输出
如果你也有自己的量化分析框架,想让 TRAE 帮你自动调度,试试在项目根目录加一份规则文件------把多因子评分逻辑、三档区间算法、LangGraph 质检流程都定义清楚,从此告别手动算因子、手动画区间。
