科学工具
科学工具让世界更美好
让世界更美好

AI-Trader:让多个AI模型在纳斯达克100股票市场中进行完全自主的零人工干预的竞争性交易AI-Trader:让多个AI模型在纳斯达克100股票市场中进行完全自主的零人工干预的竞争性交易

AI-Trader是一个探究人工智能能否超越市场的创新平台,通过纯工具驱动的架构(基于MCP工具链),让多个AI模型(如GPT、Claude、Qwen等)在纳斯达克100股票市场中进行完全自主、零人工干预的竞争性交易。AI-Trader的AI代理能完全独立的决策制定、全面的实时性能分析、集成的智能市场情报(通过Jina搜索获取实时新闻和财报)、以及一个关键的历史回放环境。AI-Trader的所有AI模型在相同的10,000美元初始资本、数据访问和标准化评估规则下公平竞争,能够自适应地演化其交易策略,最后找出哪个AI模型能通过纯粹的自主操作实现最佳投资回报。

• 全自主决策:AI代理全程独立完成分析、决策和执行操作,无需人工参与

• 纯工具驱动架构:基于MCP工具链构建,AI能通过标准化工具调用完成所有交易操作

• 多模型竞争平台:部署多款AI模型(如GPT、Claude、Qwen等),开展竞争性交易

• 实时性能分析:提供全面的交易记录、持仓监控和盈亏分析

• 智能市场情报:集成Jina搜索功能,可获取实时市场新闻和财务报告

• MCP工具链集成:基于模型上下文协议(Model Context Protocol)的模块化工具生态系统

• 可扩展策略框架:支持第三方策略和自定义AI代理集成

• 历史回放功能:具备时间段回放能力,能自动过滤未来信息

每款AI模型初始拥有10,000美元资金,在受控环境中交易纳斯达克100股票,环境提供真实市场数据和历史回放功能。

• 初始资金:10,000美元起始余额

• 交易范围:纳斯达克100成分股(100只顶级科技股)

• 交易时间:工作日市场交易时段,支持历史模拟

• 数据集成:结合Alpha Vantage API和Jina AI市场情报

• 时间管理:支持历史时间段回放,自动过滤未来信息

AI代理完全自主运作,能开展市场调研、制定交易决策,并不断优化策略,全程无需人工干预。

• 自主市场调研:智能检索和筛选市场新闻、分析师报告及财务数据

• 独立决策引擎:通过多维度分析,自主完成买入和卖出操作

• 全面交易记录:自动记录交易依据、执行细节和投资组合变化

• 自适应策略优化:根据市场表现反馈,通过自优化算法调整策略

所有AI模型在相同条件下竞争,拥有相同的资金、数据访问权限、工具和评估指标,确保对比公平。

• 起始资金:10,000美元初始投资

• 数据访问:统一的市场数据和信息源

• 运行时间:同步的交易时间窗口

• 性能指标:所有模型采用标准化评估标准

• 工具访问:所有参与者使用相同的MCP工具链

• 目标:通过纯自主运作,判断哪款AI模型能实现更优的投资回报

AI代理完全自主运作,所有交易决策和策略调整均由其独立完成,无需人工编程、指导或干预。

• 无预编程:不预设任何交易策略或算法规则

• 无人工输入:完全依赖AI自身的推理能力

• 无手动操作:交易过程中严禁人工干预

• 纯工具执行:所有操作仅通过标准化工具调用完成

• 自适应性学习:根据市场表现反馈,独立优化策略

AI-Trader基准测试的核心创新在于其完全可回放的交易环境,能确保在历史市场数据上评估AI代理性能时,具备科学性和可重复性。

时间控制框架

时间设置

{
  "date_range": {
    "init_date": "2025-01-01",  // 任意起始日期
    "end_date": "2025-01-31"    // 任意结束日期
  }
}

防前瞻数据控制

AI只能访问当前及之前的市场数据,无法获取未来信息。

• 价格数据边界:市场数据访问范围限定在模拟时间戳及历史记录内

• 新闻时间顺序限制:实时筛选功能防止AI获取未来日期的新闻和公告

• 财务报告时间线:信息获取范围限定在模拟当前日期前已正式发布的数据

• 历史情报范围:市场分析需基于时间上合理可用的数据

回放优势

• 实证研究框架

• 市场效率研究:评估AI在不同市场条件和波动情况下的表现

• 决策一致性分析:考察AI交易逻辑的时间稳定性和行为模式

• 风险管理评估:验证AI驱动的风险缓解策略有效性

• 公平竞争框架

• 平等信息访问:所有AI模型使用相同的历史数据集

• 标准化评估:采用统一数据源计算性能指标

• 完全可复现:实验过程透明,结果可验证

AI-Trader安装和使用

• Python 3.10及以上版本

• API密钥:OpenAI、Alpha Vantage、Jina AI的API密钥

一键安装

# 1、克隆项目
git clone https://github.com/HKUDS/AI-Trader.git
cd AI-Trader

# 2、安装依赖
pip install -r requirements.txt

# 3、配置环境变量
cp .env.example .env
# 编辑.env文件并填写API密钥

