返回列表 发布新帖

新人求助 VBA知识库 序列变量 出错 a number value

65 1
发表于 5 天前 | 显示全部楼层 阅读模式

各位老师好,我是新人刚学习QMT,想从最简单的VBA开始,学会后再研究py(没有安装py环境)。但是知识库的代码在券商版新建单股VBA策略可以编译无法运行,在微信群里询问并没有解决,于是注册并下载了迅投QMT_普通版(1.0.1.10889),新建单股VBA策略还是同样的问题,希望可以得到老师们的帮助,问题如下:

https://dict.thinktrader.net/VBA/control_statement.html?id=Eca3VQ#%E6%95%B0%E7%BB%84

fc:=close;//定义一个序列变量,相当于是一个数组 k1:fc[1];//第1根 K 线的收盘价 k2:fc[2];//第 2 根 K 线的收盘价 k3:fc[5];//第 5 根 K 线的收盘价 k_end:fc[datacount];//最后 1 根 K 线的收盘价

如果仅知识库代码第一行

fc:=close;

那么可以顺利编译运行

如果加上第二行,可以编译但运行出错,可以定义fc是收盘价,但无法定义第1根 K 线的收盘价,fc[1]出错,知识库里有中括号[]的代码都无法运行,不知道哪里的问题

fc:=close; k1:fc[1];

出错代码如下 FORMULA11769431323: lua runtime error: [string "function FORMULA11769431323(__formula)..."]:21: attempt to index local 'fc' (a number value)

image.png

评论1

ㅤ_qDnPf楼主
发表于 5 天前 | 显示全部楼层
另外知识库里的2段代码
fc:=close;
for i=2 to datacount do ma2[i] :=(fc[i-1]+fc[i])/2;
可以编译不能运行,错误同上

fc:=close;
for i=datacount downto 2 do ma2[i] :=(fc[i-1]+fc[i])/2;
不能编译,提示[line-2]语句末尾缺少;
但已经有;符号了,其他不改动我把downto改成to
fc:=close;
for i=datacount to 2 do ma2[i] :=(fc[i-1]+fc[i])/2;
反而可以编译运行了
知识库的这些问题,让我感到比较困惑

回复

您需要登录后才可以回帖 登录 | 立即注册

主题

1

回帖

1

积分

0

客服专线

400-080-8112

用思考的速度交易,用真诚的态度合作,我们是认真的!
  • 关注公众号
  • 添加微信客服
Copyright © 2001-2026 迅投QMT社区 版权所有 All Rights Reserved. 京ICP备2025122616号-3
关灯 快速发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表