以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  [BARPOS-1] 与 REF的问题  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=160339)

--  作者:jiantu
--  发布时间:2017/12/11 19:51:36
--  [BARPOS-1] 与 REF的问题
VARIABLE:
AB:= 0;

IF C > O THEN AB:= 1;
IF C < O THEN AB:= -1;

AB1: AB[BARPOS-1],NODRAW;
AB2: REF( AB,1 ),NODRAW;

为什么AB1 与 AB2 的返回值不一样?

--  作者:马良
--  发布时间:2017/12/11 20:11:42
--  
ab不要声名为全局变量
--  作者:jiantu
--  发布时间:2017/12/12 19:18:27
--  
ab 声明与不声明结果一样的啊
--  作者:无为剑
--  发布时间:2017/12/12 19:51:31
--  

经过我们用逐K线模式测试,结果是一致的,如果那边结果不一致,请升级至最新版4.41


--  作者:a141027
--  发布时间:2017/12/12 22:52:21
--  
我几天前也问过同样一个问题,是变量不连续的原因所致,楼主在if语句前插一行 ab:=ab;使变量连续,取值结果应该就一致了,我看法是跟设不设置variable没关系的。我没测试,如果说的不对请谅。
--  作者:jiantu
--  发布时间:2017/12/13 10:14:58
--  


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20171211194214.png
图片点击可在新窗口打开查看

1.我的已经是最新版本了

2.如图,当不在AB 变化的condition下就会不一致


--  作者:jiantu
--  发布时间:2017/12/13 14:26:50
--  
请问哪位能帮忙解决一下问题?
--  作者:gxx978
--  发布时间:2017/12/13 14:42:08
--  
参考5楼的说明,目前使用数组的话,需要使变量连续。可以增加一个判断下c=o的情况,在此情况下再赋值一个值给AB。
--  作者:jiantu
--  发布时间:2017/12/13 16:05:33
--  
好的,谢谢,还想问下,那怎样判断变量是否连续呢?
--  作者:gxx978
--  发布时间:2017/12/13 16:34:41
--  
那需要看变量AB每根K线上面的值了是否都是存在的。在定义为全局变量时,如果不赋值,就会默认是前一根K线上的值,在数组中直接使用就会出现问题。建议获取前几根K线上的值的时候使用ref函数。