自已编写的一个统计盘中当前档位价格成交量的小程序,但是调试了将近了一周,仍没解决问题,源码贴上。
VARIABLE:A=DYNAINFO( 20),B=DYNAINFO( 21); //获取委买、委卖价
VARIABLE:VOL_B=0,VOL_S=0; //用于统计买、卖档位的成交量
分笔成交:STKINDIEX('','VOL.VOLUME',0,0,0,10),NODRAW; //获取分笔成交量
IF C<A OR C>B THEN //如果最新价发生了变化(也就是委买、卖价改变了),初始化各值
BEGIN
A:=DYNAINFO( 20); //委买
B:=DYNAINFO( 21); //委卖
VOL_B:=0;
VOL_S:=0;
END
VOL_B:=VALUEWHEN(C=A,VOL_B+分笔成交); //如果最新价等于委买,累加当前分笔成交量;如果不等委买,保持上一周期数值
VOL_S:=VALUEWHEN(C=B,VOL_S+分笔成交); //如果最新价等于委卖,累加当前分笔成交量;如果不等委卖,保持上一周期数值
委买价:A,NODRAW;
委买成交统计:VOL_B,NODRAW;
委卖价:B,NODRAW;
委卖成交统计:VOL_S,NODRAW;
程序基本逻辑应该没有什么大问题,就是用于统计委买、卖的VOL_B、VOL_S无法显示出来。用变量查看器发现VOL_B、VOL_S的值为“##”无效值(见附图),所以无法进行计算和显示了。本人想了许多办法,任然无法解决这个问题,请大哥一定帮忙解决,谢谢了!

此主题相关图片如下:截图001.png

大哥,我也怀疑过这个条件,但经过测试不是这个问题。问题几乎锁定在vol_b、vol_s这两个变量上
你测试的不成功。
你的代码到最后都要计算最后的判断式,最红vol_a和b都返回的结果是判断式的结果,判断式返回没有结果,那么必然是条件判断不成立
[此贴子已经被作者于2015/10/12 10:59:01编辑过]
小弟愚钝,不是很懂,大哥能不能给更多点提示,简单修改一下也行,无比感谢!
VOL_B:=VALUEWHEN(C=A,VOL_B+分笔成交); //如果最新价等于委买,累加当前分笔成交量;如果不等委买,保持上一周期数值
VOL_S:=VALUEWHEN(C=B,VOL_S+分笔成交); //如果最新价等于委卖,累加当前分笔成交量;如果不等委卖,保持上一周期数值
这两句里面的判断条件恒不成立,或者说你的思路表达的判断条件是不能实现的