最近有朋友问我,在使用QMT自带的一些策略进行回测或实盘交易时,会提示错误,比如 account未定义、account未找到 或者 account not defined。 (大家如果有任何疑问可以通过 WTSolutions微信公众号的聊天窗口向我提问)
通常提出这些问题的朋友都是刚入门QMT,对代码还并不熟悉。其实这个错误非常常见,也很好解决。
问题出在哪
以迅投QMT自带的「双均线实盘示例」PY策略为例,代码(节选)中:
1 | #encoding:gbk |
出错的就是这一行:
1 | A.acct = account |
为什么会报错
account 这个变量对于系统来说是没有定义的,QMT并不会自动把你的资金账户赋值给它,所以系统在运行到这里时就会报错 account not defined。
解决方法
这里的 account 应该替换成你登录QMT软件的实际资金账号。不同券商的账号格式可能不同,有的是纯数字,有的可能带字母,以券商提供给你的账户账号为准。
比如你的账户是 888666333,那么就把 account 改成带英文双引号的字符串 "888666333":
1 | A.acct = "888666333" |
修改后保存,再开启回测或实盘交易就可以正常运行了。