QMT 多账户、多策略怎么管?量化团队常见的三种架构
QMT 是很多量化团队做 A 股实盘的起点:由券商提供,在本地运行,用 Python 写策略,接入门槛不高。
策略少的时候,一切都很简单。策略和账户变多之后,几个问题会陆续出现:
- 一个策略要同时下到多个账户
- 多个策略共用一个账户,持仓分不清是谁的
- 交易员也要手动下单,人工委托和程序委托混在一起
- 风控逻辑散落在各个策略的代码里,标准不统一
说明:不同券商提供的 QMT 版本(如完整客户端、极简模式 / miniQMT)在多账户支持、接口权限上存在差异。本文讨论的是管理架构,具体功能请以券商的说明为准。
架构一:一个策略对应一个账户
每个策略单独使用一个资金账户,天然隔离,持仓和收益不会混在一起。
优点:最简单,几乎不需要额外开发;出了问题,影响范围也小。
缺点:账户越开越多,资金分散,开户和日常维护的成本高;想看所有策略的整体风险,要把多个账户的数据手工汇总。
适合:策略数量少、每个策略的资金规模都足够大的阶段。
架构二:在策略代码里自己处理
在策略代码里循环向多个账户下单,用下单接口自带的策略名称、委托备注等字段给每笔委托打标签,再由代码自己维护每个策略的持仓。
以 miniQMT 的 xtquant 为例,示意如下(接口细节以所用版本的官方文档为准):
from xtquant.xttrader import XtQuantTrader
from xtquant.xttype import StockAccount
from xtquant import xtconstant
trader = XtQuantTrader(qmt_userdata_path, session_id)
trader.start()
trader.connect()
accounts = [StockAccount(acc_id) for acc_id in ["账户A", "账户B"]]
for acc in accounts:
trader.subscribe(acc)
# 按分配结果分别下单,并用策略名称和备注标记归属
for acc, volume in zip(accounts, [3700, 2200]):
trader.order_stock(
acc, "600000.SH", xtconstant.STOCK_BUY, volume,
xtconstant.FIX_PRICE, 10.50,
"strategy_A", "signal_20261027_001",
)
优点:不用引入新系统,开发者完全掌控逻辑。
缺点:
- 每个策略都要重复实现分配、取整、记账、风控,代码质量参差不齐
- 交易员手动下的单不经过这段代码,记账会漏
- 策略重启或异常退出后,内存里的持仓状态可能丢失
- 风控写在策略代码里,一旦代码出错,没有一层独立的拦截
适合:策略不多、由同一个开发者维护、基本没有人工交易的团队。
架构三:加一层统一的交易中台
策略不再直接面对券商账户,只把带有策略身份的指令发给一个中间层。中间层统一负责:
- 识别指令来自哪个策略
- 按配置把指令分配到一个或多个账户
- 进行策略层、账户层双层风控
- 向券商账户报单
- 把成交回报归属到对应策略,并按策略记账
- 与券商账户每日对账
交易员的手动委托也从中台的交易端进入,和程序委托走同一套流程。
优点:新策略接入时只需对接指令;风控和记账的标准统一;每笔指令都可以追溯。
缺点:多了一层组件,需要关注链路延迟和稳定性;部署和运维要有人负责;如果自研,开发和长期维护的投入都不小。
适合:多策略、多账户、多人协作,或者需要向管理层出具策略级报告的团队。
三种架构对比
| 一策略一账户 | 在代码里处理 | 统一交易中台 | |
|---|---|---|---|
| 持仓隔离 | 天然隔离 | 依赖代码正确 | 系统统一记账 |
| 人工委托 | 单独处理 | 容易漏记 | 走同一流程 |
| 风控一致性 | 各账户各自配置 | 分散在各策略代码中 | 统一配置 |
| 可追溯性 | 一般 | 取决于日志 | 每笔指令可追溯 |
| 初始投入 | 低 | 低 | 自研较高,采购取决于方案 |
| 适合阶段 | 起步期 | 小团队 | 规模化阶段 |
如果决定自研中台,要提前想好这些
- 指令协议:策略怎么发指令、怎么标识身份、怎么收到结果
- 回报处理:断线重连、回报乱序、重复回报
- 并发与延迟:多账户同时报单时的性能
- 持仓对账:系统记录和券商账户不一致时,怎么发现、怎么处理
- 权限与留痕:谁能下单、谁能改风控,所有操作都可审计
- 高可用:中台本身出问题时,策略和持仓怎么办
- 合规要求:程序化交易的报告等义务,以及交易所对报单行为的相关要求
策略管家怎么处理
策略管家的实盘分仓系统就是"架构三"的一种实现:
- 支持通过 QMT、掘金或标准接口接入量化策略,PC 端和移动端支持人工交易
- 支持一对多、多对一、多对多的策略与账户关系
- 策略层、账户层双层风控
- 支持私有化部署
能否接入、怎么接入,需要结合你使用的券商、账户类型、QMT 客户端版本和策略报单方式来评估。
预约演示
如果你的团队正在用 QMT 或其他量化平台管理多个策略和账户,欢迎带着当前的业务场景来沟通。提前准备好这四项信息,演示会更有针对性:
- 需要接入的券商主账户数量及账户类型
- 当前使用的量化平台、交易接口或人工交易方式
- 策略与账户之间的分配关系,以及希望设置的风控规则
- 当前最想解决的操作或管理问题
本文讨论的是机构对自有或依法授权证券账户的内部交易管理,不涉及出借或借用证券账户。文中代码为示意,不构成投资建议。策略管家提供交易管理软件与技术服务,不提供投资建议,不承诺投资收益。