以文本方式查看主题 
         
      -  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp) 
        --  公式模型编写问题提交  (http://www.weistock.com/bbs/list.asp?boardid=4) 
        ----  符合条件却没有触发  (http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=172895) 
         
       | 
    
    
    
      --  作者:zaiyuanfang1 
        --  发布时间:2019/11/6 10:38:49 
        
        --  符合条件却没有触发 
        input:grid(3,1,60,1); variable:level=0; dist:=barslast(date<>ref(date,1)); oo:=ref(open,dist); cc:=oo+level*grid*mindiff; if high>=cc+grid*mindiff then  level:=level+1; if low<=cc-grid*mindiff then  level:=level-1; cc:=oo+level*grid*mindiff;
  cc1:cc; 
 
 
  此主题相关图片如下:qq截图20191106103251.png
  
 
 如图红色方框的位置条件达到,cc1的值正常改变。而黄色方框的位置,条件达到了,cc1的值却还是原来的值。看起来是随机出现这样的情况。请问是我代码写错了吗?该怎么写才好?谢谢。 
         
       | 
    
    
      --  作者:FireScript 
        --  发布时间:2019/11/6 11:06:49 
        
        --   
        你光标移动过去看下具体价格情况。你设置的参数是3  至少要差3*MINDIFF  也就是0.6 才会改变。你标记位置只能看到LOW在cc1下面,但是具体差不多少看不出来啊。 
         
       | 
    
    
      --  作者:zaiyuanfang1 
        --  发布时间:2019/11/6 11:16:58 
        
        --   
        
  此主题相关图片如下:qq截图20191106111039.png
  
 
  此主题相关图片如下:qq截图20191106111057.png
  
  
	值是达到的,因为都是按跳来算的,应该没有别的中间值 
         
       | 
    
    
      --  作者:zaiyuanfang1 
        --  发布时间:2019/11/6 11:21:29 
        
        --   
        4993.8,4993.2 有达到0.6的差值的。
         
       | 
    
    
      --  作者:zaiyuanfang1 
        --  发布时间:2019/11/6 11:37:36 
        
        --   
        请大神帮忙修改一下代码,这个实在找不出什么原因。有能达到类似效果的代码就行。谢谢 
         
       | 
    
    
      --  作者:FireScript 
        --  发布时间:2019/11/6 12:33:54 
        
        --   
         可能不是代码原因,我下午盘中再确认下,有可能是计算小数点的问题。
         
       | 
    
    
      --  作者:zaiyuanfang1 
        --  发布时间:2019/11/6 13:22:22 
        
        --   
        好的,谢谢 
         
       | 
    
    
      --  作者:yukizzc 
        --  发布时间:2019/11/6 14:35:49 
        
        --   
        开高低收这些数值在计算时候内部有浮点误差,你把high>=cc+grid*mindiff这种条件输出看下,有些数据不能光看图上就比如图上价格是2.2如果你直接拿价格和2.2座比较很有可能是不满足条件的,虽然肉眼看着是满足 所以把条件都给当作变量在图上看下。 
         
       | 
    
    
      --  作者:zaiyuanfang1 
        --  发布时间:2019/11/6 15:02:43 
        
        --   
        input:grid(3,1,60,1); variable:level=0; 
	dist:=barslast(date<>ref(date,1)); oo:=ref(open,dist); cc:=oo+level*grid*mindiff; if c>=cc+grid*mindiff then begin  level:=level+1; end if c<=cc-grid*mindiff then begin  level:=level-1; end cc:=oo+level*grid*mindiff; 
	cc1:cc,colormagenta; level1:level,nodraw; aa:cc+grid*mindiff,nodraw; bb:cc-grid*mindiff,nodraw; //c1:c; 
	  
	  
	  
	
  此主题相关图片如下:qq截图20191106150121.png
   
	  
	这个有尝试排除过,还是无法排除哪个步骤的问题。
  
         
       | 
    
    
      --  作者:zaiyuanfang1 
        --  发布时间:2019/11/6 15:06:16 
        
        --   
        input:grid(3,1,60,1); variable:level=0; dist:=barslast(date<>ref(date,1)); oo:=ref(open,dist); cc:=oo+level*grid*mindiff; if c>=cc+grid*mindiff then  level:=level+1; if c<=cc-grid*mindiff then  level:=level-1; cc:=oo+level*grid*mindiff; cc1:cc; 
	  
	把high跟low都改为c,也还是不行,因为在分笔周期上,ochl已经变成一个价格了。结果也是一样的。 
         
       |