tqsdk 中 TqYida 易达交易账户:直连易达柜台的参数详解与底层接入机制
金融科技【免费下载链接】tqsdk-python天勤量化开发包, 期货量化, 实时行情/历史数据/实盘交易项目地址https://gitcode.com/gh_mirrors/tq/tqsdk-python点击查看免费下载本文围绕tqsdk的TqYida易达交易类展开说明如何在策略代码中创建易达账户实例、五个构造参数各自的含义与取值要求以及使用前提安装tqsdk_zq_otg、申请程序化外接授权。同时结合开源仓库源码深入剖析TqYida的继承结构、登录报文组装、账户 key 计算与本地 OTG 适配进程otg_adapter的启动流程帮助读者在接入易达柜台实盘前建立完整的调用链认知并能将TqYida与TqMultiAccount多账户模式配合使用。一、TqYida 是什么TqApi 支持的易达柜台直连账户tqsdk的天勤量化开发包支持多种交易账户类型TqYida是其中面向易达交易柜台的实盘账户类。它被导出在包顶层可直接从tqsdk导入from tqsdk import TqYida这一导出定义在 tqsdk/init.py 中同时TqYida也被TqApi的account参数类型联合UnionTradeable接纳见 tqsdk/api.py 中的类型定义与参数说明:py:class:~tqsdk.TqYida : 使用易达账号。从 tqsdk/tradeable/otg/tqyida.py 的类定义可以看到它的继承关系class TqYida(BaseOtg, FutureMixin): 易达账户类BaseOtgtqsdk/tradeable/otg/base_otg.py是天勤外接柜台OTG账户的公共基类负责交易通道连接、登录与数据分发FutureMixintqsdk/tradeable/mixin.py提供期货账户的get_account()、get_position()、get_order()、get_trade()四个查询接口并声明_account_type FUTURE即TqYida是期货类型账户返回Account、Position、Order、Trade等期货业务对象。按 版本说明TqYida是在 3.7.32024/09/20版本中新增的账户类型与TqRohon、TqJees、TqCtp同属多柜台直连系列。二、创建 TqYida 实例五个参数逐项说明TqYida的构造函数签名为TqYida(account_id: str, password: str, front_url: str, app_id: str, auth_code: str)各参数含义取自 tqsdk/tradeable/otg/tqyida.py 的官方文档字符串参数类型说明account_idstr易达账户帐号passwordstr易达账户密码front_urlstr易达柜台地址格式为tcp://ip:port如tcp://129.211.138.170:10001app_idstr易达 AppIDauth_codestr易达 AuthCode官方示例同样定义在类文档字符串中from tqsdk import TqApi, TqAuth, TqYida account TqYida( account_id易达账户, password易达密码, front_url易达柜台地址, app_id易达 AppID, auth_code易达 AuthCode, ) api TqApi(account, authTqAuth(快期账户, 账户密码))两点必须注意的使用前提原文档字符串中的注意部分使用TqYida账户需要安装tqsdk_zq_otg包pip install -U tqsdk_zq_otg。自 3.7.2 起tqsdk_zq_otg已从tqsdk的安装依赖中移除见 版本说明 中的 BREAKING 记录多柜台用户必须手动安装front_url、app_id和auth_code信息需要向易达申请程序化外接后取得不是 tqsdk 侧可以自行生成的配置。TqApi仍需提供authTqAuth(快期账户, 账户密码)这是因为行情通道与数据服务依赖快期账户授权交易通道才走易达柜台直连。三、参数如何被使用源码级实现细节3.1 构造时固定了交易通道地址zqotg://127.0.0.1:0/tradetqyida.py构造函数在保存五个参数后调用基类构造super(TqYida, self).__init__( broker_id, account_idaccount_id, passwordpassword, td_urlzqotg://127.0.0.1:0/trade, )注意这里broker_id固定为空字符串交易服务地址td_url被写死为zqotg://协议的本地回环地址。从源码结构看zqotg://并非真实远端地址而是一个协议标记告诉TqConnect该账户的交易通道需要经由ZqOtgContext启动本地 OTG 适配进程后再替换为真实 WebSocket 地址。在 tqsdk/connect.py 中可以看到对应分支elif url_info.scheme.startswith(zqotg): cm ZqOtgContext(self._api)ZqOtgContexttqsdk/zq_otg.py在get_url()中做两件事检查tqsdk_zq_otg是否安装且版本不低于3.10.1否则抛出使用 ... 账户需要安装/更新 tqsdk_zq_otg 包的异常——这就是文档中第一条注意事项的底层来源启动tqsdk_zq_otg包携带的原生进程otg_adapter--modecmd监听其写出的port.json把127.0.0.1:port组装成ws://地址返回给TqConnect。因此整个链路是策略代码 → TqYidaPython 账号对象→ 本地 WebSocket → otg_adapter原生进程负责与易达柜台通信→ 易达柜台。OTG 日志与配置文件分别落在~/.tqsdk/otg_logs与~/.tqsdk/otg_config目录下排查柜台侧问题时应优先查看这些目录。3.2 登录报文把五个参数交给适配进程BaseOtg._run()在建立通道后会触发await self._send_login_pack()见 tqsdk/tradeable/otg/base_otg.py。TqYida重写了该方法将五个构造参数打包为登录请求并通过交易通道发出async def _send_login_pack(self): req { aid: req_login, bid: tqsdk_zq_otg, user_name: self._account_id, password: self._password, broker_id: , front: self._front_url, app_id: self._app_id, auth_code: self._auth_code, backend: yida } await self._td_send_chan.send(req)其中backend: yida是区分易达柜台的关键字段——同系列账户如TqRohon的rohon、TqJees的jees结构一致仅backend与参数组合不同。bid固定为tqsdk_zq_otg表示由本地适配进程处理该登录请求。3.3 账户 key多账户隔离的身份标识TqYida重写了_get_account_key()def _get_account_key(self): s self._broker_id self._account_id s self._front_url if self._front_url else return hashlib.md5(s.encode(utf-8)).hexdigest()与基类仅用broker_id account_id不同TqYida把front_url也纳入哈希输入。从源码结构看这样设计的意义在于同一易达账号若经由不同柜台地址接入会产生不同的account_key从而在api._data[trade]数据截面中获得独立的数据空间避免账户间串号。业务数据账户资金、持仓、委托、成交均以该 key 为一级索引存储FutureMixin的四个查询方法正是通过[trade, self._account_key, ...]路径取数。3.4_account_auth声明与登录行为TqYida还定义了_account_auth属性property def _account_auth(self): return { feature: tq_direct, account_id: self._account_id, auto_add: True, }ZqOtgContext在初始化时会筛选_account_auth.get(feature) tq_direct的账户来确定需要启动 OTG 适配进程的账户类型TqYida因此会被正确识别为直连柜台类账户并纳入适配进程管理流程。四、拿到 TqApi 之后行情、账户数据与下单创建TqYida并传入TqApi后使用方式与TqAccount等实盘账户一致。典型的账户数据读取循环from tqsdk import TqApi, TqAuth, TqYida account TqYida( account_id易达账户, password易达密码, front_urltcp://x.x.x.x:10001, app_id易达 AppID, auth_code易达 AuthCode, ) api TqApi(account, authTqAuth(快期账户, 账户密码)) acc account.get_account() pos account.get_position(DCE.i2501) while api.wait_update(): print(acc.dynamic_balance, pos.pos_long)get_account()/get_position(symbol)/get_order(order_id)/get_trade(trade_id)返回的是对象引用其内容在api.wait_update()时更新而不是每次调用都会产生新的网络请求委托、撤单使用api.insert_order(...)、api.cancel_order(...)多账户模式下这些 API 必须传account参数指定账户实例参见 tqsdk/risk_rule.py 中对account参数多账户模式下必须指定的说明。五、与 TqMultiAccount 组合一个 API 驱动多个柜台账户tqsdk的 TqMultiAccount 支持在一个TqApi下同时操作不同账户其accounts列表类型中明确包含TqYida见 tqsdk/multiaccount.py 构造函数的参数说明。示例from tqsdk import TqApi, TqAuth, TqMultiAccount, TqYida, TqAccount yida_acc TqYida( account_id易达账户, password易达密码, front_urltcp://x.x.x.x:10001, app_id易达 AppID, auth_code易达 AuthCode, ) broker_acc TqAccount(某期货公司, 123456, 123456) api TqApi(TqMultiAccount([yida_acc, broker_acc]), authTqAuth(快期账户, 账户密码)) order1 api.insert_order(symbolDCE.i2501, directionBUY, offsetOPEN, volume1, accountyida_acc) order2 api.insert_order(symbolSHFE.rb2510, directionBUY, offsetOPEN, volume1, accountbroker_acc) while order1.status ! FINISHED or order2.status ! FINISHED: api.wait_update() print(yida_acc.get_account().dynamic_balance) print(broker_acc.get_account().dynamic_balance) api.close()两点细节TqMultiAccount构造函数会用_account_key去重并拒绝重复的账户实例多账户列表中不允许使用重复的账户实例.异常。由于TqYida的 key 计算包含front_url同一账号不同柜台地址被视为不同账户多账户模式下对get_position、account、insert_order、set_target_volume等函数必须指定account参数否则会报多账户模式下, 需要指定账户实例 account。六、排错要点对照源码确认报错位置现象来源处理方向使用 TqYida 账户需要安装 tqsdk_zq_otg 包: pip install -U tqsdk_zq_otgtqsdk/zq_otg.py 中ImportError分支执行pip install -U tqsdk_zq_otg使用 TqYida 账户需要更新 tqsdk_zq_otg 包到最新版本同上版本低于3.10.1分支升级tqsdk_zq_otg获取交易服务地址失败ZqOtgContext.get_url()在 30 秒内未拿到非零port时抛出TqContextManagerError检查本地是否成功拉起otg_adapter进程查看~/.tqsdk/otg_logs下最新日志目录柜台侧鉴权失败、登录无响应登录报文经otg_adapter转发到易达柜台_send_login_pack中的req_login核对front_url/app_id/auth_code是否为易达程序化外接下发的值tcp://ip:port格式是否正确TqConnect层还具备交易通道断线重连能力BaseOtg._connect_td中为每个通道创建了TdReconnectHandler见 tqsdk/tradeable/otg/base_otg.py因此网络抖动后不必手工重建TqApi。七、小结TqYida是tqsdk直连易达柜台的期货账户类继承BaseOtgOTG 通道与登录与FutureMixin账户/持仓/委托/成交查询在 tqsdk/tradeable/otg/tqyida.py 中实现构造需五个参数account_id、password、front_urltcp://ip:port格式、app_id、auth_code后三者须由易达程序化外接申请获得使用前必须pip install -U tqsdk_zq_otgTqApi仍需TqAuth快期账户授权行情与数据服务底层经由本地zqotg://协议占位地址与otg_adapter原生进程通信登录报文以backend: yida标识柜台可与TqMultiAccount组合在一个TqApi中驱动多柜台账户此时所有下单与账户敏感 API 都要显式传入account实例。赞分享金融科技【免费下载链接】tqsdk-python天勤量化开发包, 期货量化, 实时行情/历史数据/实盘交易项目地址https://gitcode.com/gh_mirrors/tq/tqsdk-python点击查看免费下载相关推荐TqXuntou 迅投柜台直连详解tqsdk-python 中期货账户接入迅投交易柜台的完整实现TqXuntou 迅投柜台直连详解tqsdk python 中期货账户接入迅投交易柜台的完整实现 天勤量化开发包tqsdk python通过 TqXunt金融科技TqJees 杰宜斯资管账户接入指南tqsdk 多柜台直连交易架构与源码级解析TqJees 杰宜斯资管账户接入指南tqsdk 多柜台直连交易架构与源码级解析 在 tqsdk python天勤量化开发包中 TqJees 是用于直连杰金融科技tqsdk-python 的 TqKq 与 TqKqStock快期模拟交易类详解——账户体系、源码机制与多账户实战tqsdk python 的 TqKq 与 TqKqStock快期模拟交易类详解——账户体系、源码机制与多账户实战 TqKq 快期模拟交易类与 TqKqS金融科技创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

