a:o,linethick0;
b:ref(c,1)+slidepts,linethick0;
cond:a<=b,linethick0;
测试数据为IF00 2012年2月13日 下午14:41分 slidepts默认是0.6 逐K模式 1分钟K线
根据计算两个都显示2526,但是为什么2526<=2526 显示的确实0
刚开始我还以为是忘记加括号,但是如上所写为什么还是得出了0
a1:1
b1:1
cond1:a1<=b1 显示的是1
很困惑!
[此贴子已经被作者于2012-2-21 15:39:42编辑过]
看走眼了
[此贴子已经被作者于2012-2-21 16:10:06编辑过]
if00 2月13日 14:41分 1分钟K线
ref(c,1) = 2525.4
o := 2526.0
所以,理论上,a=b
但是金字塔采用的是浮点计算,应该是这个问题造成的
可以这样处理 cond:a-b<0.1 应为他们之间的差距要么0.0001以内,要么一定大于0.1
至于为什么会这样,我不是计算机专业的,我也不懂
看哪位大侠懂的给大家解释解释
[此贴子已经被作者于2012-2-21 16:04:18编辑过]
浮点问题吗?我在ref(c,1)+slidepts加0.01就可以了
这个问题很隐蔽
以下是引用jinzhe在2012-2-21 15:48:11的发言:
如果按照slidepts是0.6的话,a为2561.6,b为2562.2
[此贴子已经被作者于2012-2-21 15:50:53编辑过]
你确定是正确的数据吗?我和
leevolvo的数据是一样的
这个问题虽然不严重,但是我开始担心我已近写完的程序 所有=地方是否都需要做修改
这个才是麻烦的地方
这个怎么可能呢?股指期货最小点位就是0.2 怎么会加出来。9999呢
金字塔的数据计算都是浮点形式的,当需要精确判断时,需要进行处理,参考
INTPART 取整函数,和
ROUNDS将小数点整理到指定位数后再来判断