TradingAgents
是一个多智能体大语言模型(LLM)金融交易框架,旨在模拟现实世界交易公司的动态。该框架通过部署多个由LLM驱动的专业智能体,协同评估市场状况并为交易决策提供信息。以下是对该仓库的详细介绍:
仓库结构
仓库的主要目录和文件结构如下:
TradingAgents/
├── .gitignore
├── .python-version
├── LICENSE
├── README.md
├── main.py
├── pyproject.toml
├── requirements.txt
├── setup.py
├── uv.lock
├── tradingagents/
│ ├── agents/
│ ├── dataflows/
│ ├── default_config.py
│ ├── graph/
├── assets/
│ ├── TauricResearch.png
│ ├── analyst.png
│ ├── cli/
│ ├── researcher.png
│ ├── risk.png
│ ├── schema.png
│ ├── trader.png
│ ├── wechat.png
├── cli/
│ ├── __init__.py
│ ├── main.py
│ ├── models.py
│ ├── static/
│ ├── utils.py
核心特性
- 多智能体架构:模拟现实交易公司的结构,包括分析师团队、研究员团队、交易员智能体以及风险管理和投资组合管理团队。
- LLM驱动:使用LLM进行市场分析和决策制定,支持多种LLM模型,如
o1-preview
、gpt-4o
、o4-mini
和gpt-4.1-mini
。 - 模块化设计:采用
LangGraph
构建,确保框架的灵活性和可扩展性。 - 研究目的:框架设计用于研究,交易性能受多种因素影响,不构成金融、投资或交易建议。
智能体团队
- 分析师团队
- 基本面分析师:评估公司财务状况和绩效指标,识别内在价值和潜在风险。
- 情绪分析师:使用情绪评分算法分析社交媒体和公众情绪,以衡量短期市场情绪。
- 新闻分析师:监控全球新闻和宏观经济指标,解读事件对市场状况的影响。
- 技术分析师:利用技术指标(如MACD和RSI)检测交易模式并预测价格走势。
- 研究员团队:包括看涨和看跌研究员,对分析师团队的见解进行批判性评估,通过结构化辩论平衡潜在收益和固有风险。
- 交易员智能体:综合分析师和研究员的报告,根据全面的市场见解做出明智的交易决策。
- 风险管理和投资组合管理团队
- 风险管理团队:持续评估投资组合风险,评估和调整交易策略,并向投资组合经理提供评估报告。
- 投资组合经理:批准或拒绝交易提案,若批准,将订单发送至模拟交易所执行。
安装和使用
安装
克隆 TradingAgents
仓库:
git clone https://github.com/TauricResearch/TradingAgents.git
CLI使用
你可以直接运行以下命令尝试CLI:
python -m cli.main
运行后,你将看到一个界面,可选择所需的股票代码、日期、LLM模型、研究深度等。
代码示例
看跌研究员智能体
tradingagents/agents/researchers/bear_researcher.py
文件中的 bear_node
函数实现了看跌研究员智能体的逻辑,根据市场研究报告、情绪报告、新闻报告和基本面报告等信息,提出反对投资股票的理由:
def bear_node(state) -> dict:
# ... 代码省略 ...
prompt = f"""You are a Bear Analyst making the case against investing in the stock. Your goal is to present a well-reasoned argument emphasizing risks, challenges, and negative indicators. ..."""
response = llm.invoke(prompt)
argument = f"Bear Analyst: {response.content}"
new_investment_debate_state = {
"history": history + "\n" + argument,
"bear_history": bear_history + "\n" + argument,
# ... 代码省略 ...
}
return {"investment_debate_state": new_investment_debate_state}
研究经理智能体
tradingagents/agents/managers/research_manager.py
文件中的 research_manager_node
函数实现了研究经理智能体的逻辑,评估辩论并做出明确的决策(买入、卖出或持有),同时制定详细的投资计划:
def create_research_manager(llm, memory):
def research_manager_node(state) -> dict:
# ... 代码省略 ...
prompt = f"""As the portfolio manager and debate facilitator, your role is to critically evaluate this round of debate and make a definitive decision: align with the bear analyst, the bull analyst, or choose Hold only if it is strongly justified based on the arguments presented. ..."""
response = llm.invoke(prompt)
new_investment_debate_state = {
"judge_decision": response.content,
# ... 代码省略 ...
}
return {
"investment_debate_state": new_investment_debate_state,
"investment_plan": response.content,
}
return research_manager_node
贡献和引用
- 贡献:欢迎社区贡献,无论是修复错误、改进文档还是提出新功能,都有助于项目的发展。
- 引用:如果你发现
TradingAgents
对你有帮助,请引用以下论文:
@misc{xiao2025tradingagentsmultiagentsllmfinancial,
title={TradingAgents: Multi-Agents LLM Financial Trading Framework},
author={Yijia Xiao and Edward Sun and Di Luo and Wei Wang},
year={2025},
eprint={2412.20138},
archivePrefix={arXiv},
primaryClass={q-fin.TR},
url={https://arxiv.org/abs/2412.20138},
}