QMT如何编写策略获取沪深指数数据?(附开通QMT全攻略)

获取指数代码列表

提示

为了获取指数合约列表,首先需要使用函数get_sector_list来获取需要查询的指数索引。具体的索引信息可以通过键入您感兴趣的索引名(例如:"沪深指数"或"上证指数")等获得。接下来,通过调用函数get_stock_list_in_sector并输入指定的索引名称,你就可以返回相应的指数合约列表。这部分合约列表包含了所有与特定指数相关的现有合约,这对于投资者在进行投资策略分析和决策时具有重要参考价值。

调用方法

# coding=utf-8
from xtquant import xtdata
# 获取板块列表
xtdata.get_sector_list()
# 根据板块列表找查询指数索引名称
xtdata.get_stock_list_in_sector(sector_name)

参数

字段 类型 说明
sector_name string 板块名称

返回

  • 列表,包含指定板块成分代码。
# coding=utf-8
from xtquant import xtdata
# 获取板块列表
ret_sector_list = xtdata.get_sector_list()
print(f'获取板块目录: {ret_sector_list}')
# 根据板块列表找查询指数索引名称
ret_sector_data = xtdata.get_stock_list_in_sector('沪深指数')
print(f'获取板块合约: {ret_sector_data}')

获取指数成份股权重

如果你的本地环境中缺少合约权重数据,那么可以先通过函数download_index_weight进行数据下载。下载后,再使用get_index_weight函数来取得相关指数下各个合约的权重信息。这两步操作能帮助你获得详尽而全面的权重数据,进一步增强你对投资环境的理解和掌握,帮助做出更明智的投资决策。

调用方法

# coding=utf-8
from xtquant import xtdata
# 下载权重相关信息
xtdata.download_index_weight()
# 获取权重相关信息
xtdata.get_index_weight(index_code)

参数

字段 类型 说明
index_code string 指数代码
  • index_code:字符串格式,指数代码,例如 000300.SH

返回

  • 字典, key为成分代码, value为权重
# coding=utf-8
from xtquant import xtdata
# 下载权重相关信息
xtdata.download_index_weight()
# 获取权重相关信息
ret_weight_data = xtdata.get_index_weight('000300.SH')
print(ret_weight_data)

获取指数行情数据

获取行情数据,最新行情需要数据订阅subscribe_quote。如果您需要获取历史数据,可以使用download_history_data函数下载相关数据,然后使用get_market_data_ex函数提取所需的信息。这样,使用者就能获得最新和详细的合约最新数据,有助于做出更精准的投资决策。

调用方法

# coding=utf-8
from xtquant import xtdata
# 订阅指定合约最新行情
xtdata.subscribe_quote(stock_code, period='', start_time='', end_time='', count=0, callback=None)
# 下载指定合约历史行情
xtdata.download_history_data(stock_code, period, start_time='', end_time='')
# 获取指定合约历史行情
xtdata.get_market_data_ex(field_list = [], stock_list = [], period = '', start_time = '', end_time = '', count = -1, dividend_type = 'none', fill_data = True)

参数

  • xtdata.subscribe_quote
字段 类型 说明
stock_code str 股票代码
start_time str 开始时间格式YYYYMMDD/YYYYMMDDhhmmss
end_time str 结束时间
count int 数量 -1全部/n: 从结束时间向前数n个
period str 周期 分笔"tick" 分钟线"1m"/"5m" 日线"1d"
  • xtdata.get_market_data_ex
参数名称 类型 描述
field_list list 表示所有字段。不同的数据周期,取值范围有所不同。
stock_list list 合约代码列表
period str 数据周期,默认是当前主图周期。可选值如下: 'tick' (分笔线), '1d' (日线), '1m' (1分钟线), '5m' (5分钟线), '15m' (15分钟线), 'l2quote' (Level2行情快照), 'l2quoteaux' (Level2行情快照补充), 'l2order' (Level2逐笔委托), 'l2transaction' (Level2逐笔成交),'l2transactioncount' (Level2大单统计), 'l2orderqueue' (Level2委买委卖队列)
start_time str 开始时间。为空时默认为最早时间。时间格式为'20201231'或'20201231093000'
end_time str 结束时间。为空时默认为最新时间。时间格式为'20201231'或'20201231235959'
count int 数据最大个数。-1表示不做个数限制
dividend_type str 复权方式,默认是当前主图复权方式。可选值包括: 'none' (不复权), 'front'(前复权), 'back' (后复权), 'front_ratio' (等比前复权), 'back_ratio' (等比后复权)
fill_data bool 停牌填充方式

返回值

  • period为1m 5m 1dK线周期时
    • 返回dict { field1 : value1, field2 : value2, ... }
    • value1, value2, ... :pd.DataFrame 数据集,index为stock_list,columns为time_list
    • 各字段对应的DataFrame维度相同、索引相同
  • period为tick分笔周期时
    • 返回dict { stock1 : value1, stock2 : value2, ... }
    • stock1, stock2, ... :合约代码
    • value1, value2, ... :np.ndarray 数据集,按数据时间戳time增序排列
