企业微信

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股票行情数据API怎么用于量化交易获取实时行情

实时行情订阅

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_HQindicators参数可指定所需指标,减少数据传输量。常用字段:

  • open:开盘价

  • high:最高价

  • low:最低价

  • close:收盘价

  • volume:成交量(股)

  • amount:成交额(元)

  • changeRatio:涨跌幅

  • turnoverRatio:换手率

  • pe:市盈率

  • pb:市净率

对于分钟级K线,设置period参数为1min5min15min30min60min。日线用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_HQindicators参数只取所需字段;批量获取时合并代码;订阅推送代替轮询。对于历史数据,一次性获取较长区间。


# 错误示例:代码缺少后缀

# 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调用简单,支持股票、期货、期权。获取数据后存入数据库,用于策略回测和实盘。注意权限、频率限制和代码格式。优化数据请求,提升策略效率。