多代理交易大厅模拟
一个完全模块化的实时交易大厅模拟,具有自主交易者代理、自定义市场微观结构、账户管理和用于监控交易、头寸、余额和跟踪事件的实时Gradio仪表板。
该项目汇集了15个以上的协调模块,以模拟一个轻量级的交易生态系统,在这个生态系统中,多个代理——每个代理都遵循不同的金融交易理论——在一个程序控制的市场中竞争和互动。
主要特点
- 四个自主交易者代理实施独特的金融模型。
- 实时订单簿市场模拟,包括价格更新和填充。
- 用于余额、PnL和持股管理的专用账户引擎。
- 用于事件驱动执行的统一推送、跟踪和市场服务器。
- 实时Gradio仪表板显示交易、活动日志和账户状态。
系统架构
1.交易商代理(traders.py, reset.py)
每个代理人都遵循一个独特的金融理论:
- 动量交易者
- 均值回归交易者
- 风险平价交易员
- 套利交易者
理论通过以下方式初始化 reset.py,定义基线参数、反应阈值和策略逻辑。
2.市场引擎(market.py, market_server.py)
- 通过买卖更新模拟实时市场。
- 维护内部订单簿。
- 根据价格和可用性匹配收到的订单。
- 将执行事件发送到交易大厅。
3.会计制度(accounts.py, accounts_server.py, accounts_client.py)
- 管理余额、未结头寸、份额数量和交易历史。
- 每次订单完成后更新持有量。
- 确保所有交易都经过验证并正确记录。
4.事件和推送基础设施(push_server.py, tracers.py)
- 为以下对象发送实时流更新:
- 已执行交易 - 价格变动 - 代理人决策 - 系统事件
- 跟踪器记录内部代理推理和交互,以便调试。
5.数据库层(database.py)
- 存储事务历史和相关会话元数据。
- 支持模拟运行之间的重置。
6.交易大厅协调人(trading_floor.py)
- 核心控制器:
- 初始化所有交易者 - 连接市场和客户服务器 - 在组件之间路由消息 - 执行交易周期
7.Gradio仪表板(app.py)
- 用于监控模拟的用户界面。
- 显示:
- 实时交易 - 代理跟踪日志 - 当前持有量 - 现金余额 - 市场价格更新
文件结构
project/
│── traders.py
│── reset.py
│── trading_floor.py
│── market.py
│── market_server.py
│── accounts.py
│── accounts_server.py
│── accounts_client.py
│── database.py
│── push_server.py
│── tracers.py
│── mcp_params.py
│── templates.py
│── util.py
│── app.py
│── README.md安装
先决条件
- Python 3.10+
- 度
- FastAPI/Uvicorn(如果独立运行服务器)
- 需求中定义的任何其他依赖关系
再进行
pip install -r requirements.txt用法
启动服务器(市场、帐户、推送)
在单独的终端中运行每个服务器:
python market_server.py
python accounts_server.py
python push_server.py启动交易大厅
python trading_floor.py启动Gradio仪表板
python app.py这将打开一个实时流式UI:
- 已执行的交易
- 交易者推理痕迹
- 持有量和当前余额
- 市场价格更新
定制
修改交易理论
调整参数或行为 reset.py.
添加新的交易代理
- 在中创建新的交易者类
traders.py. - 在中注册
trading_floor.py.
改变市场动态
修改报价频率、价格波动和流动性 market.py.
增强可视化
扩展 app.py 用于:
- 价格历史图表
- 损益表
- 代理性能比较
示例输出
仪表板可能显示:
- 每次运行10000+笔交易
- 实时头寸表(份额、成本基础)
- 带有时间戳的实时买入/卖出执行
- 显示代理推理步骤的跟踪器日志
贡献
欢迎引入新交易策略、可视化组件或引擎改进的拉取请求。
许可证
Apache 2.0许可证
