3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 QMT(迅投量化交易系统)中,扩展数据(ext_data)允许开发者引入客户端技术指标或自定义数据。如果需要一次性获取某只股票在**特定时间区间段(如过去一年)**的扩展数据序列,可以使用 ext_data_range() 函数。
ext_data_range(extdataname, stockcode, begintime, endtime, ContextInfo)
代码+市场,例如 '600000.SH'。'YYYY-MM-DD HH:MM:SS'。'YYYY-MM-DD HH:MM:SS'。返回一个 Python 字典(dict),字典的 key 为时间戳或日期字符串,value 为对应时间点的扩展数据数值。
以下是一个完整示例,展示如何在 handlebar 触发时提取平安银行(000001.SZ)在过去一年内的扩展数据:
#coding:gbk
import datetime
def init(ContextInfo):
# 设置交易标的
ContextInfo.set_universe(['000001.SZ'])
def handlebar(ContextInfo):
# 仅在最后一根 Bar 上执行提取逻辑
if not ContextInfo.is_last_bar():
return
# 设定合约与扩展数据名称
stock_code = '000001.SZ'
ext_name = 'mycci' # 替换为你在QMT客户端中设置的扩展数据名称
# 计算过去一年的时间范围
now = datetime.datetime.now()
one_year_ago = now - datetime.timedelta(days=365)
start_time = one_year_ago.strftime('%Y-%m-%d 00:00:00')
end_time = now.strftime('%Y-%m-%d %H:%M:%S')
# 获取指定时间区间内的扩展数据字典
ext_data_dict = ext_data_range(ext_name, stock_code, start_time, end_time, ContextInfo)
print(f"获取 {stock_code} 从 {start_time} 到 {end_time} 的扩展数据:")
print(ext_data_dict)
| 函数名 | 说明 | 返回类型 |
|---|---|---|
ext_data |
获取单根 Bar 偏移位置的扩展数值 | number |
ext_data_range |
获取指定时间区间内的扩展数据 | dict |
ext_data_rank |
获取扩展数值在所有品种中的排名 | number |
ContextInfo.get_ext_all_data |
一次性提取所有扩展数据与其排名(推荐在 init 中使用) |
pandas.Panel |
ext_data_range 前,必须确保客户端的扩展数据已经通过系统“扩展数据管理”计算并下载生成完毕,否则可能返回空数据或报错。#coding:gbk 避免编码格式问题。