TradingAgents-CN 个股技术分析报告深度解析:以 000001(平安银行)DeepSeek 增强分析为例
【免费下载链接】TradingAgents-CN基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN
本文以仓库实际运行产出的报告 data/reports/000001_deepseek_enhanced_analysis_20250703_172130.md 为骨架,逐层拆解一份"DeepSeek 增强技术分析报告"的字段含义、指标计算原理与底层实现链路,并结合 TradingAgents-CN 的技术指标库与分析 Agent 源码,说明"先精确计算指标、再由大模型深度分析"的两阶段设计如何在实践中落地、如何应对模型接口异常。
一、报告全景:一份典型 DeepSeek 增强技术分析报告长什么样
该报告是针对 A 股标的 000001(平安银行)生成的技术分析报告,生成时间为 2025-07-03 17:21:30。报告头部明确标注了两种核心信息:
- 分析方法:先精确计算技术指标,再由 DeepSeek 进行深度分析;
- 数据来源:Tushare 数据接口 + 增强技术分析器。
这两行描述实际上是整个报告生成链路的浓缩:数据层(Tushare 行情)→ 计算层(增强技术分析器精确计算 MA/RSI/MACD 等指标)→ 语义层(DeepSeek 基于指标做文字化深度解读)。报告内嵌的"技术数据详情"(<details>折叠区)正是计算层产出的结构化证据,而标题中的"DeepSeek 增强"则代表语义层的模型参与。
值得注意的是,这份报告头部还记录了这样一条信息:
API调用失败: HTTPSConnectionPool(host='api.deepseek.com', port=443): Read timed out.这说明生成过程中 DeepSeek 接口曾出现读超时,但报告依然完整落盘。这一细节恰恰验证了该架构的容错设计——技术数据由本地指标引擎精确计算,不依赖外部模型也能先产出,LLM 只是"增强"环节,失败不会导致整份报告缺失。下文将分别解析技术数据的内容与含义,以及这一容错机制背后的源码支撑。
二、技术数据详情逐项解读
报告折叠区内是一份完整的"000001 股票数据分析",由四部分组成:实时行情、历史数据概览、技术指标、最近 5 日数据。
2.1 实时行情
| 字段 | 数值 | 说明 |
|---|---|---|
| 股票名称 | 平安银行 | 000001.SZ 对应的公司名 |
| 当前价格 | ¥12.35 | 收盘价 |
| 涨跌幅 | 0.24% | 当日涨跌幅度 |
| 成交量 | 794,085 手 | 当日成交手数 |
| 更新时间 | 2025-07-03 15:28:58 | A 股收盘后时间点 |
该行情数据来自 Tushare 实时接口。结合 data/reports 目录下的其他报告可知,此类报告由增强技术分析器在获取行情后统一渲染,字段顺序与市场分析 Agent 提示词中要求的"基本信息"小节一一对应(见第四节)。
2.2 历史数据概览
- 数据期间:2025-05-28 至 2025-07-03;
- 数据条数:26 条(即 26 个交易日);
- 期间最高:¥12.58;
- 期间最低:¥11.44;
- 期间涨幅:7.11%。
约一个月的回看窗口用于支撑移动平均线等中短期指标的计算。期间最高价 12.58 出现在 2025-06-27,与最近 5 日数据表中该日 High=12.58 完全吻合,可确认概览统计与明细数据同源。
2.3 技术指标
报告计算了 5 个核心指标:
- MA5 = ¥12.25:5 日收盘价简单移动平均,反映超短期成本线;
- MA10 = ¥12.14:10 日移动平均,反映短期趋势;
- MA20 = ¥11.94:20 日移动平均(约一个月),反映中期趋势;
- RSI = 73.33:14 日相对强弱指标,数值高于 70,进入传统超买区间;
- MACD = 0.1324:MACD 柱(DIF − DEA 的差值),正值且为正,表明短期动能强于中期动能,处于多头格局。
从均线排列看,MA5 > MA10 > MA20,呈典型的多头排列;RSI 73.33 提示短线超买;MACD 柱为正值。这份"指标快照"就是交给 DeepSeek 进行语义解读的输入素材。关于这些数值如何在源码中被计算出来,见第三节。
2.4 最近 5 日数据
报告以表格形式给出了截至 2025-07-03 的 5 个交易日 OHLCV 数据:
| 日期 | Open | Close | High | Low | Volume | Amount | Symbol |
|---|---|---|---|---|---|---|---|
| 2025-06-27 15:00:00 | 12.37 | 12.20 | 12.58 | 12.13 | 2,377,600 | 2.937865e+09 | 000001 |
| 2025-06-30 15:00:00 | 12.14 | 12.07 | 12.17 | 11.96 | 1,504,819 | 1.812492e+09 | 000001 |
| 2025-07-01 15:00:00 | 12.06 | 12.30 | 12.33 | 12.06 | 1,354,341 | 1.653807e+09 | 000001 |
| 2025-07-02 15:00:00 | 12.31 | 12.32 | 12.41 | 12.23 | 1,200,411 | 1.481842e+09 | 000001 |
| 2025-07-03 15:00:00 | 12.33 | 12.35 | 12.42 | 12.28 | 794,085 | 9.805460e+08 | 000001 |
该表除 OHLCV 外还包含Amount(成交额)、year/month/day/hour/minute时间分片字段与Symbol代码字段,是 Tushare 日线数据入库后的原始形态。可以看到 6 月 30 日缩量回踩(Volume 1,504,819)后连续 3 日放量上行至 12.35,与 MA5=12.25、RSI 抬升的技术面相互印证。数据尾注明确标注"数据来源: Tushare数据接口 (实时数据)"。
2.5 免责声明
报告末尾固定携带免责声明:"本报告仅供参考,不构成投资建议。投资有风险,入市需谨慎。"这是所有自动生成分析报告的标配收尾,提示读者报告仅用于研究演示,不应作为直接交易决策依据。
三、指标计算原理:增强技术分析器的源码实现
报告中出现的 MA5/MA10/MA20、RSI、MACD 均来自仓库的指标计算库 tradingagents/tools/analysis/indicators.py。该模块以 pandas 为基础实现了完整的量化指标族,并在add_all_indicators中一次性批量挂载,下面看关键实现。
3.1 移动平均线 MA 与指数平均 EMA
ma(close, n, min_periods=None)(indicators.py)对收盘价序列做滚动求和平均,即标准的简单移动平均 SMA。ema(close, n)(同文件 L42)则实现指数加权平均,用于 MACD 计算。在add_all_indicators(同文件 L279)中,MA5、MA10、MA20、MA60 会被一次性写入数据框:
# 计算移动平均线(MA5, MA10, MA20, MA60)报告中的 MA5=12.25、MA10=12.14、MA20=11.94 即对近 5/10/20 个交易日收盘价取平均的结果。
3.2 MACD 的三段式计算
macd(close, fast=12, slow=26, signal=9)(indicators.py)采用经典参数(12、26、9):
- DIF = EMA(fast) − EMA(slow),即快慢指数均线之差;
- DEA = DIF 的 signal 周期 EMA;
- macd_hist = DIF − DEA,即 MACD 柱。
报告中的 MACD=0.1324 正是该柱值。其为正表明 DIF 位于 DEA 上方,属于多头动能占优状态。
3.3 RSI:国际标准与中国风格双模式
rsi(close, n=14, method='ema')(indicators.py)支持三种算法:'ema'(国际标准,用 EMA 平滑涨跌幅)、'sma'(简单平均)、'china'(中国式 SMA)。不支持的算法会抛出明确的 ValueError(同文件 L117)。
在add_all_indicators中,计算风格由rsi_style参数控制(同文件 L292-L303):
'international':RSI14,使用 EMA(默认);'china':同时输出 RSI6、RSI12、RSI24(中国式 SMA)以及作为国际参考的 RSI14(简单移动平均)。
报告中的 RSI=73.33 为国际标准 RSI14(EMA 平滑),>70 落入超买区间。若启用中国风格模式,同一数据还会额外产出 RSI6/12/24,供分析师对比短中长周期强弱。
3.4 指标族的完整覆盖
除上述三者外,indicators.py 还实现了布林带boll(默认 20 日、2 倍标准差,L124)、ATR 真实波幅(L149)、KDJ(L159),并通过IndicatorSpec+compute_many/compute_indicator提供声明式批量计算能力,last_values用于抽取最新指标值供报告渲染。市场分析师提示词中提到的"移动平均线、MACD、RSI、布林带"均有对应的确定性计算实现,这正是"先精确计算技术指标"的技术基础。
四、报告生成链路:市场分析师的工具调用与输出约束
4.1 两阶段生成:工具取数 → LLM 成文
报告标题中的"DeepSeek 增强"指代语义分析环节由大模型承担。其生成入口在 tradingagents/agents/analysts/market_analyst.py,工作流被系统提示词明确约束(L159-L167):
- 若消息历史中没有工具结果,立即调用
get_stock_market_data_unified工具取数(只需传当前分析日期,系统会自动扩展到 365 天历史数据); - 若已有工具结果,立即基于数据生成最终报告,不得重复调用工具;
- 一次工具调用后必须直接产出报告。
chain = prompt | llm.bind_tools(tools)(L246)将提示词与大模型绑定工具能力,工具返回的数据以ToolMessage形式回填(L349-L353),随后 LLM 基于真实行情撰写分析——这也解释了为什么报告中的技术数据与提示词要求的"具体数值"能够严格对应:数值由本地指标引擎算好,模型只负责解读。
4.2 输出格式模板与报告字段的对应
market_analyst.py 中定义了强约束的输出格式模板,要求报告按"股票基本信息 → 技术指标分析(MA 均线系统、MACD、RSI、布林带)→ 价格趋势分析 → 投资建议"组织,且禁止使用 emoji、禁止自创标题。将模板与本文报告的折叠区数据对照即可发现:
- "当前价格/涨跌幅/成交量" ← 报告实时行情区;
- "MA5、MA10、MA20、MA60 当前数值、均线排列形态、价格与均线位置关系、均线交叉信号" ← 报告 MA 指标区;
- "DIF、DEA、MACD 柱状图当前数值" ← 报告 MACD 字段;
- "RSI 当前数值、超买超卖判断" ← 报告 RSI 字段。
也就是说,data/reports/000001_deepseek_enhanced_analysis_20250703_172130.md 折叠区中的技术数据,正是喂给模型并支撑上述各小节的事实底座。
4.3 前端调用入口
从应用层看,Web 端通过 app/services/simple_analysis_service.py 调用分析能力——该服务初始化TradingAgentsGraph(L22),并在get_provider_by_model_name(L53)中按模型名从数据库配置反查供应商(如deepseek),从而决定调用哪个模型完成语义增强环节。模型配置与供应商的对应关系可在仓库的模型能力配置与初始化脚本中查阅(如 app/constants/model_capabilities.py、app/scripts/init_providers.py)。
五、容错设计:DeepSeek 超时时报告为何仍能生成
本报告头部明确记录了api.deepseek.com的 HTTPS 读超时。之所以报告仍能完整产出,从架构上可以推断出如下分层保障:
- 指标计算与 LLM 解耦:MA/RSI/MACD 由 indicators.py 本地确定性计算,不依赖任何外部模型,因此技术数据在任何情况下都可先产出;
- 两阶段降级:"先精确计算技术指标,再由 DeepSeek 深度分析"的设计天然支持部分失败——LLM 调用失败时,数据层结果(折叠区内容、行情、指标)依然完整,报告以"技术数据详情 + 失败标注"的形式落盘,供使用者排查接口状态而非丢失全部信息;
- 报告独立落盘:报告文件保存于 data/reports 目录(同类结果另有 data/analysis_results),生成与存储流程不因模型接口异常而中断。
这一机制对生产环境的意义在于:当第三方模型服务抖动时,行情与技术指标仍可及时沉淀,配合仓库中的模型配置重试与供应商切换逻辑(如 app/core/startup_validator.py 中的配置校验),可以在接口恢复后重跑"增强"环节而无需重新拉取行情数据。
六、如何复现与阅读同类报告
- 报告产出位置:个股深度分析报告统一存放于 data/reports,批量分析结果存放于 data/analysis_results,命名规则为"股票代码 + 分析方法 + 时间戳",本文报告即
000001+deepseek_enhanced+20250703_172130; - 指标计算复现:直接使用 tradingagents/tools/analysis/indicators.py 中的
ma、macd、rsi、boll、add_all_indicators,传入 Tushare 行情 DataFrame 即可得到与报告一致的指标值; - 完整分析流程复现:通过 app/services/simple_analysis_service.py 触发
TradingAgentsGraph完成"取数 → 算指标 → LLM 增强 → 落盘"的全流程; - 数据源说明:报告行情来自 Tushare 接口(仓库对应初始化脚本为 cli/tushare_init.py),报告中标注的"实时数据"为当日收盘行情。
阅读任何一份此类报告时,建议按"行情快照 → 指标快照 → 模型解读"三层递进:先核对实时行情与历史概览是否自洽,再看 MA 排列、RSI 超买超卖与 MACD 柱方向是否一致,最后才参考模型的文字化解读,并始终记住报告末尾的免责声明——它是自动生成研究报告的组成部分,不构成投资建议。
【免费下载链接】TradingAgents-CN基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考