项目简介

Equity-Traders 是一个先进的AI驱动的股票交易平台。它利用多个智能代理协同工作,通过MCP服务器提供账户管理、市场数据查询和通知功能,辅助用户在股票市场中做出明智的投资决策。该系统支持市场趋势分析、策略化交易执行和决策支持,并提供用户友好的Web界面展示实时数据。

主要功能点

  • 智能交易代理: 多个AI代理(如Warren、George、Ray、Cathie)根据各自的投资策略自动进行市场分析和交易决策。
  • 账户管理: 通过专属的MCP服务器提供资金余额查询、股票持仓查看、买入/卖出股票以及更改交易策略的功能。
  • 实时市场数据: 通过MCP服务器获取股票价格和市场状态,支持端日数据、15分钟延迟快照或实时数据(取决于配置)。
  • 交易日志与通知: 详细记录所有交易活动和代理行为日志,并通过MCP服务器发送交易总结的推送通知。
  • 交互式仪表盘: 提供基于Gradio的Web界面,实时展示每个交易代理的投资组合价值、持仓、交易记录和操作日志。
  • 研究与记忆: 集成研究工具和持久化记忆(知识图谱),支持代理进行在线金融新闻搜索、存储和回忆公司及市场信息。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/ibuuzm/Equity-Traders.git
    cd Equity-Traders
  2. 安装依赖: 建议使用 'uv' 包管理器。

    pip install uv
    uv sync

    如果未安装 'uv',也可以使用 'pip' 安装 'requirements.txt' 中的依赖:

    pip install -r requirements.txt

    此外,部分MCP服务器(如Brave搜索和记忆服务)可能需要 'npx' (Node.js 包执行器),请确保您的系统已安装Node.js。

  3. 配置环境变量: 在项目根目录创建 '.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的持久化记忆服务。"
      }

基本使用方法

  1. 重置交易账户: 首次运行或希望清空现有账户数据时,运行以下命令:

    python reset.py

    这将为所有默认交易代理(Warren, George, Ray, Cathie)设置初始资金和策略。

  2. 启动交易代理调度器: 在一个终端中,运行主调度器。它将按照您在 '.env' 中设定的间隔启动交易代理进行分析和交易。

    python trading_floor.py

    在终端中,您将看到代理的运行日志。

  3. 启动可视化界面: 在另一个终端中,启动Gradio应用程序以实时监控交易情况。

    python app.py

    应用程序启动后,通常会自动在浏览器中打开一个仪表盘,展示每个代理的投资组合价值、持仓、交易记录和操作日志。

信息

分类

商业系统