【期货量化入门】Python获取期货实时行情(TqSdk完整代码)

一、前言

在期货量化交易中,获取实时行情数据是最基础也是最重要的一步。无论你是想开发自动化交易策略,还是仅仅想实时监控某个品种的价格变化,都需要先解决"如何获取行情"这个问题。

本文将介绍如何使用**天勤量化(TqSdk)**这个Python库,用不到10行代码获取期货实时行情数据。

二、TqSdk 简介

TqSdk 是由信易科技开源的Python量化交易库,具有以下特点:

  • 免费使用:基础功能完全免费
  • 数据齐全:支持所有期货品种的实时行情和历史数据
  • 上手简单:几行代码就能获取数据
  • 无需搭建数据库:数据全在内存中,无访问延迟

三、环境准备

3.1 安装 TqSdk

打开命令行,执行以下命令安装:

bash 复制代码
pip install tqsdk -U

如果下载速度慢,可以使用国内镜像源:

bash 复制代码
pip install tqsdk -U -i https://pypi.tuna.tsinghua.edu.cn/simple

3.2 注册快期账户

使用TqSdk需要先注册一个快期账户(免费),注册地址:

https://account.shinnytech.com/

注册完成后,记住你的用户名密码,后面代码中会用到。

四、获取实时行情(完整代码)

4.1 最简示例

下面这段代码可以获取沪镍(ni)合约的实时行情:

python 复制代码
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
功能:获取期货实时行情
说明:本代码仅供学习参考
"""

from tqsdk import TqApi, TqAuth

# 创建API实例,填入你的快期账户
api = TqApi(auth=TqAuth("你的快期账户", "你的密码"))

# 获取上期所沪镍2501合约的行情
quote = api.get_quote("SHFE.ni2501")

# 打印最新价格和成交量
print(f"合约: SHFE.ni2501")
print(f"最新价: {quote.last_price}")
print(f"成交量: {quote.volume}")
print(f"行情时间: {quote.datetime}")

# 关闭API,释放资源
api.close()

4.2 代码解析

代码 说明
from tqsdk import TqApi, TqAuth 导入TqSdk模块
TqApi(auth=TqAuth(...)) 创建API实例并登录
api.get_quote("SHFE.ni2501") 订阅沪镍2501合约行情
quote.last_price 获取最新价
quote.volume 获取成交量
api.close() 关闭连接

4.3 合约代码格式

TqSdk的合约代码格式为:交易所代码.品种代码+合约月份

常用交易所代码:

交易所 代码 示例品种
上期所 SHFE 铜(cu)、镍(ni)、螺纹(rb)
大商所 DCE 豆粕(m)、铁矿(i)、焦炭(j)
郑商所 CZCE PTA(TA)、甲醇(MA)、白糖(SR)
中金所 CFFEX 股指(IF/IC/IM)、国债(T)
上期能源 INE 原油(sc)、低硫燃油(lu)

示例:

  • SHFE.rb2501 = 上期所螺纹钢2501合约
  • DCE.m2505 = 大商所豆粕2505合约
  • CFFEX.IF2501 = 中金所沪深300股指期货2501合约

五、实时监控行情(进阶)

如果你想持续监控行情变化,可以使用 wait_update() 函数:

python 复制代码
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
功能:实时监控期货行情
说明:程序会持续运行,按Ctrl+C停止
"""

from tqsdk import TqApi, TqAuth

api = TqApi(auth=TqAuth("你的快期账户", "你的密码"))

# 订阅螺纹钢2501合约
quote = api.get_quote("SHFE.rb2501")

print("开始监控螺纹钢行情,按Ctrl+C停止...")
print("-" * 50)

while True:
    # 等待行情更新
    api.wait_update()
    
    # 打印最新行情
    print(f"时间: {quote.datetime} | 最新价: {quote.last_price} | 涨跌: {quote.last_price - quote.pre_settlement}")

运行效果:

复制代码
开始监控螺纹钢行情,按Ctrl+C停止...
--------------------------------------------------
时间: 2025-01-15 10:30:15 | 最新价: 3350.0 | 涨跌: 25.0
时间: 2025-01-15 10:30:16 | 最新价: 3351.0 | 涨跌: 26.0
时间: 2025-01-15 10:30:17 | 最新价: 3349.0 | 涨跌: 24.0
...

六、行情字段说明

quote 对象包含丰富的行情数据,常用字段如下:

字段 说明
last_price 最新价
bid_price1 买一价
ask_price1 卖一价
bid_volume1 买一量
ask_volume1 卖一量
volume 成交量
amount 成交额
open_interest 持仓量
highest 当日最高价
lowest 当日最低价
open 开盘价
pre_close 昨收盘价
pre_settlement 昨结算价
upper_limit 涨停价
lower_limit 跌停价
datetime 行情时间

七、总结

本文介绍了如何使用TqSdk获取期货实时行情,要点回顾:

  1. 安装:pip install tqsdk
  2. 注册快期账户
  3. api.get_quote() 获取行情
  4. api.wait_update() 实时监控

TqSdk的优势在于简单易用,几行代码就能获取专业级的行情数据,非常适合量化交易入门学习。


免责声明:本文仅供学习交流使用,不构成任何投资建议。期货交易有风险,入市需谨慎。

更多资源

相关推荐
初心未改HD21 小时前
Go语言net/http与Web开发:构建高性能HTTP服务
开发语言·golang
如何原谅奋力过但无声1 天前
【灵神高频面试题合集01-03】相向双指针、滑动窗口
数据结构·python·算法·leetcode
叼烟扛炮1 天前
C++第一讲:C++ 入门基础
开发语言·c++·函数重载·引用·内联函数·nullptr
WHS-_-20221 天前
Rank-Revealing Bayesian Block-Term Tensor Completion With Graph Information
人工智能·python·机器学习
技术钱1 天前
Modal组件及使用技巧
python
Ulyanov1 天前
《现代 Python 桌面应用架构实战:PySide6 + QML 从入门到工程化》:QML 声明式语法与霓虹按钮 —— 当 Python 遇见现代美学
开发语言·python·ui·qml·系统仿真·雷达电子对抗仿真
Datakeji1 天前
维恩波特Vairnport商业逻辑
大数据·人工智能·区块链
弹不出的5h3ll1 天前
Ghost Bits:高位截断如何让 Java WAF 形同虚设
java·开发语言
zh路西法1 天前
【RDKX5多摄像头模型推理】USB带宽限制与ROS2话题零拷贝转发
linux·c++·python·深度学习
码界筑梦坊1 天前
113-基于Python的国际超市电商销售数据可视化分析系统
开发语言·python·信息可视化·毕业设计·fastapi