下一代AI量化交易决策框架TradingAgents-CN
TradingAgents-CN 是一个基于多智能体大语言模型(LLM)的开源金融交易决策框架,专为A股、港股及美股市场设计。
简介
什么是 TradingAgents-CN ?
TradingAgents-CN
是一个基于多智能体大语言模型(LLM
)的开源金融交易决策框架。它是对原项目TradingAgents
的中文增强版,专为中文用户设计,旨在提供完整的A股、港股及美股市场的分析能力,并集成了多个国产大模型。
主要特点
- 多智能体协作: 项目采用专业分工的智能体团队,包括基本面、技术面、新闻和社交媒体分析师,通过结构化辩论形成投资决策。
- 全面的LLM支持: 集成了阿里百炼、
DeepSeek
、Google AI
、OpenRouter
等多个主流和国产大语言模型提供商,支持超过60
种模型。 - 中国市场优化: 专门支持
A
股和港股市场的数据,并提供完全中文化的界面和分析报告。 - 强大的功能: 具备智能新闻分析、多级研究深度选择、实时分析进度跟踪、专业报告导出(支持
Markdown/Word/PDF
)等功能。 - 友好的用户界面: 提供基于
Streamlit
构建的现代化Web
界面,可进行可视化操作、配置和结果展示。
应用场景
- 量化策略研究: 训练、测试和评估基于
AI
的金融交易策略。 - 金融市场分析: 对特定股票(
A
股/港股/美股)进行多维度(技术、基本面、新闻等)的综合分析,并生成专业报告。 - AI金融教育: 作为学习和研究多智能体、
LLM
在金融领域应用的工具。
TradingAgents
框架将复杂交易任务分解为专业角色。这种设计确保系统采用稳健、可扩展的方法进行市场分析和决策制定。
准备
获取 TUSHARE_TOKEN
Tushare API Token
提供了专业的中国金融数据源,当然也可以只使用默认的 akshare
注意: 免费用户有调用频率限制,建议升级积分获得更高权限
获取地址: https://tushare.pro/register?reg=847217
进入个人中心 --> 获取 Token
获取 FINNHUB_API_KEY
FinnHub API Key
用于获取美股金融数据
注意: 免费账户每分钟
60
次请求,足够日常使用
获取地址: https://finnhub.io
注册一个账户就行
大模型
支持的大模型比较多,包括 OpenAI
、Anthropic
、Google
等,系统默认使用的是 阿里百炼
,老苏还是习惯用 硅基流动
目前硅基流动(SiliconFlow
),注册就送 2000
万 Tokens
,虽然不是免费,但也够用一阵子的
注册地址:
安装
在群晖上以 Docker 方式安装。
本文写作时,
latest
版本对应为0.1.3
;
对应的软件版本是最新的 cn-0.1.13-preview
env.txt
env.txt
是环境变量文件,只是为了方便编辑增加了 .txt
扩展名
源文件地址:https://github.com/hsliuping/TradingAgents-CN/blob/main/.env.example
将文件下载到本地后,按下面的进行修改
- 将获取的
Tushare API Token
替换TUSHARE_TOKEN
后面的值,同时将TUSHARE_ENABLED
设为true
- 将获取的
FinnHub API Key
替换FINNHUB_API_KEY
后面的值 - 选择对应的大模型,老苏用的硅基流动,所以替换
SILICONFLOW_API_KEY
后面的值即可,但DASHSCOPE_API_KEY=your_dashscope_api_key_here
必须保留,否则会报API密钥配置不完整
- 将
MONGODB_HOST=localhost
后面的localhost
改为mongodb
- 将
REDIS_HOST=localhost
后面的localhost
改为redis
其他的保持默认就可以了,或者删掉注释弄个简化版
DASHSCOPE_API_KEY=your_dashscope_api_key_here
SILICONFLOW_API_KEY=<your_siliconflow_api_key_here>
FINNHUB_API_KEY=<your_finnhub_api_key_here>
TUSHARE_TOKEN=<your_tushare_token_here>
TUSHARE_ENABLED=true
DEFAULT_CHINA_DATA_SOURCE=akshare
TRADINGAGENTS_RESULTS_DIR=./results
TRADINGAGENTS_DATA_DIR=./data
TRADINGAGENTS_CACHE_DIR=./cache
TRADINGAGENTS_LOG_LEVEL=INFO
PYTHONDONTWRITEBYTECODE=1
MEMORY_ENABLED=true
MAX_WORKERS=4
MONGODB_ENABLED=true
REDIS_ENABLED=true
MONGODB_HOST=mongodb
MONGODB_PORT=27017
MONGODB_USERNAME=admin
MONGODB_PASSWORD=tradingagents123
MONGODB_DATABASE=tradingagents
MONGODB_AUTH_SOURCE=admin
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=tradingagents123
REDIS_DB=0
ENABLE_COST_TRACKING=true
COST_ALERT_THRESHOLD=100.0
MAX_USAGE_RECORDS=10000
USE_MONGODB_STORAGE=false
MONGODB_CONNECTION_STRING=mongodb://admin:tradingagents123@mongodb:27017/
MONGODB_DATABASE_NAME=tradingagents
mongo-init.js
这是数据库初始化脚本文件
源文件地址: https://github.com/hsliuping/TradingAgents-CN/blob/main/scripts/mongo-init.js
docker-compose.yml
在官方的基础上做了微调,将下面的内容保存为 docker-compose.yml
文件,保存时记得采用 UTF-8
格式
源文件地址: https://github.com/hsliuping/TradingAgents-CN/blob/main/docker-compose.yml
version: '3.8'
services:
# Streamlit Web 应用服务
web:
image: birdxs/tradingagents-cn:latest
container_name: tradingagents-web
ports:
- "8501:8501"
volumes:
- ./env.txt:/app/.env
env_file:
- env.txt
environment:
PYTHONUNBUFFERED: 1
PYTHONDONTWRITEBYTECODE: 1
# 时区配置
TZ: "Asia/Shanghai"
# 日志配置
TRADINGAGENTS_LOG_LEVEL: "INFO"
TRADINGAGENTS_LOG_DIR: "/app/logs"
TRADINGAGENTS_LOG_FILE: "/app/logs/tradingagents.log"
TRADINGAGENTS_LOG_MAX_SIZE: "100MB"
TRADINGAGENTS_LOG_BACKUP_COUNT: "5"
# Docker专用数据库配置(覆盖.env中的本地配置)
TRADINGAGENTS_MONGODB_URL: mongodb://admin:tradingagents123@mongodb:27017/tradingagents?authSource=admin
TRADINGAGENTS_REDIS_URL: redis://:tradingagents123@redis:6379
TRADINGAGENTS_CACHE_TYPE: redis
# Docker环境标识和PDF支持
DOCKER_CONTAINER: "true"
DISPLAY: ":99"
command: /usr/local/bin/start-xvfb.sh python -m streamlit run web/app.py --server.address=0.0.0.0 --server.port=8501
depends_on:
- mongodb
- redis
# 健康检查
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8501/_stcore/health"]
interval: 30s
timeout:10s
retries: 3
start_period: 60s
# 重启策略
restart: unless-stopped
# 日志配置
logging:
driver: "json-file"
options:
max-size: "100m"
max-file: "3"
# MongoDB数据库服务
mongodb:
image: mongo:4.4
container_name: tradingagents-mongodb
restart: unless-stopped
# ports:
# - "27017:27017"
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: tradingagents123
MONGO_INITDB_DATABASE: tradingagents
volumes:
- ./data:/data/db
- ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
healthcheck:
test: echo 'db.runCommand("ping").ok' | mongo localhost:27017/test --quiet
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
# Redis缓存服务
redis:
image: redis:latest
container_name: tradingagents-redis
restart: unless-stopped
# ports:
# - "6379:6379"
command: redis-server --appendonly yes --requirepass tradingagents123
volumes:
- ./redis_data:/data
healthcheck:
test: ["CMD", "redis-cli", "--raw", "incr", "ping"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
# Redis Commander管理界面
redis-commander:
image: ghcr.io/joeferner/redis-commander:latest
container_name: tradingagents-redis-commander
restart: unless-stopped
# ports:
# - "8081:8081"
environment:
- REDIS_HOSTS=local:redis:6379:0:tradingagents123
depends_on:
- redis
healthcheck:
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:8081"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
# Mongo Express管理界面 (可选)
mongo-express:
image: mongo-express:latest
container_name: tradingagents-mongo-express
restart: unless-stopped
# ports:
# - "8082:8081"
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: admin
ME_CONFIG_MONGODB_ADMINPASSWORD: tradingagents123
ME_CONFIG_MONGODB_URL: mongodb://admin:tradingagents123@mongodb:27017/
ME_CONFIG_BASICAUTH_USERNAME: admin
ME_CONFIG_BASICAUTH_PASSWORD: tradingagents123
depends_on:
- mongodb
profiles:
- management # 使用 --profile management 启动
然后执行下面的命令
# 新建文件夹 tradingagents 和 子目录
mkdir -p /volume1/docker/tradingagents/{data,redis_data}
# 进入 tradingagents 目录
cd /volume1/docker/tradingagents
# 将 docker-compose.yml、mongo-init.js 和 env.txt 放入当前目录
# 一键启动(未启用 profile)
docker-compose --env-file env.txt up -d
运行
服务启动成功后,在浏览器中输入 http://群晖IP:8501
需要等项目完成启动后,才能看到项目的 Web
界面,开始您的 AI
量化分析之旅
左侧虽然显示 阿里百炼: your_das... (格式异常)
,但可以选择我们设置了 API Key
的 硅基流动
输入股票代码,选择分析师团队
- 基本面分析师:评估公司财务和业绩指标,识别内在价值和潜在风险信号
- 社交媒体分析师:运用情绪评分算法分析社交媒体和公众情绪,研判短期市场情绪
- 新闻分析师:监测全球新闻和宏观经济指标,解读事件对市场状况的影响
- 市场分析师:运用
MACD
、RSI
等技术指标识别交易模式并预测价格走势
开始分析
用了差不多 10
分钟才出结果。如果选 4
个分析师,一般需要 20
分钟
有 分析结果
也有 技术分析
最后还能 导出报告
有时候会遇到错误
看起来像是访问 硅基流动
的接口有问题,不确定是不是 bug
,毕竟也是才增加的 LLM
tradingagents-web | 2025-08-21 11:59:20,568 | INFO | httpx | HTTP Request: POST https://api.siliconflow.cn/v1/chat/completions "HTTP/1.1 400 Bad Request"
tradingagents-web | 2025-08-21 11:59:20,569 | ERROR | default | ❌ [市场分析师] 工具执行或分析生成失败: Error code: 400 - {'code': 20015, 'message': '"messages" in request are illegal.', 'data': None}
有条件的,最好还是使用官方推荐的阿里百炼吧
参考文档
hsliuping/TradingAgents-CN: 基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版
地址:https://github.com/hsliuping/TradingAgents-CN
TradingAgents-CN/docs/usage/web-interface-detailed-guide.md at main · hsliuping/TradingAgents-CN
地址:https://github.com/hsliuping/TradingAgents-CN/blob/main/docs/usage/web-interface-detailed-guide.md
更多推荐
所有评论(0)