【期货量化入门】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的优势在于简单易用,几行代码就能获取专业级的行情数据,非常适合量化交易入门学习。


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

更多资源

相关推荐
深蓝电商API2 小时前
Scrapy信号机制:监控爬虫全生命周期
爬虫·python·scrapy
AIFQuant2 小时前
2026 全球外汇免费实时行情汇率数据 API 接口大全
开发语言·python·websocket·金融·restful
像风一样自由20202 小时前
MiroFish 踩坑记录与解决方案
python
f狐0狸x2 小时前
【C++修炼之路】C++string的用法
开发语言·c++·string
阿豪只会阿巴2 小时前
【多喝热水系列】从零开始的ROS2之旅——Day9 初识话题通信:基本命令
c++·笔记·python·ubuntu·ros2
稳稳C92 小时前
04|Langgraph | 从入门到实战 | 进阶篇 | 流式传输
python·ai·langchain·agent·langgraph
cjp5602 小时前
018.C#管道服务,本机两软件间通讯交互
开发语言·c#
WangYaolove13142 小时前
基于自适应svm电影评价倾向性分析(源码+文档)
python·django·毕业设计·源码
猫天意2 小时前
YOLOv11魔改高效涨点 | 注意力篇 | 坐标注意力CoordAttention:将位置信息硬核嵌入通道,精准捕获长程空间依赖,即插即用,涨点神器!!!
开发语言·人工智能·深度学习·神经网络·yolo·目标检测·低光照增强