项目简介
Equity-Traders 是一个先进的AI驱动的股票交易平台。它利用多个智能代理协同工作,通过MCP服务器提供账户管理、市场数据查询和通知功能,辅助用户在股票市场中做出明智的投资决策。该系统支持市场趋势分析、策略化交易执行和决策支持,并提供用户友好的Web界面展示实时数据。
主要功能点
- 智能交易代理: 多个AI代理(如Warren、George、Ray、Cathie)根据各自的投资策略自动进行市场分析和交易决策。
- 账户管理: 通过专属的MCP服务器提供资金余额查询、股票持仓查看、买入/卖出股票以及更改交易策略的功能。
- 实时市场数据: 通过MCP服务器获取股票价格和市场状态,支持端日数据、15分钟延迟快照或实时数据(取决于配置)。
- 交易日志与通知: 详细记录所有交易活动和代理行为日志,并通过MCP服务器发送交易总结的推送通知。
- 交互式仪表盘: 提供基于Gradio的Web界面,实时展示每个交易代理的投资组合价值、持仓、交易记录和操作日志。
- 研究与记忆: 集成研究工具和持久化记忆(知识图谱),支持代理进行在线金融新闻搜索、存储和回忆公司及市场信息。
安装步骤
-
克隆仓库:
git clone https://github.com/ibuuzm/Equity-Traders.git cd Equity-Traders -
安装依赖: 建议使用 'uv' 包管理器。
pip install uv uv sync如果未安装 'uv',也可以使用 'pip' 安装 'requirements.txt' 中的依赖:
pip install -r requirements.txt此外,部分MCP服务器(如Brave搜索和记忆服务)可能需要 'npx' (Node.js 包执行器),请确保您的系统已安装Node.js。
-
配置环境变量: 在项目根目录创建 '.env' 文件,并根据您的需求填写API密钥。
- 'OPENROUTER_API_KEY': 用于访问多种LLM模型。
- 'POLYGON_API_KEY': 用于获取股票市场数据。
- 'POLYGON_PLAN': 'free' (默认), 'paid', 'realtime',影响市场数据获取方式。
- 'BRAVE_API_KEY': 用于代理进行网络搜索。
- 'DEEPSEEK_API_KEY', 'GOOGLE_API_KEY', 'GROK_API_KEY': 如果您希望使用特定的LLM服务。
- 'PUSHOVER_USER', 'PUSHOVER_TOKEN': 用于推送通知(可选)。
- 'RUN_EVERY_N_MINUTES': 代理运行间隔(分钟)。
- 'RUN_EVEN_WHEN_MARKET_IS_CLOSED': 市场关闭时是否运行代理。
- 'USE_MANY_MODELS': 是否为不同代理使用不同的LLM模型。
示例 '.env' 文件:
OPENROUTER_API_KEY="sk-..." POLYGON_API_KEY="your_polygon_api_key" POLYGON_PLAN="free" # or paid, realtime BRAVE_API_KEY="your_brave_api_key" # PUSHOVER_USER="your_pushover_user_key" # PUSHOVER_TOKEN="your_pushover_api_token" RUN_EVERY_N_MINUTES="60" RUN_EVEN_WHEN_MARKET_IS_CLOSED="false" USE_MANY_MODELS="false"
服务器配置 (供MCP客户端配置)
该项目包含多个核心MCP服务器。当您将它们用作MCP客户端的上下文源时,MCP客户端需要知道如何启动这些服务器。以下是这些MCP服务器的启动配置信息:
-
账户服务 ('accounts_server'): 提供交易账户管理功能,包括查询余额、持仓、买卖股票和更改策略的工具,以及账户报告和策略内容的资源。
{ "server_name": "accounts_server", "command": "uv", "args": ["run", "accounts_server.py"], "description": "管理交易账户的MCP服务。" } -
市场数据服务 ('market_server'): 提供股票市场数据查询工具,例如查询股票当前价格。请注意,如果您的'.env'文件中配置了Polygon API密钥且'POLYGON_PLAN'设置为'paid'或'realtime',实际运行时可能会替换为官方的'mcp_polygon'服务。
{ "server_name": "market_server", "command": "uv", "args": ["run", "market_server.py"], "description": "提供股票价格查询工具的MCP服务。" } -
推送通知服务 ('push_server'): 提供发送推送通知的工具,代理在完成交易活动后会使用此功能发送简报。
{ "server_name": "push_server", "command": "uv", "args": ["run", "push_server.py"], "description": "提供发送推送通知工具的MCP服务。" } -
研究辅助服务 (多项): 这些是AI研究代理使用的MCP服务集合,用于网页抓取、网络搜索和持久化记忆。
- 网页抓取服务 ('mcp-server-fetch'):
{ "server_name": "mcp-server-fetch", "command": "uvx", "args": ["mcp-server-fetch"], "description": "通用网页抓取服务,用于代理获取网页内容。" } - Brave 搜索服务 ('brave-search'):
需要配置 'BRAVE_API_KEY' 环境变量。
{ "server_name": "brave-search", "command": "npx", "args": ["-y", "@modelcontextprotocol/server-brave-search"], "env_vars_needed": ["BRAVE_API_KEY"], "description": "基于Brave API的搜索服务。" } - 记忆存储服务 ('mcp-memory-libsql'):
需要配置 'LIBSQL_URL' 环境变量(通常是文件路径,例如 'file:./memory/{trader_name}.db')。
{ "server_name": "mcp-memory-libsql", "command": "npx", "args": ["-y", "mcp-memory-libsql"], "env_vars_needed": ["LIBSQL_URL"], "description": "基于LibSQL的持久化记忆服务。" }
- 网页抓取服务 ('mcp-server-fetch'):
基本使用方法
-
重置交易账户: 首次运行或希望清空现有账户数据时,运行以下命令:
python reset.py这将为所有默认交易代理(Warren, George, Ray, Cathie)设置初始资金和策略。
-
启动交易代理调度器: 在一个终端中,运行主调度器。它将按照您在 '.env' 中设定的间隔启动交易代理进行分析和交易。
python trading_floor.py在终端中,您将看到代理的运行日志。
-
启动可视化界面: 在另一个终端中,启动Gradio应用程序以实时监控交易情况。
python app.py应用程序启动后,通常会自动在浏览器中打开一个仪表盘,展示每个代理的投资组合价值、持仓、交易记录和操作日志。
信息
分类
商业系统