iFind股票行情数据API怎么用于量化交易获取实时行情
摘要:
iFind行情API提供实时股票期货数据,支持Python调用。量化交易者可通过它获取高频tick、K线及盘口,构建策略。

iFind行情API基础调用方式
iFind提供多语言SDK,Python版本最常用。安装后通过iFinDPy模块登录,使用THS_HQ函数获取行情。登录需要账号密码,部分数据需要权限。
from iFinDPy import *
# 登录
thsLogin('username', 'password')
# 获取股票实时行情
data = THS_HQ('600519.SH', 'open,high,low,close,volume', '', '2024-01-01', '2024-01-31')
print(data)
返回字段包括时间、开盘价、最高价、最低价、收盘价、成交量、成交额等。期货合约代码格式为RB2405.SHF,上期所螺纹钢。

实时行情订阅
iFind支持推送订阅,通过THS_Subscribe注册回调函数,获取tick级数据。
def on_tick(data):
print(data['code'], data['price'], data['volume'])
THS_Subscribe(['600519.SH', 'RB2405.SHF'], 'tick', on_tick)
回调函数接收字典,包含最新价、买卖盘、成交量等。订阅前需确保网络稳定,避免丢包。
股票行情数据字段说明
iFind股票行情API返回字段丰富。THS_HQ的indicators参数可指定所需指标,减少数据传输量。常用字段:
open:开盘价high:最高价low:最低价close:收盘价volume:成交量(股)amount:成交额(元)changeRatio:涨跌幅turnoverRatio:换手率pe:市盈率pb:市净率
对于分钟级K线,设置period参数为1min、5min、15min、30min、60min。日线用1d。期货行情字段类似,增加openInterest持仓量、settle结算价。
# 获取5分钟K线
df = THS_HQ('600519.SH', 'open,high,low,close,volume', '5min', '2024-01-01 09:30:00', '2024-01-01 15:00:00')
返回DataFrame,索引为时间戳。注意期货有夜盘,时间范围需覆盖。
期货行情数据获取与处理
iFind期货行情API覆盖国内四大交易所及外盘。合约代码规则:
上期所:
RB2405.SHF大商所:
M2405.DCE郑商所:
TA405.CZC中金所:
IF2403.CFE
获取期货实时行情:
# 获取螺纹钢主力合约
futures_data = THS_HQ('RB2405.SHF', 'open,high,low,close,volume,openInterest', '', '2024-01-01', '2024-01-31')
主力合约需通过THS_MainContract获取,或手动拼接。期货数据存在换月跳空,回测时需复权。iFind提供复权因子,通过THS_AdjFactor获取。
# 获取复权因子
adj = THS_AdjFactor('RB2405.SHF', '2024-01-01', '2024-01-31')
处理tick数据时注意成交量单位,期货为手,股票为股。计算持仓量变化可判断资金流向。
量化策略中的数据应用
量化交易依赖高质量行情数据。iFind API可构建数据管道,定时拉取行情存入数据库。使用THS_HQ批量获取多只股票,减少请求次数。
codes = ['600519.SH', '000001.SZ', '300750.SZ']
data = THS_HQ(codes, 'close,volume', '', '2024-01-01', '2024-01-31')
返回多级索引DataFrame,便于因子计算。对于高频策略,使用tick数据计算订单簿不平衡、成交量分布。iFind提供Level-2行情,包含十档盘口。
# 获取十档盘口
l2 = THS_HQ('600519.SH', 'bid1,bid2,bid3,bid4,bid5,ask1,ask2,ask3,ask4,ask5', 'tick', '', '')
盘口数据用于计算买卖压力。注意Level-2需要额外权限。
数据存储与回测
获取的行情数据存入本地数据库,如SQLite或ClickHouse。回测时从数据库读取,避免重复请求。iFind API有频率限制,批量获取时加入延时。
import time
for code in codes:
df = THS_HQ(code, 'close', '1d', '2024-01-01', '2024-01-31')
df.to_sql('daily', conn, if_exists='append')
time.sleep(0.1)
回测框架如Backtrader、vn.py可接入iFind数据。vn.py有iFind网关,直接订阅行情。
常见错误与优化
调用iFind API常见错误:登录失败、权限不足、代码格式错误。检查账号是否开通对应数据权限。代码格式:股票600519.SH,期货RB2405.SHF。
优化建议:使用THS_HQ的indicators参数只取所需字段;批量获取时合并代码;订阅推送代替轮询。对于历史数据,一次性获取较长区间。
# 错误示例:代码缺少后缀
# THS_HQ('600519', ...) # 报错
# 正确
THS_HQ('600519.SH', ...)
网络不稳定时增加重试机制。使用try-except捕获异常,记录日志。
for _ in range(3):
try:
data = THS_HQ('600519.SH', 'close', '', '2024-01-01', '2024-01-31')
break
except Exception as e:
print(e)
time.sleep(1)
iFind API文档提供详细字段说明,量化交易者应熟悉常用字段。结合pandas进行数据清洗,计算技术指标。
iFind股票行情数据API为量化交易提供实时和历史数据。Python调用简单,支持股票、期货、期权。获取数据后存入数据库,用于策略回测和实盘。注意权限、频率限制和代码格式。优化数据请求,提升策略效率。
声明
转载声明:欢迎分享本文,转载请注明出处!
点击复制: