以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [求助]急急急!后台交易语句漏执行,请帮忙解决!  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=78856)

--  作者:wujiazhu
--  发布时间:2015/5/21 10:48:27
--  [求助]急急急!后台交易语句漏执行,请帮忙解决!

GZZQ:GETREGVAL(\'SettingBJX\',GZQ,0);//跟踪周期

C20:=IF(REF(CROSS(C,RMA20) OR CROSS(RMA20,C),1),20,0);
C40:=IF(REF(CROSS(C,RMA40) OR CROSS(RMA40,C),1),40,0);
C80:=IF(REF(CROSS(C,RMA80) OR CROSS(RMA80,C),1),80,0);
C160:=IF(REF(CROSS(C,RMA160) OR CROSS(RMA160,C),1),160,0);
C320:=IF(REF(CROSS(C,RMA320) OR CROSS(RMA320,C),1),320,0);
C640:=IF(REF(CROSS(C,RMA640) OR CROSS(RMA640,C),1),640,0);
ZQ:MAX(MAX(MAX(MAX(MAX(C20,C40),C80),C160),C320),C640);//选择的周期
ZQ1:CONST(ZQ);
IF ZQ1>GZZQ THEN BEGIN SETREGVAL(\'SettingBJX\',GZQ,ZQ1);
SETREGVAL(\'SettingBJX\',FS,0);
END

 

整个程序是运行的,就是GZZQ的值有时刷新有时漏刷新。遇到这个问题后我加了ZQ1:CONST(ZQ)这句,也没有后果。


--  作者:jinzhe
--  发布时间:2015/5/21 11:15:06
--  

1.如何判断“有是漏刷新”

2.注册列表函数只有能保存整形值,而用户是有浮点数值

3.const是用来实现什么目的的?


--  作者:wujiazhu
--  发布时间:2015/5/21 13:45:57
--  

1、就是统一公式里,其他变量都运算完输出正确的结果了,GZZQ这个不更新结果。例如ZQ:80;  GZZQ:40;运算后应该是把GZZQ更新为80,但是实际是有时候更新,有时候不更新。

2、由于ZQ的运算结果都是整数,应该没影响吧。如有影响请问如何变为整形值?

3、原来我以为是因为序列变量的问题,就用const来转成常量,但结果还是不行。


--  作者:jinzhe
--  发布时间:2015/5/21 13:54:06
--  
不会有时更新有时不更新,把某些经过计算的数值做一下取整,比如用函数floor
--  作者:wujiazhu
--  发布时间:2015/5/21 14:22:51
--  
但是事实结果就是这样,有时候是能计算到结果的,请版主再帮忙看看什么原因
--  作者:jinzhe
--  发布时间:2015/5/21 14:26:12
--  

所以让你

 

“把某些经过计算的数值做一下取整,比如用函数floor ”


--  作者:wujiazhu
--  发布时间:2015/5/21 14:26:51
--  
好吧,我试试
--  作者:wujiazhu
--  发布时间:2015/5/21 16:41:21
--  
多问一句,如果不是整数写入注册表会怎样?是小数部分无效还是怎样?
--  作者:jinzhe
--  发布时间:2015/5/21 16:44:38
--  

整体会无效,数值不被记录


--  作者:wujiazhu
--  发布时间:2015/5/22 8:52:25
--  
昨晚回去测试和检查了,就算后面有小数点,都会自动舍去小数点后的数被记录到注册表。而且前天发现问题后,打开有问题的品种检查完,昨天又正常了(没改动过任何东西)。所以应该不是取整这个问题。请管理再想想,帮忙