TqSdk 本地众期多策略系统实战指南:用 TqTradingUnit 在单一实盘账户下隔离运行多个策略

发布时间:2026/10/14 16:03:59
TqSdk 本地众期多策略系统实战指南:用 TqTradingUnit 在单一实盘账户下隔离运行多个策略
金融科技【免费下载链接】tqsdk-python天勤量化开发包, 期货量化, 实时行情/历史数据/实盘交易项目地址https://gitcode.com/gh_mirrors/tq/tqsdk-python点击查看免费下载对于一个期货实盘账户同时运行多个策略的场景多个策略交易同一标的时会出现持仓归属不清、绩效无法归因的问题。天勤量化tqsdk-python在企业版中提供了本地众期多策略系统把同一个实盘账户在本地拆分为多个策略前端账户各策略的持仓、委托、资金与盈亏相互隔离且跨交易日有效并通过TqTradingUnit账户对象让策略代码像登录普通账户一样登录前端账户。读完本文你将掌握本地环境的初始化、Web 管理页的多策略组配置、TqTradingUnit登录与源码层面的连接机制、异常委托的处置规则以及日志导出和环境重置等运维操作。一、多策略系统要解决的问题与整体方案多策略系统的背景在 企业版文档 中有明确说明随着对收益曲线稳定的追求较多用户需要在一个账户下运行多个策略当多个策略交易同一标的时就面临不同策略的持仓管理、绩效归因等问题。本地众期多策略系统的方案要点见 多策略使用手册支持用户在本地将一个实盘账户拆分为多个策略多个前端账户每个策略的交易数据相互隔离且跨日有效提供多策略的管理界面可可视化观察各个策略的持仓、委托、资金和盈亏情况支持以策略维度前端账户登录快期专业版进行管理与交易。需要注意的前提该功能属于TqSdk 企业版能力企业版说明 中写明企业版支持直连 CTP/融航/杰宜斯等柜台与专业版的区别主要在柜台支持方式使用前需按企业版流程申请试用或购买。系统配置要求组件要求Windows Windows 10Linux Ubuntu 22.04tqsdk 3.8.0当前仓库版本为 3.10.1见 tqsdk/version.py快期专业版 2504.659二、安装与本地环境初始化安装 tqsdk-zq使用本地众期多策略系统需要安装tqsdk-zq包用来初始化本地环境pip install tqsdk-zq对于 Windows 用户还需要安装 Microsoft Visual C Redistributablex64 版vc_redist.x64.exe可从微软官方渠道获取这是本地众期服务端进程在 Windows 上运行的运行库依赖。初始化本地环境tqsdk-zq init --kq-namexx --kq-passwordxx --web-portxx参数说明参数是否必填说明--kq-name必填快期账户--kq-password必填快期密码--web-port可选多策略管理页端口不指定时使用默认端口初始化行为要点初始化完成后控制台会输出多策略管理页的账户、密码以及网址默认账户密码均为admin后续跨交易日、重启电脑后不需要再执行初始化步骤直接运行 Python 策略代码即可初始化后打开浏览器访问控制台输出的网址进入众期管理页。打印/拉起多策略控制台地址tqsdk-zq web适用场景机器重启后或网页打不开了执行该命令重新拉起进程控制台会输出管理页网址web 管理端在跨交易日后需要重新执行tqsdk-zq web拉起。源码印证策略进程如何拉起本地众期服务tqsdk-zq init会在用户主目录生成配置文件~/.tqsdk/zq/config/zq.json记录td_url与 Python 解释器路径。策略代码通过TqApi启动交易连接时TqConnect会根据连接地址的 scheme 自动拉起本地众期进程相关实现如下tqsdk/connect.py当交易地址的 scheme 以zq开头时创建ZqContext以zqotg开头时创建ZqOtgContext并通过cm.get_url(url_info)解析出真实的 websocket 地址后再建连tqsdk/zq.pyZqContext.get_url读取~/.tqsdk/zq/config/zq.json中的td_url与interpreter然后以子进程方式执行python -m tqsdk_zq.cli start拉起本地众期服务Windows 与非 Windows 平台分别用subprocess.Popen和asyncio.create_subprocess_exec实现。进程返回码非 0 时抛出TqContextManagerError配置文件缺失或损坏时会明确提示加载配置文件失败请尝试重新初始化: tqsdk-zq init。这也解释了文档中重启电脑后不用再执行初始化的原因策略进程每次启动时会自动尝试拉起本地众期服务而 web 管理端不随策略进程启动因此跨交易日后需要手动执行tqsdk-zq web。三、访问众期管理页配置多策略组在管理页完成策略组配置的核心步骤在运维和日常管理页添加组在组中选择模式为多策略在策略组中选择账户及交易模式然后点击右侧的号添加后端账号实盘账户或 simnow 账户继续点击号添加前端账户多策略并设置入金金额如果后端账户已有持仓则需要在资金监控和强平强撤页的持仓明细中把持仓分配到各个前端账户。后端账户—前端账户的层级关系可以理解为后端账户是真正对接期货公司柜台的资金与持仓载体前端账户是分配了入金额度后的策略子账户策略代码登录的正是前端账户。四、使用 TqTradingUnit 登录前端账户策略侧登录前端账户只需两行核心代码注意在天勤中登录前端账户时只需输入账户名不用输入前端账户密码from tqsdk import TqApi, TqTradingUnit, TqAuth # 在天勤中登录前端账户时只用输入账户名即可不用输入前端账户密码 account TqTradingUnit(account_id前端账户号) api TqApi(account, authTqAuth(快期账户, 账户密码))TqTradingUnit支持tags参数用于策略标签from tqsdk import TqApi, TqTradingUnit, TqAuth account TqTradingUnit(account_id众期子账户, tags[铜品种策略, 套利策略]) api TqApi(account, authTqAuth(快期账户, 账户密码))参数与实现细节源码级TqTradingUnit的定义在 tqsdk/tradeable/otg/tqtradingunit.py可从源码确认以下事实参数account_id必填众期子账户/前端账户号tags可选策略标签列表默认为调用TqTradingUnit的文件名及account_id见_convert_tags中使用inspect.stack()取调用方文件名的实现内部固定值broker_id、passwordtqsdk_zq、td_urlzq://localhost/即前端账户无需密码交易地址固定指向本地众期服务与第二节的zqscheme 自动拉起机制正好衔接登录包_send_login_pack发送aidreq_login、bidtqsdk_zq的登录请求携带user_name前端账户号与tags因此策略标签会随登录传入众期系统便于管理端识别策略来源账户标识_get_account_key返回md5(account_id td_url)用作该账户在 tqsdk 内部的唯一键能力范围该类继承BaseOtg与FutureMixin见 tqsdk/tradeable/otg/tqtradingunit.py从源码结构看其面向期货类账户的交易能力_account_auth中featuretq_trading_unit标识了该账户类型auto_addFalse表示不会被自动加入默认账户。TqTradingUnit在 API 层的暴露情况由 tqsdk/tradeable/otg/init.py 导出并通过 tqsdk/init.py 直接从tqsdk顶层包导入tqsdk/api.py 中TqApi的账户类型UnionTradeable包含TqTradingUnit即它可以作为TqApi(account, auth...)的账户参数使用tqsdk/multiaccount.py 的TqMultiAccount多账户列表同样支持TqTradingUnit实例可以在一个TqApi下组合多个前端账户与其他账户多账户模式下insert_order、set_target_volume等函数必须显式指定account参数风控规则相关接口tqsdk/risk_rule.py的account参数说明中也列出了TqTradingUnit多账户模式下需指定发送下单指令的账户实例。与多实例运行策略方案的关系如果多个策略不交易同一标的官方还准备了更轻量的方案——多进程或多异步任务运行同一策略的不同实例见 交易策略的多实例运行。而本地众期多策略系统解决的是同一账户、同一标的下多策略的持仓归属与绩效归因问题两者的定位不同可对照选择。五、异常委托分配异常委托是众期多策略特有的概念处置规则如下使用众期多策略交易后系统默认该后端账户下的所有交易指令均由前端账户发出当后端账户发出了某笔委托而未指定前端账户时该委托会被归类为异常委托范围例如人工在快期专业版后端账户上直接下单当系统存在异常委托时会每隔固定时间向前端账户推送通知提醒用户将异常委托分配到具体前端账户如果本交易日未进行分配会导致下一个交易日众期系统初始化失败下一交易日因此初始化失败后前端账户的持仓将都会被清空用户需要重新从后端账户往前端账户分配持仓。实践建议凡是在后端账户维度发生的人工交易、改单或外部委托当天就应在管理页完成异常委托归属分配避免跨日后持仓被清空带来手工重建持仓的额外风险。六、在快期专业版中登录多策略前端账户如需以策略维度登录快期专业版管理或交易前端账户点击左上角交易按钮中的配置众期服务器在备注项设置站点名称服务器地址项设置本地交易地址本地交易地址为ws://localhost端口号在用户不设置的情况下默认为 8342在登录站点列表中选择刚刚添加的站点登录。七、日志导出与重置本地环境补充运维操作以下内容补充自 进阶版多策略手册供问题排查与环境重建时使用。日志导出遇到使用问题时可点击管理页面左下角日志导出按钮导出日志再打包日志目录发送以便排查。日志目录为~/.tqsdk/zq/logLinuxtar -czf ~/tqsdk_zq_log.tar.gz -C ~ .tqsdk/zq/logWindowsPowerShellcd $env:USERPROFILE tar -czf tqsdk_zq_log.tar.gz .tqsdk/zq/log重置本地环境若想彻底清空本地数据重新开始需先停止本地众期相关进程再删除数据目录~/.tqsdk/zq删除后重新执行tqsdk-zq init初始化。Linux 下相关进程包括zq_server_history_go、service_daemon、sock-proxy、postgresWindows 下对应zq_server_history_go.exe、service_daemon.exe、sock-proxy.exe、postgres.exe。具体命令以 进阶手册中的重置本地环境小节 为准注意该操作会删除全部本地多策略数据。从 tqsdk/zq_otg.py 与 tqsdk/zq.py 的目录常量可以印证本地众期服务的数据、日志、配置均集中存放在用户主目录的~/.tqsdk/zq/下配置为~/.tqsdk/zq/config/zq.json这既是日志导出路径的来源也是重置环境时删除目标所在。八、其他事项来自 多策略使用手册 的边界说明在众期多策略系统中添加实盘账户时仍然占用企业版 3 个实盘账户的名额如需额外购买实盘账户名额需联系天勤商务多策略的拆分和运行均在本地不支持跨电脑使用多策略功能与~/.tqsdk/zq/本地数据及zq://localhost/的连接方式一致如需删除前端账户需要先清除持仓平仓或者通过持仓划转然后将出入金转出才可以删除。九、版本升级与变更记录升级多策略功能所有依赖包使用pip install -U --upgrade-strategy eager tqsdk-zq手册中记录的版本变更节选自 doc/tq_trading_unit.rst日期tqsdk-zqtqsdk-zq-server其他包变更内容2025/12/101.0.31.0.6history 1.0.0 / pgserver 1.0.0 / proxy 1.0.0修复撤单失败的问题2025/06/161.0.31.0.5history 1.0.0 / pgserver 1.0.0 / proxy 1.0.0新增历史结算信息查询功能2025/06/031.0.21.0.4pgserver 1.0.0 / proxy 1.0.0修复快期模拟添加进用户实盘账户列表2025/04/291.0.21.0.3pgserver 1.0.0 / proxy 1.0.0修复与本地其他 postgres 进程端口冲突、持仓划转失败、风控规则高级模式未正确传递 enable 参数的问题从变更历史也可以看出该系统的技术构成本地运行有server服务、history历史结算、pgserver本地 PostgreSQL用于数据存储、proxy代理等多个组件这也与重置本地环境时需要停止 postgres 等进程的操作相呼应。小结本地众期多策略系统的完整使用链路为pip install tqsdk-zq安装 →tqsdk-zq init初始化本地环境 →tqsdk-zq web拉起管理页跨交易日需重复→ 管理页配置后端账户 前端账户 入金/持仓分配 → 策略代码用TqTradingUnit(account_id前端账户号)登录前端账户后照常编写交易逻辑。源码层面TqTradingUnit固定使用zq://localhost/交易地址TqConnect识别该 scheme 后由ZqContext自动拉起本地众期进程并完成登录使得策略侧代码无需关心本地服务细节同时务必关注异常委托的当日分配要求避免跨日后前端账户持仓被清空。赞分享金融科技【免费下载链接】tqsdk-python天勤量化开发包, 期货量化, 实时行情/历史数据/实盘交易项目地址https://gitcode.com/gh_mirrors/tq/tqsdk-python点击查看免费下载相关推荐TqSdk 本地众期多策略系统TqTradingUnit使用手册一个实盘账户拆分为多个隔离策略TqSdk 本地众期多策略系统TqTradingUnit使用手册一个实盘账户拆分为多个隔离策略 本地众期多策略系统是 TqSdk 企业版提供的账户拆分方案金融科技AssetRipper 教程3 步解包并导出 Unity 游戏资源AssetRipper 教程3 步解包并导出 Unity 游戏资源 AssetRipper 是一款解析 Unity 游戏文件的 GUI 工具。把 AssetB开发工具逆向工程游戏开发Chatbox多用户安全指南本地数据隔离与访问控制策略Chatbox多用户安全指南本地数据隔离与访问控制策略 你是否在团队共享电脑上使用Chatbox时担心数据泄露多人共用一台设备时如何确保每个人的 对话记录AI 应用桌面应用大模型创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考