以文本方式查看主题 
         
      -  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp) 
        --  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4) 
        ----  数组越界操作?  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=137279) 
         
       | 
    
    
    
      --  作者: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]; 
 
 以上的代码,最后一行提示数组越界,不解? 
         
       | 
    
    
      --  作者:jinzhe 
        --  发布时间:2016/7/29 16:45:01 
        
        --   
        请问代码思路是什么?
         
       | 
    
    
      --  作者:rocklet 
        --  发布时间:2016/7/29 16:47:12 
        
        --   
        在某个时间点之后开始计算,另外,后面是为了aa前值在满足一定条件下向后值传递
         
       | 
    
    
      --  作者: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赋值是在限定时间里面,所以要做个限定 
         
       | 
    
    
      --  作者:rocklet 
        --  发布时间:2016/7/29 17:09:27 
        
        --   
        试过了,这样不会报错,但是ba还是取不到值,并没有等于aa[1]
         
       | 
    
    
      --  作者:jinzhe 
        --  发布时间:2016/7/29 17:13:43 
        
        --   
        可以取到值的,由于用户所定的时间比较特殊,所以推荐用在股票或者IF上
  此主题相关图片如下:1.png
   
         
       | 
    
    
      --  作者:rocklet 
        --  发布时间:2016/7/29 17:32:53 
        
        --   
        找到原因了,我发现在不连接服务器的情况下,数组和序列变量的边界计算会出问题,至少在数据不完整的情况下是如此的,多谢了
         
       |