以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  为什么以下两种表述得到的结果不一样  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=100393)

--  作者:chenshall
--  发布时间:2016/7/8 8:50:34
--  为什么以下两种表述得到的结果不一样
为什么以下两种表述得到的结果不一样:

PKTJ:=0
IF COND THEN
BEGIN
  PKTJ:=1;
END

COND=1得到的结果PKTJ还是0



PKTJ:=IF(COND,1,0);

COND=1得到的结果PKTJ是1
[此贴子已经被作者于2016-7-8 8:50:50编辑过]

--  作者:jinzhe
--  发布时间:2016/7/8 8:54:25
--  
你具体的举个实际发生的例子说明一下
--  作者:chenshall
--  发布时间:2016/7/8 8:57:14
--  
PKTJ:=0;
IF M_0 && GSUM_DIFF && GLONG_DIFF && GLOW_DIFF THEN
BEGIN
PKTJ:=1;
END

PKTJ:=IF(M_0 && GSUM_DIFF && GLONG_DIFF && GLOW_DIFF,1,0);

当M_0   GSUM_DIFF   GLONG_DIFF   GLOW_DIFF都为1的时候,第一种表述PKTJ还是等于0

--  作者:jinzhe
--  发布时间:2016/7/8 8:59:50
--  
你把调试的结果发出来,我要看看你是根据什么做判断的
--  作者:chenshall
--  发布时间:2016/7/8 9:10:48
--  
写法为:
PKTJ:=0;
IF M_0 && GSUM_DIFF && GLONG_DIFF && GLOW_DIFF THEN
BEGIN
PKTJ:=1;
END

结果:
时间:16/07/07 14:07:00 序列:307  DIFF: -6.797 DEA: -7.012 MACD: 0.430 PKTJ: 0.000 M_0: 1.000 0_M: 0.000 GSUM: -14.872 GLONG: -3.725 GLOW: 2394.000 RSUM: 0.430 RLONG: 0.430 RHIGH: 2412.000 RNUM: 1.000 GNUM: 8.000 RNUMB: 13.000 GNUMB: 35.000 GSUMB: -55.393 RSUMB: 2.651 GSUM_DIFF: 1.000 GLONG_DIFF: 1.000 GLOW_DIFF: 1.000 RSUM_DIFF: 1.000 RLONG_DIFF: 1.000 RHIGH_DIFF: 0.000 TEMP: 2427.000 PDTJ: 0.000


写法为:
PKTJ:=IF(M_0 && GSUM_DIFF && GLONG_DIFF && GLOW_DIFF,1,0);

结果:
时间:16/07/07 14:07:00 序列:307  DIFF: -6.797 DEA: -7.012 MACD: 0.430 M_0: 1.000 0_M: 0.000 GSUM: -14.872 GLONG: -3.725 GLOW: 2394.000 RSUM: 0.430 RLONG: 0.430 RHIGH: 2412.000 RNUM: 1.000 GNUM: 8.000 RNUMB: 13.000 GNUMB: 35.000 GSUMB: -55.393 RSUMB: 2.651 GSUM_DIFF: 1.000 GLONG_DIFF: 1.000 GLOW_DIFF: 1.000 PKTJ: 1.000 RSUM_DIFF: 1.000 RLONG_DIFF: 1.000 RHIGH_DIFF: 0.000 TEMP: 2427.000 PDTJ: 0.000  

--  作者:jinzhe
--  发布时间:2016/7/8 9:19:45
--  

上面你调试到的是没有判断赋值过的pktj

你在第一段代码最后加上

pp:pktj;然后再看看条件是不是满足


--  作者:chenshall
--  发布时间:2016/7/8 9:26:36
--  
IF M_0 && GSUM_DIFF && GLONG_DIFF && GLOW_DIFF THEN
BEGIN
PKTJ:=1;
pp:pktj;
END

结果:
时间:16/07/07 14:07:00 序列:307  DIFF: -6.797 DEA: -7.012 MACD: 0.430 PKTJ: 0.000 M_0: 1.000 0_M: 0.000 GSUM: -14.872 GLONG: -3.725 GLOW: 2394.000 RSUM: 0.430 RLONG: 0.430 RHIGH: 2412.000 RNUM: 1.000 GNUM: 8.000 RNUMB: 13.000 GNUMB: 35.000 GSUMB: -55.393 RSUMB: 2.651 GSUM_DIFF: 1.000 GLONG_DIFF: 1.000 GLOW_DIFF: 1.000 PP: ## RSUM_DIFF: 1.000 RLONG_DIFF: 1.000 RHIGH_DIFF: 0.000 TEMP: 2427.000 PDTJ: 0.000 

--  作者:jinzhe
--  发布时间:2016/7/8 9:32:06
--  
不会是这样的,你把全部代码发上来,再讲一下应用的品种周期
--  作者:chenshall
--  发布时间:2016/7/8 9:50:13
--  
公司保密要求不能全发上来,任何周期都能用,就是计算macd背离的
--  作者:jinzhe
--  发布时间:2016/7/8 10:03:15
--  
那你发一个能测试出问题的代码来,要直接能编译通过,不需要我自行添加的