news 2026/3/2 12:34:10

【期货量化入门】查询期货合约信息(交易时间/保证金/手续费)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【期货量化入门】查询期货合约信息(交易时间/保证金/手续费)

一、前言

在期货量化交易中,除了获取行情数据,还需要了解合约的基本信息,包括交易时间、保证金、手续费、合约乘数等。这些信息对于策略开发、风险控制和资金管理都至关重要。

本文将介绍:

二、为什么选择天勤量化(TqSdk)

在众多期货量化工具中,**天勤量化(TqSdk)**是目前国内最受欢迎的开源期货量化框架之一。本文使用TqSdk获取数据,主要基于以下优势:

特点说明
完全免费开源免费,无需付费即可获取实时行情
数据全面支持国内所有期货交易所的实时行情和历史数据
上手简单几行Python代码即可获取数据,无需复杂配置
文档完善官方文档详细,示例代码丰富
社区活跃GitHub开源,问题响应及时

安装方法

pipinstalltqsdk

快期账户:使用TqSdk需要注册快期账户(免费),访问 https://www.shinnytech.com 注册。

三、合约信息概览

TqSdk的get_quote()函数返回的数据不仅包含实时行情,还包含合约的静态信息:

信息类别包含字段
基本信息合约代码、合约名称、交易所、品种代码
价格信息最新价、涨跌停、开盘收盘价
交易规则价格变动单位、合约乘数、最大下单量
成本信息保证金、手续费
时间信息交易时间、到期日期

四、查询合约信息

4.1 基础示例

#!/usr/bin/env python# -*- coding: utf-8 -*-""" 功能:查询期货合约的完整信息 说明:本代码仅供学习参考 """fromtqsdkimportTqApi,TqAuth api=TqApi(auth=TqAuth("快期账户","快期密码"))# 获取螺纹钢主力合约信息quote=api.get_quote("SHFE.rb2501")print("="*60)print("【合约基本信息】")print("="*60)print(f"合约代码:{quote.instrument_id}")print(f"合约名称:{quote.instrument_name}")print(f"交易所:{quote.exchange_id}")print(f"品种代码:{quote.product_id}")print(f"合约类型:{quote.ins_class}")print("\n【交易规则】")print("-"*60)print(f"价格变动单位:{quote.price_tick}元")print(f"合约乘数:{quote.volume_multiple}吨/手")print(f"最大限价单手数:{quote.max_limit_order_volume}")print("\n【成本信息】")print("-"*60)print(f"每手保证金:{quote.margin:.2f}元")print(f"每手手续费:{quote.commission:.2f}元")print("\n【价格信息】")print("-"*60)print(f"最新价:{quote.last_price}")print(f"涨停价:{quote.upper_limit}")print(f"跌停价:{quote.lower_limit}")api.close()

运行结果示例

============================================================ 【合约基本信息】 ============================================================ 合约代码: SHFE.rb2501 合约名称: 螺纹钢2501 交易所: SHFE 品种代码: rb 合约类型: FUTURE 【交易规则】 ------------------------------------------------------------ 价格变动单位: 1.0 元 合约乘数: 10.0 吨/手 最大限价单手数: 500 【成本信息】 ------------------------------------------------------------ 每手保证金: 3200.50 元 每手手续费: 3.51 元 【价格信息】 ------------------------------------------------------------ 最新价: 3205.0 涨停价: 3462.0 跌停价: 2948.0

4.2 完整字段说明

以下是get_quote()返回的主要字段:

合约基本信息
字段类型说明
instrument_idstr合约代码,如 SHFE.rb2501
instrument_namestr合约中文名,如 螺纹钢2501
exchange_idstr交易所代码,如 SHFE
product_idstr品种代码,如 rb
ins_classstr合约类型,FUTURE/OPTION等
expiredbool是否已到期下市
交易规则
字段类型说明
price_tickfloat价格变动最小单位
price_decsint价格小数位数
volume_multiplefloat合约乘数(每手数量)
max_limit_order_volumeint最大限价单手数
max_market_order_volumeint最大市价单手数
min_limit_order_volumeint最小限价单手数
成本信息
字段类型说明
marginfloat每手保证金(元)
commissionfloat每手手续费(元)
时间信息
字段类型说明
trading_timestr交易时间段(JSON格式)
expire_datetimefloat到期时间戳
delivery_yearint交割年份
delivery_monthint交割月份
expire_rest_daysint距到期日剩余天数

