Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共7 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:数组越界操作?

1楼
rocklet 发表于:2016/7/29 16:38:05
RUNMODE:0;
VARIABLE:aa[]=0;
if date=20160704-19000000 AND time=93100 then 
beginpos:=BARPOS;
IF BEGINpos=barpos then 
aa:=barpos;
uba:UBOUND(aa);

if(uba>=1) THEN
ba:aa[1];

以上的代码,最后一行提示数组越界,不解?
2楼
jinzhe 发表于:2016/7/29 16:45:01
请问代码思路是什么?
3楼
rocklet 发表于:2016/7/29 16:47:12
在某个时间点之后开始计算,另外,后面是为了aa前值在满足一定条件下向后值传递
4楼
jinzhe 发表于:2016/7/29 16:55:59

RUNMODE:0;
VARIABLE:aa[]=0;
if date=20160729-19000000 AND time=93100 then
   beginpos:=BARPOS;
IF BEGINpos=barpos then
   aa:=barpos;
  
uba:UBOUND(aa);


if (uba>=1) and date>=20160729-19000000 AND time>=93100 THEN
ba:aa[1];

 

输出时要加时间判断,因为aa赋值是在限定时间里面,所以要做个限定

5楼
rocklet 发表于:2016/7/29 17:09:27
试过了,这样不会报错,但是ba还是取不到值,并没有等于aa[1]
6楼
jinzhe 发表于:2016/7/29 17:13:43
可以取到值的,由于用户所定的时间比较特殊,所以推荐用在股票或者IF上
图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看
7楼
rocklet 发表于:2016/7/29 17:32:53
找到原因了,我发现在不连接服务器的情况下,数组和序列变量的边界计算会出问题,至少在数据不完整的情况下是如此的,多谢了
共7 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.02246 s, 3 queries.