TqSdk2 介绍
TqSdk2 是什么
TqSdk2 是一个由 信易科技 发起并贡献主要代码的核心架构为 C++ 对外提供 python 和 C++ 接口的库.
依托 快期多年积累成熟的交易及行情服务器体系 , TqSdk2 支持用户使用很少的代码量构建各种类型的量化交易策略程序, 并提供包含 历史数据-实时数据-开发调试-策略回测-模拟交易-实盘交易-运行监控-风险管理 的全套解决方案:
from tqsdk2 import TqApi, TqAuth, TqAccount, TargetPosTask
api = TqApi(TqAccount("H海通期货", "4003242", "123456"), auth=TqAuth("信易账户", "账户密码")) # 创建 TqApi 实例, 指定交易账户
q_1910 = api.get_quote("SHFE.rb1910") # 订阅近月合约行情
t_1910 = TargetPosTask(api, "SHFE.rb1910") # 创建近月合约调仓工具
q_2001 = api.get_quote("SHFE.rb2001") # 订阅远月合约行情
t_2001 = TargetPosTask(api, "SHFE.rb2001") # 创建远月合约调仓工具
while True:
api.wait_update() # 等待数据更新
spread = q_1910.last_price - q_2001.last_price # 计算近月合约-远月合约价差
print("当前价差:", spread)
if spread > 250:
print("价差过高: 空近月,多远月")
t_1910.set_target_volume(-1) # 要求把1910合约调整为空头1手
t_2001.set_target_volume(1) # 要求把2001合约调整为多头1手
elif spread < 200:
print("价差回复: 清空持仓") # 要求把 1910 和 2001合约都调整为不持仓
t_1910.set_target_volume(0)
t_2001.set_target_volume(0)
要快速了解如何使用TqSdk2 , 可以访问我们的 十分钟快速入门
系统架构
TqSdk2 中提供了两种架构方式供用户选择使用接入期货公司
第一种,通过期货公司自建的中继交易服务器模式来接入
行情网关 (Open Md Gateway) 负责提供实时行情和历史数据
交易中继网关 (Open Trade Gateway) 部署在期货公司内部,负责连接到期货公司交易系统
这两个网关统一以 Diff协议 对下方提供服务
TqSdk2 按照 Diff 协议连接到行情网关和交易中继网关, 实现行情和交易功能
第二种,通过直连模式来接入期货公司
将交易中继网关合并到本地来支持 TqSdk2 用户直连期货公司交易柜台来进行交易 to do TqCtp
功能要点
TqSdk2 提供的功能可以支持从简单到复杂的各类策略程序.
提供当前所有可交易合约从上市开始的 全部Tick数据和K线数据
支持数十家期货公司的 实盘交易
支持通过直连模式接入期货公司进行交易
支持 模拟交易
提供近百个 技术指标函数及源码
用户无须建立和维护数据库, 行情和交易数据全在 内存数据库 , 无访问延迟
优化支持 pandas 和 numpy 库
无强制框架结构, 支持任意复杂度的策略, 在一个交易策略程序中使用多个品种的K线/实时行情并交易多个品种
编程风格
TqSdk2 支持用户构建各类复杂结构的策略程序, 同时保持高性能及高可读性. 要了解 TqSdk2 的编程框架, 请参见 策略程序结构
如果您曾经使用并熟悉过其它量化交易开发工具, 这些文件可以帮助您尽快了解 TqSdk2 与它们的差异: