3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 QMT(迅投 Quant)量化交易系统中,进行截面选股(如挑选全市场 CCI 排名靠前或强弱指标排名前 N 的股票)时,可以直接使用平台内置的引用函数 ext_data_rank。该函数能够快速计算并返回指定的扩展数据在全市场所有品种中的实时或历史排名。
ext_data_rank(extdataname, stockcode, deviation, ContextInfo)
string): 在 QMT 客户端中配置好的扩展数据名称(例如 'mycci')。string): 股票代码,格式为 '代码.市场',如 '600000.SH'。number): K 线偏移量:
0: 当前 K 线(不偏移)N: 向右偏移 N 根 K 线-N: 向左偏移 N 根 K 线以下是一个简单的 QMT 示例策略,演示如何在 handlebar 过程中获取指定股票在全市场的扩展数据排名,并打印排序结果:
#encoding:gbk
def init(ContextInfo):
# 设置初始股票池(以沪深300为例)
stock_list = ['600000.SH', '000001.SZ', '600519.SH']
ContextInfo.set_universe(stock_list)
print("策略初始化完成,准备获取截面排名...")
def handlebar(ContextInfo):
# 仅在最后一根 K 线(实时行情)时执行选股逻辑
if not ContextInfo.is_last_bar():
return
ext_name = 'mycci' # 请确保已在QMT客户端中配置了名为 'mycci' 的扩展数据
for stock in ContextInfo.get_universe():
# 获取当前股票在该扩展数据全市场中的排名
rank = ext_data_rank(ext_name, stock, 0, ContextInfo)
print(f"股票代码: {stock}, 扩展指标 [{ext_name}] 全市场排名: {rank}")
ext_data_rank 前,需先在 QMT 客户端的【数据管理】或【扩展数据】模块中提前生成并定义好对应的扩展数据(extdataname)。ext_data_rank_range 函数使用。get_factor_rank(factorname, stockcode, deviation, ContextInfo) 实现类似的功能。