分享

迅投QMT行情获取的代码分享

 交易接口 2022-08-12 发布于广东

QMT的实时行情获取主要分为tick分笔数据和kline分钟数据,其中全推tick行情仅支持股票,其他tick/kline行情则需要通过订阅的方式获得。

全推方式获得tick行情

首先订阅全推行情:

a_index_etf = get_a_index_etf()
subscribe_id = xtdata.subscribe_whole_quote(a_index_etf)


然后实时查询,整理成dataframe:

data = xtdata.get_full_tick(a_index_etf)
df = pd.DataFrame(data)


订阅方式获得tick/kline行情

首先订阅指定ticker,如有多个则依次订阅, count参数指定缓存数据量大小:

contract = get_main_contract()
subscribe_ids = []
for ticker in contract:
    subscribe_ids.append(xtdata.subscribe_quote(ticker, 'tick', count=10))
    subscribe_ids.append(xtdata.subscribe_quote(ticker, '1m', count=10))


查询tick行情:

tick_data = xtdata.get_market_data(stock_list=['IC00.IF', 'IM00.IF', 'ag00.SF'], period='tick', count=5)
print(pd.DataFrame(tick_data['IC00.IF']))
可以看到,tick行情时间戳精确到毫秒,字段同全推行情。

查询Kline行情:

kline_data =  xtdata.get_market_data(stock_list=['90001156.SZO'], period='1m', count=10)
df = pd.concat([kline_data[i].T for i in ['time', 'open', 'high', 'low', 'close', 'volume', 'amount', 'settelementPrice', 'openInterest']], axis=1)
df.columns = ['time', 'open', 'high', 'low', 'close', 'volume', 'amount', 'settelementPrice', 'openInterest']
df = df[df.volume !=0]
df['time'] = df['time'].apply(lambda x: datetime.datetime.fromtimestamp(x / 1000.0))

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多