代理交易楼层
一个多LLM交易模拟平台,四个自主代理分析实时市场数据并做出协调的交易决策。使用MCP构建,在现实的交易环境中实现无缝的工具集成和数据驱动的实验。
亮点
- 具有交替交易/再平衡周期的自主、多代理交易循环
- 通过Polygon获取实时市场数据(或免费EOD回退)
- 内置MCP服务器,用于账户、市场、推送;可选搜索+内存服务器
- Gradio仪表板,带有实时PnL、图表、持仓、交易、日志
- 用于帐户、日志和缓存市场数据的SQLite持久性
快速入门
- 安装uv:请参阅
https://docs.astral.sh/uv/ - 从项目根:
cd /Volumes/SpaceHD/Learn/AgenticTradingFloor
uv sync运行仪表板
- 在单一视图中可视化所有交易者:
uv run src/app.py运行交易大厅(调度程序)
- 每N分钟运行一次;在交易和再平衡之间交替:
# Optional environment knobs
export RUN_EVERY_N_MINUTES=60
export RUN_EVEN_WHEN_MARKET_IS_CLOSED=false
export USE_MANY_MODELS=false
uv run src/trading_floor.py数据来源:直播与免费EOD
- 设置Polygon凭据以使用实时或延迟的日内数据;否则,价格将回落到EOD或随机占位符价格。
当日直播/延期需要:
export POLYGON_API_KEY=your_key
# Options: "paid" (no real-time trades/quotes), "realtime" (full real-time), or leave unset for EOD
export POLYGON_PLAN=realtime无缝工具集成(MCP)
代理使用在运行时自动连接的MCP工具:
- 账户:
get_balance,get_holdings,buy_shares,sell_shares,change_strategy - 市场(本地或多边形MCP):
lookup_share_price(本地)或丰富的多边形工具(快照、上次交易、基本面) - 推送通知:
push - 研究人员工具箱:网络获取、勇敢搜索和持久内存
这些是通过stdio MCP客户端编排的(运行平台不需要手动接线)。
手动MCP服务器(可选)
手动运行任何服务器进行调试或外部客户端连接。
- 当地市场(EOD或回退):
uv run src/market_server.py- 多边形市场MCP(实时/延迟日内):
export POLYGON_API_KEY=your_key
uvx --from git+https://github.com/polygon-io/mcp_polygon@v0.1.0 mcp_polygon- 账户:
uv run /Volumes/SpaceHD/Learn/AgenticTradingFloor/src/accounts_server.py- 推送通知(Pushover):
export PUSHOVER_USER=your_user
export PUSHOVER_TOKEN=your_token
uv run src/push_server.py手动“搜索+内存”MCP服务器(用于研究工作流程)
- Web获取:
uvx mcp-server-fetch- 勇敢的搜索:
export BRAVE_API_KEY=your_key
npx -y @modelcontextprotocol/server-brave-search- 内存(LibSQL,每个交易者的本地数据库):
在运行代理程序时,该应用程序还将在内部自动启动这些程序;只有当您喜欢显式进程或想连接外部MCP客户端时,才需要手动启动。
环境变量
- 交易/代理:
- RUN_EVERY_N_MINUTES (默认值60) - RUN_EVEN_WHEN_MARKET_IS_CLOSED (默认为false) - USE_MANY_MODELS (默认为false;切换多个供应商模型) - 可选LLM密钥: OPENROUTER_API_KEY, DEEPSEEK_API_KEY, GROK_API_KEY, GOOGLE_API_KEY
- 市场数据:
- POLYGON_API_KEY - POLYGON_PLAN = paid | realtime |未设置(EOD)
- 搜索:
- BRAVE_API_KEY
- 推:
- PUSHOVER_USER, PUSHOVER_TOKEN
重置模拟账户
- 重置四个主题策略并清除余额/持有历史记录:
uv run src/reset.py数据存储
- SQLite数据库:
src/accounts.db
- 桌子: accounts, logs, market (缓存分组的每日aggs)
故障排除
- 无价格或零报价:
- 检查 POLYGON_API_KEY 和 POLYGON_PLAN,或预计EOD/免费回退
- 勇敢的搜索错误:
- 费率受限或缺失 BRAVE_API_KEY;获取服务器仍然可以检索web内容
- 未收到推送:
- 验证 PUSHOVER_USER 和 PUSHOVER_TOKEN
- UI未更新:
- 保持调度程序运行;UI从数据库中轮询和读取
里面是什么(一目了然)
- 核心回路:
/src/trading_floor.py - 代理和工具:
/src/traders.py,/src/templates.py,/src/tracers.py - 市场数据:
/src/market.py,/src/market_server.py - 账户:
/src/accounts.py,/src/accounts_server.py - 推送服务器:
/src/push_server.py - MCP接线:
/src/mcp_params.py - 仪表板:
/src/app.py