五、获取交易时间

交易时间信息存储在trading_time字段,格式为JSON字符串:

fromtqsdkimportTqApi,TqAuthimportjson api=TqApi(auth=TqAuth("快期账户","快期密码"))quote=api.get_quote("SHFE.rb2501")# 解析交易时间trading_time=json.loads(quote.trading_time)print("【螺纹钢交易时间】")print("-"*40)print("日盘交易时段:")forperiodintrading_time.get('day',[]):print(f"{period[0]}-{period[1]}")print("\n夜盘交易时段:")forperiodintrading_time.get('night',[]):print(f"{period[0]}-{period[1]}")api.close()

运行结果

【螺纹钢交易时间】 ---------------------------------------- 日盘交易时段: 09:00:00 - 10:15:00 10:30:00 - 11:30:00 13:30:00 - 15:00:00 夜盘交易时段: 21:00:00 - 23:00:00

5.1 不同品种的交易时间

不同品种的交易时间有所不同:

品种类型夜盘时间示例品种
无夜盘股指期货、国债期货
夜盘到23:0021:00-23:00螺纹钢、热卷
夜盘到23:3021:00-23:30白糖、棉花
夜盘到01:0021:00-01:00铜、铝、锌
夜盘到02:3021:00-02:30黄金、白银、原油

六、计算交易成本

利用合约信息可以计算具体的交易成本:

fromtqsdkimportTqApi,TqAuth api=TqApi(auth=TqAuth("快期账户","快期密码"))quote=api.get_quote("SHFE.rb2501")# 计算交易成本trade_lots=10# 交易10手# 保证金total_margin=quote.margin*trade_lots# 手续费(开仓)open_commission=quote.commission*trade_lots# 合约价值contract_value=quote.last_price*quote.volume_multiple*trade_lotsprint(f"【交易{trade_lots}手螺纹钢的成本】")print("-"*40)print(f"最新价:{quote.last_price}元/吨")print(f"合约乘数:{quote.volume_multiple}吨/手")print(f"合约总价值:{contract_value:,.0f}元")print(f"所需保证金:{total_margin:,.2f}元")print(f"开仓手续费:{open_commission:.2f}元")print(f"保证金比例:{total_margin/contract_value*100:.2f}%")api.close()

运行结果

【交易 10 手螺纹钢的成本】 ---------------------------------------- 最新价: 3205.0 元/吨 合约乘数: 10.0 吨/手 合约总价值: 320,500 元 所需保证金: 32,005.00 元 开仓手续费: 35.10 元 保证金比例: 9.99%

七、批量查询多个品种

fromtqsdkimportTqApi,TqAuth api=TqApi(auth=TqAuth("快期账户","快期密码"))# 要查询的合约列表symbols=["SHFE.rb2501",# 螺纹钢"DCE.i2501",# 铁矿石"SHFE.au2502",# 黄金"INE.sc2502",# 原油"CFFEX.IF2501",# 沪深300股指]print(f"{'合约':<15}{'乘数':<8}{'保证金':<12}{'手续费':<10}{'最小变动':<10}")print("="*60)forsymbolinsymbols:q=api.get_quote(symbol)print(f"{q.instrument_name:<12}{q.volume_multiple:<8.0f}"f"{q.margin:<12.2f}{q.commission:<10.2f}{q.price_tick:<10}")api.close()

运行结果

合约 乘数 保证金 手续费 最小变动 ============================================================ 螺纹钢2501 10 3200.50 3.51 1.0 铁矿石2501 100 8500.00 4.20 0.5 黄金2502 1000 52000.00 10.00 0.02 原油2502 1000 65000.00 20.00 0.1 沪深300股指2501 300 158000.00 23.00 0.2

八、实用函数封装

将合约信息查询封装成实用函数:

fromtqsdkimportTqApi,TqAuthimportjsondefget_contract_info(api,symbol):""" 获取合约详细信息 返回格式化的字典 """quote=api.get_quote(symbol)# 解析交易时间try:trading_time=json.loads(quote.trading_time)except:trading_time={}return{"合约代码":quote.instrument_id,"合约名称":quote.instrument_name,"交易所":quote.exchange_id,"品种代码":quote.product_id,"合约乘数":quote.volume_multiple,"最小变动":quote.price_tick,"每手保证金":round(quote.margin,2),"每手手续费":round(quote.commission,2),"最新价":quote.last_price,"涨停价":quote.upper_limit,"跌停价":quote.lower_limit,"日盘时间":trading_time.get('day',[]),"夜盘时间":trading_time.get('night',[]),"到期天数":quote.expire_rest_days,}defcalculate_trade_cost(api,symbol,lots):""" 计算交易成本 """quote=api.get_quote(symbol)return{"交易手数":lots,"合约价值":quote.last_price*quote.volume_multiple*lots,"所需保证金":quote.margin*lots,"开仓手续费":quote.commission*lots,"平仓手续费":quote.commission*lots,# 平今仓可能不同"总手续费":quote.commission*lots*2,}# 使用示例if__name__=="__main__":api=TqApi(auth=TqAuth("快期账户","快期密码"))# 获取合约信息info=get_contract_info(api,"SHFE.rb2501")print("【合约信息】")forkey,valueininfo.items():print(f"{key}:{value}")print("\n【交易成本计算(10手)】")cost=calculate_trade_cost(api,"SHFE.rb2501",10)forkey,valueincost.items():ifisinstance(value,float):print(f"{key}:{value:,.2f}元")else:print(f"{key}:{value}")api.close()

九、常见问题

Q1: 保证金和手续费是固定的吗?

不是。保证金和手续费会根据以下因素变化:

Q2: 如何获取期权合约的信息?

期权合约有额外的字段:

字段说明
underlying_symbol标的合约
strike_price行权价
option_classCALL看涨/PUT看跌
exercise_typeA美式/E欧式

Q3: expire_rest_days 有什么用?

用于判断合约是否接近到期,常用于:

十、总结

本文介绍了使用TqSdk查询期货合约信息的方法:

要点内容
获取信息api.get_quote(symbol)
保证金quote.margin
手续费quote.commission
交易时间quote.trading_time
合约乘数quote.volume_multiple

下一步学习


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

更多资源

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/24 13:57:51

游戏NPC对话系统新方案:使用EmotiVoice生成动态语音

游戏NPC对话系统新方案&#xff1a;使用EmotiVoice生成动态语音 在现代游戏设计中&#xff0c;玩家早已不满足于“点击对话框→播放固定语音”的交互模式。尤其是在《艾尔登法环》《赛博朋克2077》这类高自由度作品的影响下&#xff0c;人们对NPC的期待已经从“会说话的角色”转…

作者头像 李华
网站建设 2026/2/26 1:56:26

5分钟掌握Apache DolphinScheduler:零基础构建企业级数据调度平台

5分钟掌握Apache DolphinScheduler&#xff1a;零基础构建企业级数据调度平台 【免费下载链接】dolphinscheduler 项目地址: https://gitcode.com/gh_mirrors/ea/EasyScheduler Apache DolphinScheduler是一款专为现代数据工程设计的分布式可视化工作流调度系统&#x…

作者头像 李华
网站建设 2026/2/11 3:25:35

EmotiVoice能否用于音乐歌词合成?节奏控制能力测试

EmotiVoice能否用于音乐歌词合成&#xff1f;节奏控制能力测试 在AI语音技术飞速发展的今天&#xff0c;我们已经能轻松生成自然流畅、富有情感的中文语音。像EmotiVoice这样的开源TTS系统&#xff0c;凭借其出色的多情感表达和零样本声音克隆能力&#xff0c;正在被广泛应用于…

作者头像 李华
网站建设 2026/3/1 11:18:57

当“想学AI”遇到“天价培训”,200元起的CAIE认证是解药吗?

1. AI认证市场的规模与结构 近年来&#xff0c;随着人工智能技术应用的深化&#xff0c;与之相关的技能认证市场迅速发展。据第三方市场分析机构统计&#xff0c;全球范围内可查的AI相关认证与专项课程已超过200种&#xff0c;其定价范围广泛&#xff0c;从数百元的基础技能认证…

作者头像 李华
网站建设 2026/2/24 1:36:43

Docker容器化部署Claude AI应用实践指南

Docker容器化部署Claude AI应用实践指南 【免费下载链接】anthropic-quickstarts A collection of projects designed to help developers quickly get started with building deployable applications using the Anthropic API 项目地址: https://gitcode.com/GitHub_Trendi…

作者头像 李华