# coding=utf-8
from xtquant import xtdata
# 获取迅投板块指数代码列表
xt_sector_index_list = xtdata.get_stock_list_in_sector("迅投一级行业板块加权指数")
# 获取迅投板块指数合约信息
xt_sector_index_info = xtdata.get_instrument_detail(xt_sector_index_list[0])
xt_sector_index = xt_sector_index_list[0]
print(xt_sector_index_info)
# 订阅合约数据
xtdata.subscribe_quote(xt_sector_index, period='1d', start_time='', end_time='20231026', count=1, callback=None)
# 下载指定合约历史行情
xtdata.download_history_data(xt_sector_index, '1d', '20231020', '20231026')
# 获取指定合约历史行情
day_data = xtdata.get_market_data_ex(field_list=[], stock_list=[xt_sector_index], period='1d', start_time='',end_time='20231026',  count=5, dividend_type='none', fill_data=True)
print(day_data)

获取指数tick数据

获取全推tick数据的函数是用户主动调用的工具。所谓"全推tick数据",指的是以tick(最小报价单位)为单位的实时市场数据,包括每一笔交易的信息,如成交金额、成交量、收盘价等。通过主动调用这个函数,用户能实时获得最新的市场动态,从而做出及时和准确的投资决策。

调用方法

# coding=utf-8
from xtquant import xtdata
xtdata.get_full_tick(code_list)

参数

字段 类型 说明
code_list list 合约列表
  • code_list:字符串格式, 例如 ['000001.SH', '000300.SH']

返回值

  • dict 数据集 { stock1 : tick1, stock2 : tick2, ... }, tick字段如下
字段 类型 说明
timetag str 时间
lastPrice float 最新价
open float 开盘价
low float 最低价
amount float 成交额
volume int 成交总量
pvolume int 原始成交总量
openInt int 持仓量
stockStatus str 证券状态
lastClose float 前收盘价
lastSettlementPrice float 前结算价
settlementPrice float 今结算价
askPrice list 多档委卖价
bidPrice list 多档委买价
askVol list 多档委卖量
bidVol list 多档委买量
# coding=utf-8
from xtquant import xtdata

# 获取迅投板块指数代码列表
xt_sector_index_list = xtdata.get_stock_list_in_sector("迅投一级行业板块加权指数")
# 获取迅投板块指数信息
xt_sector_index_info = xtdata.get_instrument_detail(xt_sector_index_list[0])
# 获取迅投板块指数tick数据
ret_full_tick = xtdata.get_full_tick([xt_sector_index])
print(ret_full_tick)

了解QMT

QMT主要以智能策略编写功能为主,集行情显示、策略研究、交易执行和风控管理于一体的策略交易终端。技术(有一定编程经验)门槛较高。同时专业版中还具有智能算法、ETF套利等专业交易功能。 

QMT量化交易系统具有显著的特点,如高速行情,系统提供实时、准确的行情数据,支持多种市场、多个品种的交易;策略回测,投资者可以在系统中编写量化策略,并利用历史数据进行回测,评估策略的有效性和稳定性;自动化交易,系统支持策略自动执行,投资者只需设定好策略参数,系统即可根据市场情况自动进行买卖操作;以及个性化定制,QMT量化交易系统提供丰富的API接口和自定义功能,投资者可以根据自己的需求进行个性化定制。

QMT基本功能介绍

  1. 快速交易终端:全内存交易,单笔延时小于1ms,

  2. 满足极速交易快速行情支持:①全面超越订阅式行情的超高压缩实时全推行情 ②支持历史TICK数据展示、盘口回放 

  3. 专业交易方式:①支持普通交易、组合交易、ETF交易等多种专业交易工具 ②内置标准算法交易、随机量交易,有效承接大额交易,隐藏交易行为

  4. 策略交易:①支持VBA和Python双语言开发策略编写、回测、模拟交易、自动化实盘交易 ②提供量化选股、择时、指数增强等多种策略模板研究,内置网格交易等成熟策略专

  5. 业风险控制:① 全内存多层次并行风控,大幅降低交易延迟、提高风控执行效率 ②支持交易合规、交易量价、资产比例等风控,严控投资风险

开通券商版QMT

首先,迅投的QMT软件,与大部分券商都存在深度合作。也就是说,券商可以免费提供其券商版QMT软件给用户使用,当然,前提是需要先在对应的券商开户,并达到券商要求的入金门槛。

券商版QMT由于不收取费用,可以免费使用,所以性价比最高,并可提供模拟盘版QMT试用。

5/23午评:大幅回调,家电抗跌

今日市场明显回调,家电板块表现活跃,地产板块表现落后。截止11点30分,上证指数跌1%,深成指跌1.19%,创业板指跌0.98%,北证50指数涨3.47%。地面兵装、Mlops概念等涨幅居前,调味品、非金属材料等跌幅居前。
        
异动板块点评:

1、地面兵装:板块涨幅2.65%,长城军工涨停。
消息面上,5月22日,在第五届中国机场发展大会暨创新成果展上,《电动垂直起降航空器(eVTOL)起降场技术要求》团体标准正式发布。这是我国首部针对电动垂直起降航空器(eVTOL)起降场的技术规范。

2、Mlops概念:板块涨幅0.59%,传音控股涨超1%。
当地时间5月22日美股盘后,芯片巨头英伟达发布截至今年4月的2025财年第一财季业绩。报告期内,英伟达实现收入260亿美元,高于市场预期的246.9亿美元,其中,数据中心收入226亿美元,也高于市场预期的211.3亿美元。英伟达当季的毛利润率为78.9%,高于预期的77%。英伟达预计,第二财季收入为280亿美元,将好于市场预期的268亿美元。

猜你喜欢

转载自blog.csdn.net/JJLC1019_wx/article/details/139146639