环境配置

创建.env文件,配置以下变量:

# AI模型API配置
OPENAI_API_BASE=https://your-openai-proxy.com/v1
OPENAI_API_KEY=your_openai_key

# 数据源配置
ALPHAADVANTAGE_API_KEY=your_alpha_vantage_key
JINA_API_KEY=your_jina_api_key

# 系统配置
RUNTIME_ENV_PATH=./runtime_env.json # 建议使用绝对路径
# 服务端口配置
MATH_HTTP_PORT=8000
SEARCH_HTTP_PORT=8001
TRADE_HTTP_PORT=8002
GETPRICE_HTTP_PORT=8003
# AI代理配置
AGENT_MAX_STEP=30             # 最大推理步骤

依赖项

# 安装生产环境依赖
pip install -r requirements.txt

# 或手动安装核心依赖
pip install langchain langchain-openai langchain-mcp-adapters fastmcp python-dotenv requests numpy pandas

AI-Trader 运行指南

步骤1:数据准备(./fresh_data.sh)

# 获取纳斯达克100股票数据
cd data
python get_daily_price.py

# 将数据合并为统一格式
python merge_jsonl.py

步骤2:启动MCP服务

cd ./agent_tools
python start_mcp_services.py

步骤3:启动AI竞赛平台

# 运行主程序,让AI开始交易
python main.py

# 或使用自定义配置
python main.py configs/my_config.json

时间设置示例

创建自定义时间配置

{
  "agent_type": "BaseAgent",
  "date_range": {
    "init_date": "2024-01-01",  // 回测起始日期
    "end_date": "2024-03-31"     // 回测结束日期
  },
  "models": [
    {
      "name": "claude-3.7-sonnet",
      "basemodel": "anthropic/claude-3.7-sonnet",
      "signature": "claude-3.7-sonnet",
      "enabled": true

    }
  ]
}

启动网页界面

cd docs
python3 -m http.server 8000
# 访问http://localhost:8000

性能分析

竞赛规则

规则项 设置 说明
初始资金 10,000美元 每款AI模型的起始资金
交易目标 纳斯达克100 100只顶级科技股
交易时间 工作日 周一至周五
价格基准 开盘价 采用每日开盘价进行交易
记录方式 JSONL格式 完整的交易历史记录

配置指南

配置文件结构

{
  "agent_type": "BaseAgent",
  "date_range": {
    "init_date": "2025-01-01",
    "end_date": "2025-01-31"
  },
  "models": [
    {
      "name": "claude-3.7-sonnet",
      "basemodel": "anthropic/claude-3.7-sonnet",
      "signature": "claude-3.7-sonnet",
      "enabled": true

    }
  ],
  "agent_config": {
    "max_steps": 30,
    "max_retries": 3,
    "base_delay": 1.0,
    "initial_cash": 10000.0
  },
  "log_config": {
    "log_path": "./data/agent_data"
  }
}

配置参数

参数 说明 默认值
agent_type AI代理类型 "BaseAgent"
max_steps 最大推理步骤 30
max_retries 最大重试次数 3
base_delay 操作延迟(秒) 1.0
initial_cash 初始资金 10,000美元

数据格式

持仓记录(position.jsonl)

{
  "date": "2025-01-20",
  "id": 1,
  "this_action": {
    "action": "buy",
    "symbol": "AAPL",
    "amount": 10

  },
  "positions": {
    "AAPL": 10,
    "MSFT": 0,
    "CASH": 9737.6

  }
}

价格数据(merged.jsonl)

{
  "Meta Data": {
    "2、Symbol": "AAPL",
    "3、Last Refreshed": "2025-01-20"
  },
  "Time Series (Daily)": {
    "2025-01-20": {
      "1、buy price": "255.8850",
      "2、high": "264.3750",
      "3、low": "255.6300",
      "4、sell price": "262.2400",
      "5、volume": "90483029"
    }
  }
}

第三方策略集成

AI-Trader基准测试采用模块化设计,能非常容易的集成第三方策略和自定义AI代理。

集成方法

1、自定义AI代理

# 创建新的AI代理类
class CustomAgent(BaseAgent):
    def __init__(self, model_name, **kwargs):
        super().__init__(model_name, **kwargs)
        # 添加自定义逻辑

2、注册新代理

# 在main.py中注册
AGENT_REGISTRY = {
    "BaseAgent": {
        "module": "agent.base_agent.base_agent",
        "class": "BaseAgent"
    },
    "CustomAgent": {  # 新增
        "module": "agent.custom.custom_agent",
        "class": "CustomAgent"
    },
}

3、配置文件设置

{
  "agent_type": "CustomAgent",
  "models": [
    {
      "name": "your-custom-model",
      "basemodel": "your/model/path",
      "signature": "custom-signature",
      "enabled": true

    }
  ]
}

扩展工具链

添加自定义工具

# 创建新的MCP工具
@mcp.tools()
class CustomTool:
    def __init__(self):
        self.name = "custom_tool"

    def execute(self, params):
        # 实现自定义工具逻辑
        return result