Skip to content

期货数据

中国期货市场数据获取指南。

合约列表

import finvista as fv

# 获取所有期货合约
df = fv.list_cn_futures_symbols()

# 按交易所筛选
df = fv.list_cn_futures_symbols(exchange="CFFEX")  # 中金所
df = fv.list_cn_futures_symbols(exchange="SHFE")   # 上期所
df = fv.list_cn_futures_symbols(exchange="DCE")    # 大商所
df = fv.list_cn_futures_symbols(exchange="CZCE")   # 郑商所
df = fv.list_cn_futures_symbols(exchange="INE")    # 上期能源

交易所说明

代码 名称 主要品种
CFFEX 中国金融期货交易所 股指期货、国债期货
SHFE 上海期货交易所 金属、能源
DCE 大连商品交易所 农产品、化工
CZCE 郑州商品交易所 农产品、化工
INE 上海国际能源交易中心 原油、20号胶

日线数据

# 获取股指期货日线
df = fv.get_cn_futures_daily("IF2401", start_date="2024-01-01")

# 获取商品期货
df = fv.get_cn_futures_daily("RB2401", start_date="2024-01-01")

参数说明

参数 类型 必需 说明
symbol str 合约代码(如 "IF2401")
start_date str 开始日期
end_date str 结束日期

返回字段

字段 说明
date 交易日期
open 开盘价
high 最高价
low 最低价
close 收盘价
volume 成交量
amount 成交额
open_interest 持仓量
settle 结算价

持仓排名

# 获取股指期货持仓排名
df = fv.get_cn_futures_positions("IF")

# 获取指定日期
df = fv.get_cn_futures_positions("IF", date="2024-01-15")

返回字段

字段 说明
rank 排名
broker 期货公司
long_position 多单持仓
long_change 多单增减
short_position 空单持仓
short_change 空单增减

使用示例

主力合约分析

# 获取 IF 当月合约
df = fv.get_cn_futures_daily("IF2401", start_date="2024-01-01")

# 计算基差
index = fv.get_cn_index_daily("000300", start_date="2024-01-01")
import pandas as pd
merged = pd.merge(df, index, on='date', suffixes=('_fut', '_idx'))
merged['basis'] = merged['close_fut'] - merged['close_idx']

持仓分析

df = fv.get_cn_futures_positions("IF")

# 计算多空比
total_long = df['long_position'].sum()
total_short = df['short_position'].sum()
ratio = total_long / total_short
print(f"多空比: {ratio:.2f}")

# 前 5 大席位
top5 = df.head(5)
print(top5[['broker', 'long_position', 'short_position']])

品种筛选

# 获取所有合约
all_contracts = fv.list_cn_futures_symbols()

# 筛选股指期货
index_futures = all_contracts[all_contracts['symbol'].str.startswith(('IF', 'IH', 'IC', 'IM'))]

# 筛选螺纹钢
rebar = all_contracts[all_contracts['symbol'].str.startswith('RB')]

跨期价差

# 获取近月和远月合约
near = fv.get_cn_futures_daily("IF2401", start_date="2024-01-01")
far = fv.get_cn_futures_daily("IF2403", start_date="2024-01-01")

# 计算价差
import pandas as pd
merged = pd.merge(near, far, on='date', suffixes=('_near', '_far'))
merged['spread'] = merged['close_near'] - merged['close_far']

主要品种代码

股指期货

代码 名称
IF 沪深300股指期货
IH 上证50股指期货
IC 中证500股指期货
IM 中证1000股指期货

商品期货

代码 名称 交易所
AU 黄金 SHFE
AG 白银 SHFE
CU SHFE
RB 螺纹钢 SHFE
SC 原油 INE
I 铁矿石 DCE
M 豆粕 DCE
CF 棉花 CZCE