以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 金字塔软件问题提交 (http://www.weistock.com/bbs/list.asp?boardid=2) ---- 分时黄线的值有时计算不出来 (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=162251) |
-- 作者:滚雪球 -- 发布时间:2018/3/22 15:14:25 -- 分时黄线的值有时计算不出来 N1:=OPENMINUTES(TIME); YL:=IF(SUM(VOL,N1)=0,C,SUM(C*VOL,N1)/SUM(VOL,N1)); DEBUGFILE(\'D:\\KK.LOG\',NAME &\' 跌↓ \'& OI &\' \'& BIGTREND &\' \'& YLFLAG &\' \'&NUMTOSTR(仓单数量,0)&\' \'&NUMTOSTR(CLOSE,3)&\' \'&NUMTOSTR(YL,3),0); 前面两行是求分时黄线的值,然后用debugfile打印出来,但有时打印出来的值是-1.#QO 尤其是铅,镍这种6位数的出问题多,但铅,镍的close打印出来是正确的 感觉是YL有时不能正确的计算出来,在前台没发现问题,但是后台经常出现,其他品种多数正常,偶尔出现同样的问题
|
-- 作者:banzhuan -- 发布时间:2018/3/22 15:32:09 -- 明天盘中本地核实一下您说的问题,是输出镍的YL值出现无效值是吧? |
-- 作者:滚雪球 -- 发布时间:2018/3/22 15:47:14 -- 镍,铅,其他的品种有时也会出现
|
-- 作者:banzhuan -- 发布时间:2018/3/22 15:50:01 -- 好的,明天核实后在本帖给您跟帖答复 |
-- 作者:滚雪球 -- 发布时间:2018/3/22 15:56:51 -- 使用1分钟1秒后台轮询,代码大致可以简化成这样: GLOBALVARIABLE:T:=-1; NAME:=STRLEFT(STKNAME,STRLEN(STKNAME)-4); N1:=OPENMINUTES(TIME); YL:=IF(SUM(VOL,N1)=0,C,SUM(C*VOL,N1)/SUM(VOL,N1)); //使用全局变量控制1分钟只输出一次 IF OPENMINUTES(TIME)>T THEN BEGIN DEBUGFILE(\'D:\\KK.LOG\',NAME &NUMTOSTR(CLOSE,3)&\' \'&NUMTOSTR(YL,3),0); T:=OPENMINUTES(TIME);
END |
-- 作者:banzhuan -- 发布时间:2018/3/22 16:44:42 -- 本地核实了下,和品种没有关系,是SUM函数的问题,如使用SUM函数,后台刷新K线数量必须要大于N1的数量,图表也是这样。如果K线数量小于N1的值,会求不出SUM的值,建议K线刷新数量修改为560根,您再试试 |
-- 作者:滚雪球 -- 发布时间:2018/3/22 19:32:07 -- 果然如此,之前设置为360根,改了看上去正常了,夜盘再看一下,谢谢 |