企业微信

聚宽平台实时数据接口概述

聚宽量化平台为股票与期货交易者开放了实时数据获取通道。实时行情对于日内策略、套利模型以及风险监控具有决定性作用。聚宽通过get_current_dataget_ticks等函数,配合订阅机制,向策略推送最新价格、成交量与盘口信息。

股票与期货的实时数据在字段上存在差异。股票实时数据包括最新价、买卖五档、涨跌幅、换手率等。期货实时数据则包含最新价、买一卖一价、持仓量、成交量、结算价与涨停跌停板价格。使用前必须确认账户权限,部分实时数据需要额外订阅。

股票实时数据获取方法

在聚宽研究环境或策略回测中,通过get_current_data()可以获取当前时间切片下所有股票的实时快照。该函数返回一个字典,键为股票代码,值为包含last_pricehigh_limitlow_limitpaused等属性的对象。调用时无需额外参数,系统自动使用最新行情。

聚宽平台如何实现股票期货实时交易数据获取


def initialize(context):

    g.security = '000001.XSHE'

    run_daily(handle, time='every_bar')

def handle(context):

    current_data = get_current_data()

    stock = current_data[g.security]

    print(stock.last_price, stock.high_limit, stock.low_limit)

上述代码在每个bar触发时打印平安银行的最新价与涨跌停价。聚宽实时数据更新频率取决于订阅级别。默认情况下,分钟级策略获取的是分钟收盘价,而Tick级策略需要开通实时Tick权限。

对于高频股票策略,可以使用get_ticks(security, end_dt, start_dt, count)获取历史Tick数据,但实时Tick推送依赖subscribe方法。订阅后,策略会在每个Tick到达时触发on_tick回调。


def initialize(context):

    subscribe('000001.XSHE', 'tick')

def on_tick(context, tick):

    print(tick.time, tick.last_price, tick.volume)

注意:股票实时数据受交易所行情授权限制,聚宽模拟环境与实盘环境的数据延迟不同。实盘交易需通过券商通道,实时性取决于券商行情源。

期货实时数据获取方法

期货实时数据在聚宽中通过get_current_data同样可以获取,但期货代码格式为品种代码+合约月份,如IF2009.CCFX。期货实时字段包括last_pricebid_priceask_pricevolumeopen_interestsettlementhigh_limitlow_limit等。


def initialize(context):

    g.future = 'IF2009.CCFX'

    run_daily(handle, time='every_bar')

def handle(context):

    cd = get_current_data()

    f = cd[g.future]

    print(f.last_price, f.bid_price, f.ask_price, f.open_interest)

期货交易存在夜盘与日盘的区别,实时数据在夜盘时段同样推送。聚宽支持期货主力连续合约代码,如IF9999.CCFX,方便策略跟踪主力。

对于期货Tick数据,订阅方式与股票相同。


def initialize(context):

    subscribe('IF2009.CCFX', 'tick')

def on_tick(context, tick):

    print(tick.last_price, tick.bid_price, tick.ask_price, tick.open_interest)

期货实时数据中的open_interest变化对判断资金流向至关重要。持仓量增加伴随价格上涨,通常意味着多头增仓。持仓量减少伴随价格下跌,意味着多头离场。

实时数据在股票与期货策略中的应用

股票实时数据常用于日内择时。通过监控last_pricehigh_limit的关系,可以判断股票是否接近涨停。接近涨停时买入,封板后卖出,属于打板策略。期货实时数据用于跨期套利。当近月合约与远月合约价差偏离正常区间,同时实时买卖价差足够覆盖成本,即可开仓。

股票与期货实时数据结合使用可以构建对冲策略。买入股票组合,卖出对应股指期货,实时监控两者Beta暴露。当Beta偏离目标值时,调整期货仓位。

所有实时策略必须考虑数据延迟与滑点。聚宽回测环境使用历史Tick数据模拟实时行情,与真实交易存在差异。实盘交易前,使用聚宽模拟交易功能验证策略在实时数据流下的表现。

实时数据权限与常见问题

聚宽实时数据权限分为免费与付费两种。免费用户获取的实时数据有15分钟延迟,且不支持Tick级推送。付费用户可以获得Level-1或Level-2实时行情。期货实时数据需要单独开通期货行情权限。

常见问题包括:订阅后未触发回调,检查subscribe是否在initialize中调用,且标的代码是否正确。获取的last_price为0,通常是因为该股票停牌或期货合约非交易时段。实时数据字段缺失,检查聚宽文档中对应品种的字段列表。

股票与期货实时数据在集合竞价阶段的表现不同。股票集合竞价期间,last_price为虚拟匹配价。期货集合竞价期间,last_price为开盘价预估。策略应避免在集合竞价阶段使用实时数据做交易决策。

实盘部署中的实时数据管理

将聚宽策略部署到实盘时,实时数据获取方式改变。聚宽提供jqdatasdk本地库,可以在本地Python环境获取实时行情。


from jqdatasdk import *

auth('用户名', '密码')

df = get_price('000001.XSHE', end_date=now(), frequency='minute', count=1)

print(df)

本地获取实时数据需要保持网络连接,且受限于聚宽服务器推送频率。对于期货高频策略,建议使用CTP接口直接连接期货公司,绕过聚宽中间层。

股票实时数据在实盘中还需考虑交易规费与印花税。期货实时数据需考虑保证金变化。实时监控账户可用资金,避免因行情剧烈波动导致强平。

聚宽实时数据接口为股票与期货量化交易提供了基础。理解数据字段、订阅机制与权限限制,是构建稳定盈利策略的前提。