欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → [求助]请问是否定义变量对计算结果有影响吗?

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有2307人关注过本帖树形打印复制链接

主题:[求助]请问是否定义变量对计算结果有影响吗?

帅哥哟,离线,有人找我吗?
alohomora
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:76 积分:0 威望:0 精华:0 注册:2017/6/5 13:46:00
[求助]请问是否定义变量对计算结果有影响吗?  发帖心情 Post By:2017/6/13 9:59:07 [只看该作者]

1、
 VARIABLE:SETPRICE=0;
SETPRICE:=AA;
和去掉变量定义直接写
SETPRICE:=AA;
这两个SETPRICE取得的计算结果一致吗?
2、
SETPRICE:=AA;和SETPRICE:AA;有没有“=”,这两个SETPRICE取得的计算结果一致吗?

 回到顶部
帅哥哟,离线,有人找我吗?
gxx978
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:4994 积分:0 威望:0 精华:0 注册:2016/9/1 10:46:51
  发帖心情 Post By:2017/6/13 10:07:24 [只看该作者]

1,不一致,一般变量和全局变量的差别,详细可以参考连接:http://www.weistock.com/WeisoftHelp/index.html?zbgs003.htm

2,这个是一致的,加"=",是不在图表上输出。不加,即输出。


 回到顶部
帅哥哟,离线,有人找我吗?
qq代人发帖
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:18691 积分:0 威望:0 精华:0 注册:2013/7/15 9:22:16
  发帖心情 Post By:2017/6/13 10:10:09 [只看该作者]

1.variable在金字塔下是全局变量,普通变量无需使用这个去声明。所以使用与否的区别就在于前者会声明一个全局变量,后者只是普通变量了。

2.:=和:   都具备声明一个变量的作用,不同的是前者还能作为临时赋值的语句来使用,此外就是在图表上前者不会显示出指标线。在数值上按照你给出的语句,最终赋值效果一致。对变量来说,你可以使用 :=或者:来声明,但是后面如果有重新赋值的操作,你就只能使用:=来操作了。


 回到顶部
帅哥哟,离线,有人找我吗?
alohomora
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:76 积分:0 威望:0 精华:0 注册:2017/6/5 13:46:00
  发帖心情 Post By:2017/6/13 10:13:15 [只看该作者]

以下是引用gxx978在2017/6/13 10:07:24的发言:

1,不一致,一般变量和全局变量的差别,详细可以参考连接:http://www.weistock.com/WeisoftHelp/index.html?zbgs003.htm

2,这个是一致的,加"=",是不在图表上输出。不加,即输出。


为何加上=,可以这样写:
 VARIABLE:SETPRICE=0;
SETPRICE:=AA;
而去掉=后,这样写却提示重复定义:
 VARIABLE:SETPRICE=0;
SETPRICE:AA;

 回到顶部
帅哥哟,离线,有人找我吗?
qq代人发帖
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:18691 积分:0 威望:0 精华:0 注册:2013/7/15 9:22:16
  发帖心情 Post By:2017/6/13 10:15:45 [只看该作者]

以下是引用alohomora在2017/6/13 10:13:15的发言:


为何加上=,可以这样写:
 VARIABLE:SETPRICE=0;
SETPRICE:=AA;
而去掉=后,这样写却提示重复定义:
 VARIABLE:SETPRICE=0;
SETPRICE:AA;

你第一部分代码中的:= 相当于再次赋值,但是第二部分代码却是2次声明一个变量,你声明了2次,肯定不行的。请看3楼的说明。

