TradingAgents-CN 增强数据分析报告全解:以平安银行(000001)为例,从字段含义到技术指标源码实现
【免费下载链接】TradingAgents-CN基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN
导读
本文以 TradingAgents-CN 仓库中真实生成的增强数据分析结果文件 data/analysis_results/exports/enhanced_data_000001_20250703_170942.md 为骨架,系统拆解该报告的结构、每个字段的技术含义,并结合仓库源码揭示技术指标的计算原理与数据来源链路。读完本文,你将掌握:如何读懂一份增强数据分析报告、MA/RSI/MACD 等指标在项目中的真实算法实现、增强数据如何通过 MongoDB 优先模式被获取,以及该报告如何作为 DeepSeek 增强技术分析的输入底座。
一、增强数据分析报告是什么
增强数据分析报告是 TradingAgents-CN 中"数据获取 → 指标计算 → 报告生成"流水线的直接产物。它并不由大模型生成,而是由数据层代码基于真实行情数据精确计算、格式化输出的一页结构化数据摘要,其核心价值在于:先保证数字精确,再交给 LLM 做深度解读。
以平安银行(000001)为例,enhanced_data_000001_20250703_170942.md这份报告在 2025-07-03 17:09:42 生成,全文由四大部分组成:
- 实时行情:股票名称、当前价格、涨跌幅、成交量、更新时间;
- 历史数据概览:数据期间、数据条数、期间最高/最低价、期间涨幅;
- 技术指标:MA5/MA10/MA20、RSI、MACD;
- 最近 5 日数据:逐日 OHLCV 明细表。
该文件存放于仓库的 data/analysis_results/exports/ 目录,与000001_deepseek_enhanced_analysis_20250703_171120.md等下游分析报告并列,可以直观看出"增强数据"是"LLM 深度分析"的前置输入。
二、报告结构逐字段解读
2.1 实时行情:分析时刻的快照
报告开头的"实时行情"节给出分析时刻的行情快照:
| 字段 | 值 | 含义 |
|---|---|---|
| 股票名称 | 平安银行 | 报告主体 |
| 当前价格 | ¥12.35 | 快照时点最新成交价 |
| 涨跌幅 | 0.24% | 相对前一交易日收盘的涨跌比例 |
| 成交量 | 794,085手 | 当日累计成交量(A股一手为100股) |
| 更新时间 | 2025-07-03 15:28:58 | 数据时间戳,为当日收盘后 |
该字段组为后续所有指标计算提供了"最新收盘价"这一锚点,也是报告中最近5日数据里 2025-07-03 收盘价 12.35 元的来源。
2.2 历史数据概览:一段区间的统计画像
- 数据期间:2025-05-28 至 2025-07-03(约 5 周交易日窗口)
- 数据条数:26 条(日线记录,对应约 26 个交易日)
- 期间最高:¥12.58(出现在 6 月 27 日)
- 期间最低:¥11.44(出现在 5 月 28 日附近)
- 期间涨幅:7.11%(区间首末收盘价变化)
这组统计回答了"这只股票最近一段时间波动区间有多大",是判断趋势强度的基础:区间跨度 1.14 元(约 10%),期间整体上行,为后面的技术指标提供了上下文。
2.3 技术指标:报告的核心
| 指标 | 值 | 技术含义 |
|---|---|---|
| MA5 | ¥12.25 | 5 日收盘均价,短期趋势线 |
| MA10 | ¥12.14 | 10 日收盘均价,短中期趋势线 |
| MA20 | ¥11.94 | 20 日收盘均价,中期趋势线 |
| RSI | 73.33 | 相对强弱指标,>70 进入超买区 |
| MACD | 0.1324 | 柱状值,>0 表示多头占优 |
从这些数值可立刻读出关键信息:MA5 > MA10 > MA20,价格站上全部均线,形成多头排列;RSI 73.33 处于超买区间;MACD 为正,中期动能向上。该组指标正是后续 LLM 深度分析判断"短期超买但中期向好"的核心依据。
2.4 最近 5 日数据:OHLCV 明细
报告以 DataFrameto_string()风格输出最近 5 个交易日明细,列为Open / Close / High / Low / Volume / Amount / year / month / day / hour / minute / Symbol:
| 日期 | Open | Close | High | Low | Volume | Amount |
|---|---|---|---|---|---|---|
| 2025-06-27 | 12.37 | 12.20 | 12.58 | 12.13 | 2,377,600 | 29.4亿 |
| 2025-06-30 | 12.14 | 12.07 | 12.17 | 11.96 | 1,504,819 | 18.1亿 |
| 2025-07-01 | 12.06 | 12.30 | 12.33 | 12.06 | 1,354,341 | 16.5亿 |
| 2025-07-02 | 12.31 | 12.32 | 12.41 | 12.23 | 1,200,411 | 14.8亿 |
| 2025-07-03 | 12.33 | 12.35 | 12.42 | 12.28 | 794,085 | 9.8亿 |
值得注意的是成交量逐日萎缩:从 6 月 27 日的 237.8 万手降至 7 月 3 日的 79.4 万手,降幅约 66%;同时价格却在上涨(12.20 → 12.35)。这一"价涨量缩"现象被下游 DeepSeek 分析报告明确标记为量价背离信号。
2.5 数据来源声明
报告末尾注明"数据来源: Tushare数据接口 (实时数据)",说明该份增强数据由 Tushare 实时接口驱动。
三、技术指标计算原理与源码实现
增强数据报告中的每个数字都可在源码中找到精确的计算逻辑,核心实现在 tradingagents/dataflows/data_source_manager.py 的_format_stock_data_response方法(L682 起)。
3.1 移动平均线:rolling 窗口均值
data['ma5'] = data['close'].rolling(window=5, min_periods=1).mean() data['ma10'] = data['close'].rolling(window=10, min_periods=1).mean() data['ma20'] = data['close'].rolling(window=20, min_periods=1).mean() data['ma60'] = data['close'].rolling(window=60, min_periods=1).mean()MA 采用 pandas 的rolling(window=N).mean(),即简单移动平均;min_periods=1保证数据不足窗口长度时也能产出值。报告中的 MA5=12.25 / MA10=12.14 / MA20=11.94 即由此得出。
3.2 RSI:同花顺风格的中国式 SMA 算法
源码注释明确指出 RSI 采用"同花顺/通达信"风格,使用中国式 SMA(等价于ewm(com=N-1, adjust=True)),而非国际通用的简单平均:
delta = data['close'].diff() gain = delta.where(delta > 0, 0) loss = -delta.where(delta < 0, 0) # RSI6 / RSI12 / RSI24 —— 同花顺风格 avg_gain6 = gain.ewm(com=5, adjust=True).mean() avg_loss6 = loss.ewm(com=5, adjust=True).mean() rs6 = avg_gain6 / avg_loss6.replace(0, np.nan) data['rsi6'] = 100 - (100 / (1 + rs6)) # ... RSI12、RSI24 同理 # RSI14 —— 国际标准参考(简单移动平均) gain14 = gain.rolling(window=14, min_periods=1).mean() loss14 = loss.rolling(window=14, min_periods=1).mean() data['rsi14'] = 100 - (100 / (1 + rs14))项目同时计算 RSI6/12/24(同花顺风格,面向 A 股用户习惯)与 RSI14(国际标准),报告展示的 RSI 73.33 即其中一种的最终值。
3.3 MACD:EMA 差离值
ema12 = data['close'].ewm(span=12, adjust=False).mean() ema26 = data['close'].ewm(span=26, adjust=False).mean() data['macd_dif'] = ema12 - ema26 data['macd_dea'] = data['macd_dif'].ewm(span=9, adjust=False).mean() data['macd'] = (data['macd_dif'] - data['macd_dea']) * 2MACD 采用标准 12/26/9 参数:DIF = EMA12 − EMA26,DEA 为 DIF 的 9 日 EMA,柱状值 = (DIF − DEA) × 2,报告中的 MACD 0.1324 即最终柱状值。
3.4 布林带与展示优化
源码还计算布林带(20 日均线 ± 2 倍标准差)作为辅助指标,但为了控制 token 消耗,_format_stock_data_response只保留最后 5 行明细展示(display_rows = min(5, len(data))),其余指标值取data.iloc[-1]最新一行——这正是报告中"最近5日数据"恰好 5 行的原因。
美股数据提供器 tradingagents/dataflows/providers/us/optimized.py(L280 起)输出格式与 A 股报告高度一致(数据条数/期间最高/最近5日数据),且复用了统一指标计算函数
add_all_indicators(见 tradingagents/tools/analysis/indicators.py),说明该报告格式是跨市场统一的通用模板。
四、增强数据从哪来:三层数据获取链路
"增强数据"中的"增强"指的是数据获取不再是单一的 API 直连,而是遵循MongoDB 同步数据 → 文件缓存 → API 实时获取的三级降级策略。相关机制在 docs/integration/enhanced_data_integration.md 中有完整说明。
4.1 配置开关 TA_USE_APP_CACHE
通过环境变量控制优先级:
# 启用 MongoDB 优先模式(推荐生产环境) TA_USE_APP_CACHE=true # 禁用,使用传统文件缓存 TA_USE_APP_CACHE=false4.2 增强数据适配器
tradingagents/dataflows/cache/mongodb_cache_adapter.py 提供向后兼容的适配器入口get_enhanced_data_adapter()(L362),以及带降级的获取函数:
from tradingagents.dataflows.enhanced_data_adapter import ( get_stock_data_with_fallback, get_financial_data_with_fallback, ) adapter = get_enhanced_data_adapter() if adapter.use_app_cache: df = adapter.get_historical_data(symbol, start_date, end_date) # MongoDB 优先get_stock_data_with_fallback(L367)的逻辑是:若use_app_cache开启且 MongoDB 有数据,直接返回;否则降级到fallback_func走传统数据源——这正是本报告"数据来源: Tushare数据接口"的兜底链路。启用 MongoDB 模式时日志会输出📊 增强数据适配器已启用 - 优先使用MongoDB数据、📊 使用MongoDB历史数据: 000001等标记。
五、增强数据 → DeepSeek 深度分析:报告的下游消费
增强数据报告本身不包含任何投资判断,它的使命是作为 LLM 分析的"精确输入"。仓库同目录下的 data/analysis_results/exports/000001_deepseek_enhanced_analysis_20250703_171120.md 展示了这条消费链路,其文件头明确写着:
分析方法: 先精确计算技术指标,再由DeepSeek进行深度分析数据来源: Tushare数据接口 + 增强技术分析器
该深度报告把增强数据解读为完整的投资分析框架:
- 技术指标综合分析:从多头排列(MA5>MA10>MA20)判断上升动能,从 RSI 73.33 识别超买与"高位钝化",从 MACD 正向发散确认中期趋势,并捕捉到"价涨量缩"的背离信号;
- 趋势与关键价位:基于均线/区间高低点推导支撑位(¥12.25/¥12.00/¥11.94)与阻力位(¥12.42/¥12.58/¥13.00);
- 风险评估:从 RSI 超买、成交量萎缩(237万→79万手)量化回调概率与流动性风险;
- 投资建议:分层给出短线/中线操作、止损位与仓位控制方案。
可见增强数据报告解决了 LLM 分析最大的痛点——幻觉数字:所有均线、RSI、MACD、区间高低点均由确定性代码算出,LLM 只负责在精确数据之上做趋势研判与策略生成。
六、如何复现与验证
6.1 运行集成测试
仓库提供了增强数据整合的验证脚本:
python examples/test_enhanced_data_integration.py该测试覆盖:增强数据适配器功能、优化数据提供器功能、缓存模式对比、性能基准测试四类用例。
6.2 自行生成增强数据报告
参考 examples/test_enhanced_data_integration.py 与 docs/integration/enhanced_data_integration.md 中的示例,可通过优化数据提供器获取股票数据后格式化输出:
from tradingagents.dataflows.optimized_china_data import get_optimized_china_data_provider provider = get_optimized_china_data_provider() stock_data = provider.get_stock_data("000001", "2025-05-28", "2025-07-03")若要生成与本文示例完全一致的技术指标报告,可在启用TA_USE_APP_CACHE=true且 Tushare 数据可用的情况下,走_format_stock_data_response的完整格式化流程(源码位于 tradingagents/dataflows/data_source_manager.py)。
七、注意事项
- 数据依赖同步服务:MongoDB 优先模式依赖定时同步服务持续更新数据,需保证同步任务正常运行(见 docs/integration/enhanced_data_integration.md);
- 指标口径差异:项目 RSI 默认采用同花顺风格(
ewm(com=N-1, adjust=True)),与通达信、国际通用的 RSI14 存在数值差异,解读时需注意口径; - 报告仅供研究:增强数据报告与 DeepSeek 深度分析报告均为研究性输出,报告中明确标注"本报告仅供参考,不构成投资建议。投资有风险,入市需谨慎"。
【免费下载链接】TradingAgents-CN基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考