期货、期权、股票量化全套解决方案,简单但强大的Python开发包

0 +
用户数
0 +
已上线期货公司
0 +
实盘报单量

Python语言

基于python语言, 在一个策略中访问任意K线和行情数据, 还能对交易细节和账户执行精确控制

即装即用

一分钟安装, 策略开发/运行/回测, 模拟/实盘交易, 实时行情/历史行情等功能全部直接到位

免费开源

天勤量化免费版的开发包在 Github 完全开放,可以自由获取或修改, 也可以与其它 python 包组合使用.

天勤量化免费版

免费
  • 实盘免费,好用可靠的交易系统
免费

专业版试用

¥ 0
/15天
  • 申请即可享受专业版全部功能15天试用!
立刻试用

专业版月付/年付

¥988
¥ 488
/月
  • 股票数据,历史回测,数据下载不限量!
  • 年费原价9988元/年,限时优惠4988元/年
限时促销

                                                                                 点击注册/登录信易账户,了解更多关于天勤量化专业版内容!

天勤提供当前所有可交易合约从上市开始的全部Tick数据和K线数据

天勤支持数十家期货公司的实盘账号,您可以通过这些账号进行实盘交易

天勤提供模拟交易账号, 用于测试您的交易策略

可以指定历史上任一天, 整个软件, 行情数据和策略程序都回到那天运行

无须安装其它任何软件包, 即可在天勤中开发策略程序

天勤为每个策略提供一个专属行情图. 策略程序可以通过Python代码在图上绘制标记

所有策略程序可以直接执行回测, 包括K线回测和Tick回测, 回测过程中实时生成回测报告

提供VsCode插件,直接在VsCode中打开K线图,运行策略和回测

天勤提供一套完整的技术指标库, 以Python写成, 可以在策略程序中使用, 也可以自行修改

天勤包含了数个套利策略的完整代码, 您可以直接使用它们, 也可以按自己的需求改进

天勤包含了一个完整的网格交易策略的完整代码, 您可以使用或修改它

天勤中除完整策略外, 也支持人机混合的算法交易程序, 例如自动迁仓, 大单分拆等

代码示例

from tqsdk import TqApi

# 创建API实例 
api = TqApi()
# 获得上期所 cu2001 的行情引用,当行情有变化时 quote 中的字段会对应更新
quote = api.get_quote("SHFE.cu2001")

while True:
    # 调用 wait_update 等待业务信息发生变化,例如: 行情发生变化, 委托单状态变化, 发生成交等等
    api.wait_update()
    # 每当业务信息有变化时就输出 cu2001 的最新行情时间和最新价
    # 注意:其他合约的行情的更新也会触发业务信息变化,因此这里可能会将同一笔行情输出多次
    print(quote.datetime, quote.last_price)
from tqsdk import TqApi
import datetime

api = TqApi()
# 获得cu2001 tick序列的引用
ticks = api.get_tick_serial("SHFE.cu2001")
# 获得cu2001 10秒K线的引用
klines = api.get_kline_serial("SHFE.cu2001", 10)

while True:
    api.wait_update()
    # 判断整个tick序列是否有变化
    if api.is_changing(ticks):
        # ticks.iloc[-1]返回序列中最后一个tick
        print("tick变化", ticks.iloc[-1])
    # 判断最后一根K线的时间是否有变化,如果发生变化则表示新产生了一根K线
    if api.is_changing(klines.iloc[-1], "datetime"):
        # datetime: 自unix epoch(1970-01-01 00:00:00 GMT)以来的纳秒数
        print("新K线", datetime.datetime.fromtimestamp(klines.iloc[-1]["datetime"]/1e9))
    # 判断最后一根K线的收盘价是否有变化
    if api.is_changing(klines.iloc[-1], "close"):
        # klines.close返回收盘价序列
        print("K线变化", datetime.datetime.fromtimestamp(klines.iloc[-1]["datetime"]/1e9), klines.close.iloc[-1])

from tqsdk import TqApi

api = TqApi()
# 获得 m2005 的持仓引用,当持仓有变化时 position 中的字段会对应更新
position = api.get_position("DCE.m2005")
# 获得资金账户引用,当账户有变化时 account 中的字段会对应更新
account = api.get_account()
# 下单并返回委托单的引用,当该委托单有变化时 order 中的字段会对应更新
order = api.insert_order(symbol="DCE.m2005", direction="BUY", offset="OPEN", volume=5, limit_price=2900)

while True:
    api.wait_update()
    if api.is_changing(order, ["status", "volume_orign", "volume_left"]):
        print("单状态: %s, 已成交: %d 手" % (order.status, order.volume_orign - order.volume_left))
    if api.is_changing(position, "volume_long_today"):
        print("今多头: %d 手" % (position.volume_long_today))
    if api.is_changing(account, "available"):
        print("可用资金: %.2f" % (account.available))
from tqsdk import TqApi, TargetPosTask

'''
价差回归
当近月-远月的价差大于200时做空近月,做多远月
当价差小于150时平仓
'''
api = TqApi()
quote_near = api.get_quote("SHFE.rb1810")
quote_deferred = api.get_quote("SHFE.rb1901")
# 创建 rb1810 的目标持仓 task,该 task 负责调整 rb1810 的仓位到指定的目标仓位
target_pos_near = TargetPosTask(api, "SHFE.rb1810")
# 创建 rb1901 的目标持仓 task,该 task 负责调整 rb1901 的仓位到指定的目标仓位
target_pos_deferred = TargetPosTask(api, "SHFE.rb1901")

while True:
    api.wait_update()
    if api.is_changing(quote_near) or api.is_changing(quote_deferred):
        spread = quote_near.last_price - quote_deferred.last_price
        print("当前价差:", spread)
        if spread > 200:
            print("目标持仓: 空近月,多远月")
            # 设置目标持仓为正数表示多头,负数表示空头,0表示空仓
            target_pos_near.set_target_volume(-1)
            target_pos_deferred.set_target_volume(1)
        elif spread < 150:
            print("目标持仓: 空仓")
            target_pos_near.set_target_volume(0)
            target_pos_deferred.set_target_volume(0)

我自己也封装过CTP分布式接口,感觉天勤的API接口,才是真正理解交易的开发商做出来的软件,领先免费开源软件两个段位,领先收费商用软件一个段位。

山外看山天勤用户

这是我见过的最好的API,比****,****等好很多,最主要就是数据不需要自己收集。

大漠孤烟天勤用户

天勤的文档是我看过的,最详细的。

lll天勤用户

学习和支持

要学习天勤的使用或寻求支持,请访问天勤学习和支持页面