DDNS 中 DNSPod(dnspod.cn)配置指南:认证方式、完整参数与 API 实现解析

DDNS 中 DNSPod(dnspod.cn)配置指南:认证方式、完整参数与 API 实现解析

网络CLI 【免费下载链接】DDNS 🌐自动更新域名解析到本机IP,支持dnspod,阿里DNS,CloudFlare,华为云,DNSCOM... 项目地址: https://gitcode.com/gh_mirrors/dd/DDNS 点击查看 免费下载 本文围绕 DDNS 仓库 中 dnspod 服务商(DNSPod 中国版&am…

2026/10/14 15:56:01 阅读更多 →
LeNet-5深度解析:卷积神经网络的奠基模型与工程本质

LeNet-5深度解析:卷积神经网络的奠基模型与工程本质

1. 这个看似“古董级”的模型,为什么至今仍是深度学习入门必修课你打开任何一本讲卷积神经网络的书,或者点开任意一个PyTorch/TensorFlow的官方入门教程,几乎必然会在第二章看到它——LeNet-5。它诞生于1998年,比大多数程序员写第…

2026/10/14 15:56:01 阅读更多 →
电磁场与电磁波第二版课后习题解答:鉴别、使用与避坑指南

电磁场与电磁波第二版课后习题解答:鉴别、使用与避坑指南

