以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  一个让人困惑的公式bug  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=68381)

--  作者:mikebike
--  发布时间:2014/8/5 21:10:55
--  一个让人困惑的公式bug
a:IFN(open-low<=1*MINDIFF,0,1);

把如上公式使用在600004白云机场日线图,观看14年8月4日这一天日线下该指标的显示。

原本这一天的开盘减去收盘是,7.44-7.43=0.01,
0.01确实小于等于该股的最小波动单位的,
即0.01<=0.01的,所以a这个指标线应该是1(对应8月4日这一天)
但是奇怪的是在金字塔上实际那个位置是0.


这是为什么呢?请大家看看为什么

--  作者:qwer123
--  发布时间:2014/8/6 8:31:49
--  
这个可能是数型的问题,我不知道现在的编程语言是怎么样的,我记得以前用“Fortran”写程序时,只有“整型”数才可以用“=”进行判断,而实型数是不可以的。而实型数的相等判断一般是用abs(a-b)<....来判断。


--  作者:FexTel
--  发布时间:2014/8/6 9:26:15
--  
ROUNDS(dd,2);对open-l进行小数点为精确,实际返回值的时候涉及浮点误差,有小数点位影响
--  作者:mikebike
--  发布时间:2014/8/6 11:37:43
--  

哦,感谢回复。

 

继续请教,是不是a股的数据,其实并不是2位小数,而实际是小数点后三位?


--  作者:yukizzc
--  发布时间:2014/8/6 13:23:33
--  

计算机对浮点数的计算可能会存在小数点上的误差,你要精确判断的话用3楼的那个函数自己限制掉位数。