以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  请教关于金字塔VBA中多重for循环的问题  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=144420)

--  作者:李润Rex
--  发布时间:2016/12/9 12:41:45
--  请教关于金字塔VBA中多重for循环的问题
图片点击可在新窗口打开查看 
以下内容为程序代码:

1 \'初始资金状态
2 iCost=0
3 iRevenue=0
4 redim iStock(count)
5 \'对每一支股票进行回测
6 for i=0 to count-1
7 for iperiod=10 to History_stock(i).count-1
8 redim ma5(History_stock(i).count-10)
9 redim ma10(History_stock(i).count-10)
10 for k=1 to 5
11 ma5(iperiod-10)=ma5(iperiod-10)+History_stockcode(i).close(iperiod-k)
12 next
13 for k=1 to 10
14 ma10(iperiod-10)=ma10(iperiod-10)+History_stockcode(i).close(iperiod-k)
15 next
16 if ma5(iperiod-10)>ma10(iperiod-10) then
17 \'记录购买后的成本以及持有资产i的数量
18 iCost=iCost+History_stockcode(i).close(iperiod)*1000
19 iStock(i)=iStock(i)+1000
20 else if ma5(iperiod-10)<ma10(iperiod-10) then
21 if iStock(i)>0 then
22 \'记录账户上的可用现金余额并平掉i的仓位
23 iRevenue=iRevenue+History_stockcode(i).close(iperiod)*iStock(i)
24 iStock(i)=0
25 end if
26 end if
27 next
28 \'将现在持有的股票头寸加入在内~
29 iRevenue=iRevenue+History_stockcode(i).close(iperiod)
30 next

您好,请问如上示例的简单代码中有一个二重for循环,语句结构都没有问题,但是在运行过程中会报错提示Next使用出错。而类似的问题在另一个过程中的二重循环中也遇到了,所以想请教一下这是什么原因导致的。谢谢

--  作者:李润Rex
--  发布时间:2016/12/9 12:43:59
--  
出现错误的循环是27行的next,它对应的for是第7行语句。
--  作者:李润Rex
--  发布时间:2016/12/9 13:01:18
--  
代码截图是这样  黄色箭头处的Next会报错,对应的是 for iperiod那层循环
图片点击可在新窗口打开查看此主题相关图片如下:bhypt13mhzv07$)m$zy{{)5.png
图片点击可在新窗口打开查看

--  作者:microsoft
--  发布时间:2016/12/9 15:29:46
--  
elseif 中间没有空格的
--  作者:李润Rex
--  发布时间:2016/12/9 16:17:05
--  
啊原来是这样   十分感谢~