简介:《电磁场与电磁波》第二版课后习题解答(陈抗生编著)是一份完整版答题文档,主要面向通信类及相关专业本科学生、考研备考生和需要巩固电磁场理论的工程技术人员。整份资源为1个doc文件,压缩包大小约1MB&#xff0c…

2026/10/14 15:56:01 阅读更多 →

最新新闻

AI Agent状态清理:超时重试背后的系统性风险与四维治理

AI Agent状态清理:超时重试背后的系统性风险与四维治理

1. 这不是超时和重试的问题,是状态管理的系统性溃败“给 AI Agent 加超时和重试后,我才发现真正的坑在状态清理”——这句话刚在内部技术群刷出来时,我正盯着一个跑了37分钟、卡在waiting_for_tool_execution状态、内存占用飙升到4.2GB却毫无…

2026/10/14 16:41:53 阅读更多 →
嵌入式Qt记事本开发全链路:从交叉编译到中文文件IO

嵌入式Qt记事本开发全链路:从交叉编译到中文文件IO

简介:这是一份基于Qt6开发的跨平台记事本项目源码,面向嵌入式与桌面应用开发初学者及Qt进阶学习者,聚焦GUI界面构建、文件编码处理与轻量级文本编辑功能实现。项目完整呈现了现代C在Qt框架下的典型工程实践,涵盖主窗口&#xff08…

