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


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

更多资源

相关推荐
疋瓞6 小时前
python和C++对比(1)_数据类型和数据结构
数据结构·c++·python
C语言小火车7 小时前
C++ 堆排序深度精讲:基于完全二叉树的选择排序进化,最坏情况 O(n log n) 的稳定王者
开发语言·c++·算法·排序算法·堆排序
北冥you鱼7 小时前
abigen 最佳实践:从入门到精通,高效生成 Go 语言合约绑定
开发语言·golang·区块链
ALex_zry7 小时前
C++26 std::complex 结构化绑定详解:auto [re, im] = c
c语言·开发语言·c++
如此这般英俊8 小时前
手搓Claude Code-第六章 subagent
数据结构·人工智能·python·语言模型·自然语言处理
她说..8 小时前
Java 默认值设置方式
java·开发语言·后端·springboot
元Y亨H8 小时前
Python - FastAPI 全方位介绍
python·fastapi
忧郁的紫菜9 小时前
基础实现:单篇 Markdown 转 Word
开发语言·c#·word
甜美的小天鹅9 小时前
Swifter C#之inline还是不inline,这是个问题
开发语言·c#
小短腿的代码世界9 小时前
Qt Bluetooth源码深度解析:从HCI协议到跨平台API的完整架构
开发语言·qt·架构