[此贴子已经被作者于2017/6/13 10:21:23编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
alohomora
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:76 积分:0 威望:0 精华:0 注册:2017/6/5 13:46:00
  发帖心情 Post By:2017/6/13 10:16:20 [只看该作者]

以下是引用qq代人发帖在2017/6/13 10:10:09的发言:

1.variable在金字塔下是全局变量,普通变量无需使用这个去声明。所以使用与否的区别就在于前者会声明一个全局变量,后者只是普通变量了。

2.:=和:   都具备声明一个变量的作用,不同的是前者还能作为临时赋值的语句来使用,此外就是在图表上前者不会显示出指标线。在数值上按照你给出的语句,最终赋值效果一致。对变量来说,你可以使用 :=或者:来声明,但是后面如果有重新赋值的操作,你就只能使用:=来操作了。


请问是不是因为这两个原因导致下面的错误提示:
 VARIABLE:SETPRICE=0;
SETPRICE:=AA;
这样写就可以。
 VARIABLE:SETPRICE=0;
SETPRICE:AA;
去掉=后,就提示重复定义了。
另外加不加全局变量,哪种写法会导致前面取到的SETPRICE值,在后面几个周期刷新后可能发生变化?

 回到顶部
帅哥哟,离线,有人找我吗?
qq代人发帖
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:18691 积分:0 威望:0 精华:0 注册:2013/7/15 9:22:16
  发帖心情 Post By:2017/6/13 10:26:14 [只看该作者]

以下是引用alohomora在2017/6/13 10:16:20的发言:


请问是不是因为这两个原因导致下面的错误提示:
 VARIABLE:SETPRICE=0;
SETPRICE:=AA;
这样写就可以。
 VARIABLE:SETPRICE=0;
SETPRICE:AA;
去掉=后,就提示重复定义了。
另外加不加全局变量,哪种写法会导致前面取到的SETPRICE值,在后面几个周期刷新后可能发生变化?

1.你第一部分代码是正确的,但是全局变量,希望您理解透彻后再用。如果只是需要一个普通变量: setprice:aa;    即可。

2.全局变量的值不会再每个运行周期都重置一次。 所以你要是对这个变量有什么操作,几个周期下来是会叠加这个效果的。更多内容,可以在论坛直接搜索:全局变量。


 回到顶部
帅哥哟,离线,有人找我吗?
alohomora
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:76 积分:0 威望:0 精华:0 注册:2017/6/5 13:46:00
  发帖心情 Post By:2017/6/13 10:36:52 [只看该作者]

以下是引用qq代人发帖在2017/6/13 10:26:14的发言:

1.你第一部分代码是正确的,但是全局变量,希望您理解透彻后再用。如果只是需要一个普通变量: setprice:aa;    即可。

2.全局变量的值不会再每个运行周期都重置一次。 所以你要是对这个变量有什么操作,几个周期下来是会叠加这个效果的。更多内容,可以在论坛直接搜索:全局变量。



第一种写法,会不会导致偶尔结果变化?比如说,当前周期取得的SETPRICE值是A,但是几个周期后,变成B了?请问怎么才能避免这种情况出现?是否换用GLOBALVARIABLE?

 回到顶部
帅哥哟,离线,有人找我吗?
gxx978
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:4994 积分:0 威望:0 精华:0 注册:2016/9/1 10:46:51
  发帖心情 Post By:2017/6/13 10:49:11 [只看该作者]

1、定义为全局变量,第一次赋值A过后,那后面的值就一直是A,不会变为B,除非重新赋值。

2、GLOBALVARIABLE为超全局变量,只是作用于指标单次加载的过程中,指标加载时进行初始化,后面的定义语句不会对其再初始化,只有指标重新加载运算的时候才会被初始化的。

[此贴子已经被作者于2017/6/13 10:53:45编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
alohomora
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:76 积分:0 威望:0 精华:0 注册:2017/6/5 13:46:00
  发帖心情 Post By:2017/6/13 10:54:22 [只看该作者]

以下是引用gxx978在2017/6/13 10:49:11的发言:

1、定义为全局变量,第一次赋值A过后,那后面的值就一直是A,不会变为B,除非重新赋值。

2、GLOBALVARIABLE为超全局变量,只是作用于指标单次加载的过程中,重新加载运算的时候又会被初始化的。


明白了。多谢。

 回到顶部