2026/10/14 16:41:53 阅读更多 →
计算机系统概论第一章答案精讲:ISA、微架构与算法性质

计算机系统概论第一章答案精讲:ISA、微架构与算法性质

简介:计算机系统概论(原书第二版)第一章习题答案以PDF形式提供,面向计算机专业学生、考研读者和自学入门者,用于对照教材习题检验对计算机系统基础概念的掌握。内容选自原书附录的精选解答,覆盖冯诺依曼通用…

2026/10/14 16:41:53 阅读更多 →
远视储备与近视防控:从原理到实操的家长指南

远视储备与近视防控:从原理到实操的家长指南

1. 远视储备不是“储备”,而是一笔会不断消耗的视力存款1. 远视储备不是“储备”,而是一笔会不断消耗的视力存款1.1 远视储备到底是什么很多家长第一次听到“远视储备”这个词,是在幼儿园体检或者眼科门诊的报告单上。医生指着上面的数字说&a…

2026/10/14 16:41:53 阅读更多 →
Python数据挖掘实战:K均值聚类从原理到应用

Python数据挖掘实战:K均值聚类从原理到应用

1. 从一个真实需求说起:为什么K均值聚类值得你花时间搞懂做数据挖掘这些年,我越来越觉得,K均值聚类是那种“看起来简单、用起来真香、但踩坑也真不少”的算法。很多刚入门的朋友一听到“无监督学习”四个字就头大,觉得没有标签怎么…

2026/10/14 16:41:53 阅读更多 →
MinGW-w64离线安装包:断网Windows下C/C++工具链部署指南

MinGW-w64离线安装包:断网Windows下C/C++工具链部署指南

简介:MinGW-w64是为64位Windows系统打造的GCC工具链离线安装包,面向需要在Windows环境下学习或开展C语言开发的程序员。压缩包约2000个文件、133.98MB,主要由h头文件、Python脚本、a静态库、pyc编译文件、exe可执行程序、dll动态库及少量c源文…

2026/10/14 16:40:52 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →