简介 什么是 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
,虽然不是免费,但也够用一阵子的
注册地址:
https://cloud.siliconflow.cn/i/NkUiXVhQ
安装 在群晖上以 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
其他的保持默认就可以了,或者删掉注释弄个简化版
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 DASHSCOPE_API_KEY =your_dashscope_api_key_hereSILICONFLOW_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 =akshareTRADINGAGENTS_RESULTS_DIR =./resultsTRADINGAGENTS_DATA_DIR =./dataTRADINGAGENTS_CACHE_DIR =./cacheTRADINGAGENTS_LOG_LEVEL =INFOPYTHONDONTWRITEBYTECODE =1 MEMORY_ENABLED =true MAX_WORKERS =4 MONGODB_ENABLED =true REDIS_ENABLED =true MONGODB_HOST =mongodbMONGODB_PORT =27017 MONGODB_USERNAME =adminMONGODB_PASSWORD =tradingagents123MONGODB_DATABASE =tradingagentsMONGODB_AUTH_SOURCE =adminREDIS_HOST =redisREDIS_PORT =6379 REDIS_PASSWORD =tradingagents123REDIS_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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 version: '3.8' services: 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" TRADINGAGENTS_MONGODB_URL: mongodb://admin:tradingagents123@mongodb:27017/tradingagents?authSource=admin TRADINGAGENTS_REDIS_URL: redis://:tradingagents123@redis:6379 TRADINGAGENTS_CACHE_TYPE: redis 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: image: mongo:4.4 container_name: tradingagents-mongodb restart: unless-stopped 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: image: redis:latest container_name: tradingagents-redis restart: unless-stopped 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: image: ghcr.io/joeferner/redis-commander:latest container_name: tradingagents-redis-commander restart: unless-stopped 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: image: mongo-express:latest container_name: tradingagents-mongo-express restart: unless-stopped 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
然后执行下面的命令
1 2 3 4 5 6 7 8 9 10 mkdir -p /volume1/docker/tradingagents/{data,redis_data}cd /volume1/docker/tradingagentsdocker-compose --env-file env.txt up -d
运行 服务启动成功后,在浏览器中输入 http://群晖IP:8501
需要等项目完成启动后,才能看到项目的 Web
界面,开始您的 AI
量化分析之旅
左侧虽然显示 阿里百炼: your_das... (格式异常)
,但可以选择我们设置了 API Key
的 硅基流动
输入股票代码,选择分析师团队
基本面分析师:评估公司财务和业绩指标,识别内在价值和潜在风险信号
社交媒体分析师:运用情绪评分算法分析社交媒体和公众情绪,研判短期市场情绪
新闻分析师:监测全球新闻和宏观经济指标,解读事件对市场状况的影响
市场分析师:运用 MACD
、RSI
等技术指标识别交易模式并预测价格走势
开始分析
用了差不多 10
分钟才出结果。如果选 4
个分析师,一般需要 20
分钟
有 分析结果
也有 技术分析
最后还能 导出报告
有时候会遇到错误
看起来像是访问 硅基流动
的接口有问题,不确定是不是 bug
,毕竟也是才增加的 LLM
1 2 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