3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
关于 call_vba() 函数在 QMT 中的调用权限,通常有以下几种情况:
call_vba(),完全取决于您所在券商采购的 QMT 版本以及为您开通的权限级别。建议:最直接的方法是在您的券商版 QMT 策略编辑器中编写一个简单的测试脚本调用该函数,如果报错提示无权限或找不到该函数,则说明当前版本不支持。此时您可以联系您的券商客户经理,询问是否可以申请开通更高级的 QMT 权限。
在标准的 QMT Python API 官方文档中,并没有直接推荐使用 call_vba() 来获取指标数据。相反,QMT 提供了专门的引用函数来获取扩展数据和自定义指标数据。如果您在券商版中无法使用 call_vba(),可以尝试使用官方标准的 ext_data() 系列函数。
ext_data()用法:ext_data(extdataname, stockcode, deviation, ContextInfo)
释义:获取在 QMT 平台上定义好的扩展数据或指标数据。
示例代码:
def handlebar(ContextInfo):
# 获取 600000.SH 的自定义指标 'mycci' 的当前值,不偏移
cci_value = ext_data('mycci', '600000.SH', 0, ContextInfo)
print(cci_value)
ext_data_range()用法:ext_data_range(extdataname, stockcode, begintime, endtime, ContextInfo)
示例代码:
def handlebar(ContextInfo):
# 获取指定时间段内的指标数据
data_dict = ext_data_range('mycci', '600000.SH', '2023-01-01 09:30:00', '2023-12-31 15:00:00', ContextInfo)
print(data_dict)
如果您希望在 Python 策略中复用已有的指标逻辑,建议先在 QMT 的公式编辑器中将指标写好并保存为扩展数据,然后在 Python 策略中通过 ext_data() 接口进行安全、合规的调用,这种方式在绝大多数券商版 QMT 中都是默认支持的。