以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  between函数这个居然返回1  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=149863)

--  作者:qq代人发帖
--  发布时间:2017/3/29 15:50:11
--  between函数这个居然返回1
dzdk:between(3072,3072.0,3067.3),linethick0;
这个居然返回1
按道理,应该等价于 3072>=3072.0 and 3072<3067.3
怎么能返回1
按道理,应该等价于 3072>=3072.0 and 3072<=3067.3

--  作者:jinzhe
--  发布时间:2017/3/29 15:56:00
--  

这个结果没问题,结果是1

 


--  作者:百湛必胜客
--  发布时间:2017/3/29 16:00:43
--  
结果是1就错了,难道,3072>=3072.0 and 3072<=3067.3 ?

[此贴子已经被作者于2017/3/29 16:00:58编辑过]

--  作者:百湛必胜客
--  发布时间:2017/3/29 16:01:38
--  
回答问题都不认真看
--  作者:jinzhe
--  发布时间:2017/3/29 16:12:23
--  

你不能用自己的理解来认为我们的函数就是你想的那样

在两个数之间,一个是3072.0,一个是3067.3 ,那么之间的范围就是  3072.0>=x >=3067.3

函数说明里面并没有说,一定是大等于前面的数,小于等于后面的数。只要在这两个数之间有一个范围,那么就是一个between

 


--  作者:百湛必胜客
--  发布时间:2017/3/29 16:23:23
--  
哦,那between这个函数等于阉割了本该有的功能
你比如betwee(close,ref(c,barslast(c>ma(c,120)),ref(c,barslast(c>ma(c,50)))
编公式的时候,因为between的后两个变量可能是序列的,你无法确定这两个变量大小,但是你想要的逻辑是大于等于第一个变量,小于等于第二个变量,between函数在这种情况下难道无法正确的得出本该有的逻辑?

--  作者:百湛必胜客
--  发布时间:2017/3/29 16:25:51
--  
这样的话,我也没什么好说的了,只能说,很多人会用错这个BETWEEN,写出了意外的逻辑判断
--  作者:百湛必胜客
--  发布时间:2017/3/29 16:27:02
--  
其实,你们的本意BETWEEN也是前小后大的判断,只是我提出来了你们不想承认是缺陷而已