# AI-Trader 本地模拟交易全流程实测：亮点、价值与风险

实测日期：2026-08-29（UTC）

仓库：[`HKUDS/AI-Trader`](https://github.com/HKUDS/AI-Trader)

本次实验在临时数据库中完整走了一遍 AI-Trader 的 paper-trading 挑战流程。使用的是模拟账户、模拟价格和本地数据库，不涉及真实资金。真实交易所、Polymarket、账户注册和后台 worker 均不在本次范围内。

## 这个项目要解决什么问题

AI-Trader 想做的不是一个只给人看行情的聊天机器人，而是一套面向 AI Agent 的交易平台。Agent 可以注册、发布交易信号和策略，参与讨论，被其他人关注或复制；普通用户可以购买信号或跟随交易者；新用户还可以先用模拟资金练习。项目官方把它概括为“让 AI Agent 拥有自己的交易平台”，具体功能包括信号市场、复制交易、跨平台同步和模拟交易。

官方资料：[`项目 README`](https://github.com/HKUDS/AI-Trader)、[`用户指南`](https://github.com/HKUDS/AI-Trader/blob/main/docs/README_USER.md)。

## 这次实验想表现什么

这次不是为了证明“用 BTC 赚了 2%”，也不是为了证明 AI 已经具备稳定赚钱能力。2% 是我们用固定 mock 价格制造出的可复查计算结果，不能当成投资成绩。

这次实验要确认的是，普通用户在不接真实账户、不动真实资金的前提下，能不能把一条模拟交易链路走完，并看到账户现金、持仓、估值、交易记录和最终结算彼此对应。这个问题已经通过：加入挑战、买入、持仓估值、卖出、结算都有实际回执。

## 项目亮点与用户价值

- Agent 原生接入。官方提供 Agent skill 和 API 路线，目标是让 Agent 自己注册、发布信号、参与讨论和跟随其他交易者。
- 信号与复制交易结合。用户可以浏览 Agent 的信号，也可以跟随提供者，自动复制其仓位变化。
- 有模拟练习场。用户可以先用模拟资金熟悉流程，降低第一次接触交易系统的资金门槛。
- 有社区和激励。信号发布、被采用、获得关注等行为被纳入积分和传播机制，项目不只是在本地跑策略，也在尝试建立 Agent 交易社区。

对普通用户，最直接的价值是先练习、再判断，不必一上来就承担真实亏损。对有策略的交易者，价值是把策略整理成信号，让别人查看、跟随和复盘。对 Agent 开发者，价值是提供一个可注册、可发信号、可参与挑战的统一接口。

## 缺点、风险与本次没有证明的事情

第一，今天的实验只证明了本地 paper-trading。真实行情、真实交易所、账户注册、token、实时信号写入和长时间 worker 都没有运行，所以不能把今天的结果写成“真实交易通过”。

第二，交易结果高度依赖数据、规则和执行条件。项目公开讨论中仍有人追问订单簿、公司行为、社交情绪、最大仓位、交易频率、做空、手续费、滑点和最大回撤等规则。规则不清楚，排行榜和收益率就不一定能公平比较。相关问题见 [Issue #29](https://github.com/HKUDS/AI-Trader/issues/29)。

第三，复制交易和 Agent 自动执行会放大错误。错误信号、过期行情、滑点、接口中断、密钥泄露、仓位失控和模型幻觉，都可能把模拟损失变成真实损失。连接真实账户前，必须单独验证权限、限额、止损、审计、撤单和异常恢复。

第四，项目曾出现过关于未认证研究导出接口暴露 Agent 标识和财务余额的公开安全问题。该 [Issue #242](https://github.com/HKUDS/AI-Trader/issues/242) 页面目前显示为已关闭，但本次没有做安全复测，不能据此判断当前版本已经彻底消除风险。

## 今天真正得到的结论

AI-Trader 的亮点不是“随便接上 AI 就能赚钱”，而是试图把 Agent 变成可以注册、发布信号、被跟随、参加模拟挑战并留下交易记录的参与者。今天确认了它的本地模拟链路能从加入挑战走到结算，也确认了项目的本地测试基础可以运行。

今天没有确认它能在真实市场中盈利、稳定运行或安全托管资金。下一轮若继续，重点应放在真实行情只读接入、规则与费用核对、权限边界、异常恢复和数据安全，不能直接跳到真实下单。

## 种子区 · 已发现

AI-Trader 由今天的 X 雷达与 GitHub 收录进入实验田，官方仓库为 `HKUDS/AI-Trader`。项目文档显示，它是面向 Agent 的模拟交易平台，覆盖信号、策略、实验和挑战等路线。当天的唯一实验目标不是泛泛介绍交易功能，而是验证下载后的后端安全测试路径能否运行，以及本地服务能否在关闭后台任务和使用临时数据库时启动。

发现来源：[`X 上的项目介绍`](https://x.com/tom_doerr/status/2092958001904648289)

## 播种区 · 已实测

测试环境：隔离工作目录，Python `3.12.13`，pytest `9.1.1`，仓库工作提交 `d03ff6c056b32ced735adf7c19ed8175adb1c8df`。

### 1. 价格获取安全 mock

命令：

```text
./.venv/bin/python -m pytest -q service/server/tests/test_price_fetcher.py
```

结果：`8 passed in 0.28s`。

这组测试使用 mock 价格源，验证加密货币和美股价格分流、Alpha Vantage fallback 与 yfinance fallback，没有访问真实市场接口。

### 2. 实验与交易价格保护

命令：

```text
./.venv/bin/python -m pytest -q service/server/tests/test_experiment_assignments.py service/server/tests/test_experiment_events.py service/server/tests/test_agent_recovery_utils.py service/server/tests/test_realtime_trade_price_guard.py
```

结果：`12 passed in 29.10s`。

这组测试验证实验分配、事件记录、Agent 恢复和实时交易价格保护。请求被限制在本地 TestClient 与 mock 数据，不调用真实账户。

### 3. 其余后端本地测试

命令：

```text
./.venv/bin/python -m pytest -q service/server/tests --ignore=service/server/tests/test_challenges.py
```

结果：`103 passed, 1 warning in 40.80s`。

唯一警告是 Starlette 对当前 httpx 用法的弃用提示，不是测试失败。

`test_challenges.py` 没有运行，因为它包含可能访问 Hyperliquid 或 Polymarket 的路径。不能把跳过写成通过。

### 4. 本地 API 启动烟测

使用临时 SQLite 文件 `/tmp/ai-trader-smoke-20260829.sqlite`，设置 `AI_TRADER_API_BACKGROUND_TASKS=false`，启动本地 FastAPI 服务后访问 `/health`。

结果：

```json
{"status":"ok","timestamp":"2026-08-29T11:05:39.099059Z"}
```

启动日志确认使用临时 SQLite，后台任务关闭，未启动 `worker.py`。

### 5. Paper-trading 模拟买卖与结算

在同一个临时 SQLite 中创建模拟挑战和模拟账户，加入挑战后执行完整买卖链路。买入 BTC 2 个，服务器 mock 价格为 100；持仓估值时价格变为 110；随后以服务器 mock 价格 110 卖出全部持仓，最后执行挑战结算。

结果：买入后现金 800，持仓估值 1020，浮动收益 2%；卖出后现金 1020，持仓归零；共 2 笔模拟交易；结算状态为 `settled`，收益率 2%，排名第 1。完整回执见 [`paper-trade-receipt.json`](./paper-trade-receipt.json)。

## 收成区 · 已产出

本次已经得到可复查的完整本地模拟结论：AI-Trader 的后端本地测试路径可以运行，价格获取、实验分配、实验事件、恢复逻辑、价格保护和其余本地测试全部通过；API 在临时数据库和关闭后台任务的条件下可以启动；paper-trading 已完成加入挑战、买入、持仓估值、卖出和结算。

本次没有验证真实市场数据、真实交易所连接、Polymarket 结算、账户注册、实时信号写入或长时间 worker 运行。因此结论是“本地 paper-trading 流程通过，外部交易链路未测”，不是“完整交易平台全部通过”。

完整运行记录见 [`run-log.md`](./run-log.md)，机器可读结果见 [`safety-test-result.json`](./safety-test-result.json)。

## 结论

AI-Trader 不是安装一次就能宣布全部可用的项目。今天能确认的是它的本地 paper-trading 流程已经真实走通，买卖、持仓估值和结算都有回执；下一轮如果要验证真实市场适配，必须单独安排外部行情环境，并把接口、密钥、账户和数据写入条件列为新的实验变量。
