TqSdk2 与 TqSdk 有哪些差别

TqSdk2 与 TqSdk 在代码编写方面几乎一样,大部分 TqSdk 上的函数和代码在 TqSdk2 上面能够直接使用,总体架构上 TqSdk2 和 TqSdk 有了不少进步.

系统整体架构

TqSdk 使用的是基于网络协作的组件设计. 如下图:

交易中继网关
交易中继网关
交易所行情
交易所行情
行情网关
Open Md Gateway
行情网关 Open Md Gateway
DIFF 协议
TqSdk
TqSdk
期货公司交易系统
CTP/FEMAS/UFX
期货公司交易系统 CTP/FEMAS/UFX
Viewer does not support full SVG 1.1

如图所示, 整个系统结构包括这些关键组件:

  • 行情网关 (Open Md Gateway) 负责提供实时行情和历史数据

  • 交易中继网关 (Open Trade Gateway) 负责连接到期货公司交易系统

  • 上面两个网关统一以 Diff 协议对下方提供服务

  • TqSdk 按照Diff协议连接到行情网关和交易中继网关, 实现行情和交易功能

TqSdk2 继承了上述这种架构,并且将交易中继网关并入了本地,因此**额外**提供给用户直连期货公司的选项:

期货公司交易系统
CTP/FEMAS/UFX
期货公司交易系统 CTP/FEMAS/UFX
交易所行情
交易所行情
行情网关
Open Md Gateway
行情网关 Open Md Gateway
DIFF 协议
TqSdk2
TqSdk2
Viewer does not support full SVG 1.1

在选择 TqSdk2 直连模式时:

  • 用户代码从中继模式切换直连模式,只用修改一行代码

  • 直连模式下,省去交易指令需要经过交易中继网关流程,减少了用户交易指令到达期货公司的延迟,并提升系统稳定性

需要注意选择直连模式时,用户需要向期货公司申请程序化接入并且填写自己的接入信息 以直连模式接入期货公司

同时 TqSdk2 中将 TqSdk 里的底层代码全部用 C++ 进行了重构,会在这些地方有明显改善:

  • 维持了大部分 TqSdk 中的接口,让用户 TqSdk 中的代码可以不需修改的移动到 TqSdk2

  • 有效减少了程序内的运算耗时

  • 同等代码下 TqSdk2 的回测速度提升了十倍以上

  • 相比 TqSdk, TqSdk2 期货公司直连测试流程

其它区别

此外, 还有一些差别值得注意

  • TqSdk2 要求 Python 3.6.4 以上版本, 不支持 Python 2.x

要学习使用 TqSdk2, 推荐从 十分钟快速入门 开始