一、前言
在期货量化交易中,获取实时行情数据是最基础也是最重要的一步。无论你是想开发自动化交易策略,还是仅仅想实时监控某个品种的价格变化,都需要先解决"如何获取行情"这个问题。
本文将介绍如何使用**天勤量化(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需要先注册一个快期账户(免费),注册地址:
注册完成后,记住你的用户名 和密码,后面代码中会用到。
四、获取实时行情(完整代码)
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获取期货实时行情,要点回顾:
- 安装:
pip install tqsdk - 注册快期账户
- 用
api.get_quote()获取行情 - 用
api.wait_update()实时监控
TqSdk的优势在于简单易用,几行代码就能获取专业级的行情数据,非常适合量化交易入门学习。
免责声明:本文仅供学习交流使用,不构成任何投资建议。期货交易有风险,入市需谨慎。
更多资源: