TqSdk 介绍

源码仓库:GitHub · Gitee

TqSdk是什么

TqSdk 是由信易科技发起并贡献主要代码的开源 Python 库。依托快期的行情和交易服务,它支持用较少的代码构建各种类型的量化交易策略程序。

从历史数据、实时行情,到开发调试、策略回测、模拟交易、实盘交易,再到运行监控与风险管理,TqSdk 提供了完整的策略开发能力。

先创建 API 和数据引用,然后用 wait_update() 持续驱动更新。下面的程序只读取行情:

from tqsdk import TqApi, TqAuth, TqSim

with TqApi(TqSim(), auth=TqAuth("快期账户", "账户密码")) as api:
    quote = api.get_quote("KQ.m@SHFE.rb")
    while True:
        api.wait_update()
        if api.is_changing(quote, "last_price"):
            print(quote.datetime, quote.last_price)

quote 会随业务数据更新,不需要每次重新获取。K 线、账户、持仓和委托也通过类似的引用方式访问;程序结构详见 策略程序结构

要快速了解如何使用 TqSdk,可以阅读 十分钟快速入门,从安装、登录和获取行情开始。

系统架构

Open Md Gateway
行情网关
[Not supported by viewer]
Open Trade Gateway
交易中继网关
[Not supported by viewer]
期货公司交易系统
CTP / FEMAS / UFX
期货公司交易系统<br>CTP / FEMAS / UFX<br>
交易所行情系统
交易所行情系统<br>
DIFF 协议
[Not supported by viewer]
[Not supported by viewer]
  • 行情网关 (Open Md Gateway) 负责提供实时行情和历史数据

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

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

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

功能要点

TqSdk 提供的功能可以支持从简单到复杂的各类策略程序。

  • 行情数据:提供 Tick 数据和 K 线数据,可用范围取决于合约历史与账户权限。

  • 实盘交易:支持数十家期货公司的 实盘接入,账户与委托管理见 账户与交易

  • 模拟交易:支持 TqSim 本地模拟账户与 TqKq 快期模拟账户。

  • 策略回测:支持 Tick 级、K 线级及复杂策略回测

  • 指标计算:提供近百个 技术指标函数及源码

  • 数据更新:行情和交易数据通过内存中的引用对象访问,并随 wait_update() 更新。

  • 数据处理:支持 pandas 和 numpy 库,方便进一步分析行情与策略结果。

  • 策略组织:无强制框架结构,可在一个策略程序中使用多个品种的 K 线、实时行情并交易多个品种。

不同账户的数据和交易权限可能不同,接入前可查阅 TqSdk 专业版快期账户

编程风格

TqSdk使用单线程异步模型, 它支持构建各类复杂结构的策略程序, 同时保持高性能及高可读性. 要了解 TqSdk 的编程框架, 请参见 策略程序结构

如果您曾经使用并熟悉过其它量化交易开发工具, 这些文件可以帮助您尽快了解TqSdk与它们的差异:

使用 AI 辅助开发时,可以将 TqSdk Skills 交给你的 AI 编码工具,让它先阅读使用规则和示例。

License

TqSdk 在 Apache License 2.0 协议下提供, 使用者可在遵循此协议的前提下自由使用本软件.