TradingAgents-CN 市场分析报告解读:读懂 000001 技术分析报告的生成逻辑与实战应用
【免费下载链接】TradingAgents-CN基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN
本文以 TradingAgents-CN 仓库中一份真实输出的市场分析报告——平安银行(000001)2025年7月21日至7月28日的技术分析报告(data/analysis_results/detailed/000001/2025-07-28/reports/market_report.md)为标本,逐节拆解其价格趋势、技术指标、支撑阻力位、成交量与投资建议背后的分析框架,并结合仓库源码说明该报告是如何由"市场分析师(Market Analyst)"智能体基于真实数据自动生成的。读者读完本文将掌握:如何读懂并复现一份多智能体框架产出的 A 股技术分析报告、报告每个章节的数据来源与生成链路,以及如何将仓库中的指标计算、数据工具与报告保存机制应用到自己的分析任务中。
一、报告是什么:一份由市场分析师智能体自动生成的技术分析文档
这份报告位于data/analysis_results/detailed/000001/2025-07-28/reports/market_report.md,文件名market_report.md对应多智能体框架中"市场分析师"节点的输出。在 TradingAgents-CN 的智能体状态中,market_report是贯穿多个节点的核心字段,例如在 docs/agents/v0.1.13/analysts.md 中将其定义为"市场分析报告",在 docs/agents/v0.1.13/managers.md、docs/agents/v0.1.13/researchers.md 与 docs/agents/v0.1.13/risk-management.md 中,研究经理、风险经理等节点都会读取market_report作为后续决策输入。
从报告目录结构可以推断,同一次分析会话中还会并行产出fundamentals_report.md(基本面)、news_report.md(新闻)、investment_plan.md(投资计划)、trader_investment_plan.md(交易员计划)与final_trade_decision.md(最终交易决策)等报告(见 data/analysis_results/detailed/000002/2025-07-29/reports/ 等目录),市场分析报告是这条多智能体流水线中的第一层"技术面输入"。
报告的保存机制可以在 app/services/simple_analysis_service.py 中确认:系统将state中的market_report键以market_report.md文件名写入data/analysis_results/<股票代码>/<分析日期>/reports/目录,标题规范为{stock_symbol} 股票技术分析报告。这也是为什么每个日期目录下都会出现reports/market_report.md。
二、报告内容逐节解读:技术分析的六层结构
原报告采用六章结构:价格趋势 → 技术指标 → 支撑阻力位 → 成交量 → 投资建议 → 总结。这是市场分析师提示词模板中明确要求的输出骨架,下面逐节说明每一部分的分析要点。
1. 价格趋势分析:识别短期形态
报告以 2025 年 7 月 22 日至 28 日共 5 个交易日的收盘价变化为主线:
| 日期 | 收盘价 | 涨跌幅 |
|---|---|---|
| 7月22日 | 12.49 | -0.95% |
| 7月23日 | 12.53 | +0.32% |
| 7月24日 | 12.35 | -1.44% |
| 7月25日 | 12.35 | 0.00% |
| 7月28日 | 12.46 | +0.89% |
趋势解读要点:报告识别出"下跌-反弹-横盘-回升"的震荡格局,7 月 28 日收盘价 12.46 站上 5 日均线(约 12.40)是短期企稳的关键信号;但整体仍在 12.30-12.60 窄幅区间,尚未形成方向突破。这种"以均线位置判断短期强弱、以区间宽度判断突破条件"的方法是技术分析中最基础的形态识别逻辑。
2. 技术指标解读:MA、MACD、RSI 的组合运用
报告对三大类指标分别给出判断:
- 均线系统(MA):MA5 约 12.40,MA10 估计在 12.45-12.50 附近。结论是"短期均线支撑有效,但中长期趋势不明朗",需观察能否站稳 12.50 上方。这里的关键逻辑是价格与均线的位置关系(站上 MA5 偏强)以及短期均线是否形成金叉。
- MACD:以 7 月 24 日为基准,DIF 与 DEA 可能仍位于零轴下方,但 7 月 28 日反弹使 DIF 向上收敛;若绿柱缩短,说明空头动能减弱,市场可能进入震荡修复阶段。
- RSI(14 日):估算位于 45-55 区间,既未进入超买(>70)也未进入超卖(<30),市场情绪中性。
报告的结论是:技术指标显示震荡调整阶段,暂无强烈单边趋势信号。这三个指标的组合使用体现了"趋势(MA)+ 动能(MACD)+ 强弱(RSI)"互相印证的分析框架,单一指标不构成决策依据。
3. 支撑位与阻力位分析:界定震荡区间
- 支撑位:12.30-12.35(7 月 24、25 日低点密集区,跌破则下探 12.00 心理关口)。
- 阻力位:12.50-12.60(7 月 22、23、28 日高点受阻区,放量突破 12.60 后目标看 12.80-13.00)。
支撑阻力位的意义在于界定"震荡区间"的边界:12.30-12.60 之间波动无方向意义,突破方向才决定后续趋势。报告据此给出"高抛低吸、等待突破"的区间操作思路。
4. 成交量分析:量价配合是判断突破真伪的关键
| 日期 | 成交量(万手) | 成交额(亿元) | 量价特征 |
|---|---|---|---|
| 7月22日 | 193.5 | 24.08 | 放量下跌,空头占优 |
| 7月24日 | 195.9 | 24.26 | 再次放量下跌,抛压较大 |
| 7月28日 | 123.8 | 15.41 | 缩量反弹,观望情绪浓厚 |
报告的核心量价结论有二:其一,"下跌放量、反弹缩量"说明市场信心不足,短期警惕回调;其二,若后续突破 12.60 时伴随放量(>200 万手),则可确认趋势反转。这是"无量上涨是技术性反抽、放量突破才可信"的经典量价配合逻辑。
5. 投资建议:区分短线与中线策略
- 短线交易:看涨条件为站稳 12.50 上方且成交量放大,目标 12.80-13.00;看跌条件为跌破 12.30 支撑,可能下探 12.00,短线止损或观望。
- 中线投资:等待 12.30-12.60 区间突破后再决策——突破 12.60 并站稳可分批建仓,跌破 12.30 需警惕进一步回调。
- 风险提示:大盘走弱拖累、反弹无量(仅技术性反抽)、金融股监管政策风险。
值得注意的细节是,报告明确使用了"高抛低吸""等待突破信号"等措辞,但没有给出绝对化的"买入/卖出"指令。这与市场分析师的提示词约束一致(见下文源码解读):市场分析师只输出技术面意见,最终交易建议须由交易员综合所有分析师(基本面、新闻、情绪等)的意见后给出。
6. 总结
最终结论凝练为四个维度:短期趋势(震荡调整、未破 12.60 阻力)、技术指标(MACD 空头动能减弱、RSI 中性、均线无趋势信号)、关键价位(支撑 12.30、阻力 12.60)、操作建议(短线高抛低吸、中线等待突破)。
三、报告背后的生成链路:从数据工具到 LLM 的完整调用链
这份报告并非人工撰写,而是由 TradingAgents-CN 的"市场分析师"智能体节点自动产出。其生成链路分为三层:工具层获取真实行情数据 → 指标层计算技术指标 → LLM 层组织分析文本。
1. 节点入口:market_analyst.py 的提示词工程
市场分析师节点的核心实现在 tradingagents/agents/analysts/market_analyst.py,即create_market_analyst(llm, toolkit)函数。节点的工作流程如下:
- 识别标的:从 state 读取
trade_date(分析日期)与company_of_interest(股票代码),并通过StockUtils.get_market_info(ticker)自动判断 A 股/港股/美股市场及计价货币。 - 获取公司名称:A 股走
get_china_stock_info_unified统一接口,港股走改进港股工具,美股使用内置名称映射表(如 AAPL→苹果公司),失败时降级为"股票代码"格式(见 tradingagents/agents/analysts/market_analyst.py)。 - 绑定单一工具:节点只绑定
get_stock_market_data_unified一个工具,并在系统提示词中明确"如果消息历史中没有工具结果,立即调用一次该工具;已有工具结果就不要再重复调用",这是为了防止 LLM 陷入无限循环调用的工程化约束(对应仓库中 docs/fixes/analyst_infinite_loop_fix.md 记录的修复)。节点还维护market_tool_call_count计数器,最大工具调用次数为 3。 - 生成报告:收到工具返回的真实行情后,LLM 按照模板要求输出结构化报告。模板对输出格式做了强约束:标题必须为
# **{公司名称}({股票代码})技术分析报告**,不得自创标题;不鼓励使用 emoji;价格用对应货币表示;报告长度不少于 800 字;必须包含具体技术指标数值、明确投资建议与风险提示,且"不要使用'最终交易建议'前缀,因为最终决策需要综合所有分析师的意见"。
此外,针对 Google 系列模型,代码走GoogleToolCallHandler分支统一处理工具调用(tradingagents/agents/utils/google_tool_handler.py),这与仓库对多 LLM 提供商(DeepSeek、OpenAI 兼容、DashScope 等)的适配架构一致。
2. 工具层:统一市场数据工具 get_stock_market_data_unified
市场分析师唯一使用的工具实现在 tradingagents/agents/utils/agent_utils.py。该工具的核心设计是"统一入口、自动路由":
- 自动识别市场:通过
StockUtils.get_market_info(ticker)判断标的所属市场。 - A 股:调用
get_china_stock_data_unified(tradingagents/dataflows/interface.py),内部对接 AKShare 等中国数据源; - 港股:调用
get_hk_stock_data_unified; - 美股:优先走 FINNHUB 数据源(
get_us_stock_data_cached,见 tradingagents/dataflows/providers/us/optimized.py)。 - 日期自动扩展:LLM 只需传入当前分析日期(如
2025-07-28),工具会自动将范围回溯到配置的回溯天数(通常 365 天),确保 MA、MACD、RSI 等指标有足够的历史数据计算窗口——这正是报告能给出"MA5 约 12.40""RSI 14 日"等数值的前提。
工具最终返回一段拼接好的 Markdown 文本(含股票类型、货币、分析期间及各市场数据块),作为 LLM 撰写报告的"真实数据依据"。
3. 指标层:indicators.py 的技术指标计算实现
报告中的 MA、MACD、RSI 数值对应 tradingagents/tools/analysis/indicators.py 中的纯 Python 实现。该模块支持ma/ema/macd/rsi/boll/atr/kdj七类指标(见SUPPORTED集合),关键实现细节如下:
- MA:
close.rolling(window=n, min_periods=1).mean(),默认允许前期数据不足时也计算(indicators.py)。 - MACD:
dif = ema(fast=12) - ema(slow=26),dea = dif.ewm(span=9),hist = dif - dea(indicators.py)。 - RSI:支持三种算法——国际标准
ema(Wilder 方法)、sma、以及同花顺/通达信风格的中国式china算法(indicators.py)。 - 统一入口:
add_all_indicators()一次性为 DataFrame 添加ma5/ma10/ma20/ma60、rsi(国际标准)或rsi6/rsi12/rsi24(中国风格)、macd_dif/macd_dea/macd与布林带列(indicators.py)。其中 MACD 柱状图乘以 2 是为了与通达信/同花顺显示口径保持一致。
报告提到"若绿柱缩短""MACD 可能仍处于零轴下方",正是基于macd_hist与dif/dea符号的解读;"RSI 45-55 中性区间"对应rsi()的 0-100 输出与 30/70 阈值判断。此外,A 股数据源在返回行情时也会附加基于上述函数计算的技术指标列,构成 LLM 直接可读的数值上下文。
4. 报告中"估算"措辞的由来
细心的读者会发现报告多处使用"可能""若参考前几日数据""估算"等措辞(如 MA10"可能在 12.45-12.50 附近"、RSI"可能在 45-55 区间")。这是因为 LLM 在撰写时依据的是工具返回的行情快照与指标列,对部分指标的精确数值会结合上下文进行合理推算;同时报告模板要求"基于工具返回的真实数据进行分析""包含具体的技术指标数值"。这提醒使用者:这类报告是"数据驱动 + LLM 组织"的产物,关键价位(支撑/阻力/止损/目标)应结合原始行情数据二次核验,这也是量化风控的应有流程。
四、从报告到决策:市场分析在多智能体流程中的位置
市场分析报告不是终点,而是多智能体协作图的一个节点输出。从 docs/agents/v0.1.13/analysts.md 的架构图可以推断:研究者(Bull/Bear Researcher)产出多空研究报告 → 市场分析师、基本面分析师、新闻分析师分别产出技术面/基本面/消息面报告 → 研究经理汇总 → 风险经理评估风险 → 交易员综合所有输入给出最终交易决策(对应trader_investment_plan.md与final_trade_decision.md)。多份报告的并行存在(见 data/analysis_results/detailed/000858/2025-07-28/reports/ 等目录)印证了这一点。
因此,阅读market_report.md时应将其定位为"技术面单一维度输入":它的震荡结论(支撑 12.30 / 阻力 12.60)为短线操作提供了价格锚点,但最终仓位与方向决策还需结合基本面与新闻情绪报告综合判断——这正是提示词中"不要使用'最终交易建议'前缀"约束的设计意图。
五、如何复现与扩展:动手生成你自己的市场分析报告
如果你希望在自己的环境复现类似报告,可参考仓库提供的多种入口:
- 命令行分析:使用 cli/main.py 提供的 CLI 入口对指定股票代码发起分析,系统会自动完成数据获取、指标计算与报告落盘。
- 示例脚本:examples/simple_analysis_demo.py、examples/batch_analysis.py 与 examples/custom_analysis_demo.py 演示了如何以代码方式调用分析流程并获取结果。
- 批量分析:examples/batch_analysis.py 支持对多只股票批量生成报告,适合构建覆盖多个标的的日常巡检。
- 数据准备:examples/stock_data_model_usage.py 与 examples/tushare_unified_demo.py 展示了行情数据模型的用法,可先行验证数据源连通性(AKShare、Tushare、Baostock 等,见 tradingagents/dataflows/providers/china/)。
生成后的报告统一写入data/analysis_results/<代码>/<日期>/reports/目录,可用任意 Markdown 阅读器查看;若希望继续深入指标层验证,可直接调用 tradingagents/tools/analysis/indicators.py 的add_all_indicators()复算报告中的 MA/MACD/RSI 数值。
六、总结:一份震荡市报告的完整解读框架
回到 000001 在 2025-07-28 的这份报告,其完整逻辑链可以概括为:
- 看形态:5 个交易日走出"下跌-反弹-横盘-回升",12.30-12.60 窄幅震荡;
- 看指标:站上 MA5 略偏强,但 MACD 零轴下方、RSI 中性,无趋势信号;
- 看量能:放量跌、缩量涨,市场信心不足,突破需放量确认;
- 看价位:支撑 12.30、阻力 12.60,突破方向决定后续走势;
- 定策略:短线区间内高抛低吸,中线等待突破信号,并提示政策、大盘与量能三类风险。
这份"六章结构 + 量价配合 + 区间突破"的框架,正是 TradingAgents-CN 市场分析师在提示词与指标库双重约束下稳定产出的标准化产物。理解其生成链路(market_analyst.py → agent_utils.py 统一数据工具 → indicators.py 指标库 → simple_analysis_service.py 报告落盘),既能帮你准确解读每一份报告的结论边界,也能为扩展自定义分析维度(如加入 ATR 波动率、KDJ 超买超卖或布林带带宽)提供清晰的代码落点。
【免费下载链接】TradingAgents-CN基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考