以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 金字塔软件问题提交 (http://weistock.com/bbs/list.asp?boardid=2) ---- [求助]请问是否定义变量对计算结果有影响吗? (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=155004) |
-- 作者:alohomora -- 发布时间:2017/6/13 9:59:07 -- [求助]请问是否定义变量对计算结果有影响吗? 1、 VARIABLE:SETPRICE=0; SETPRICE:=AA; 和去掉变量定义直接写 SETPRICE:=AA; 这两个SETPRICE取得的计算结果一致吗? 2、 SETPRICE:=AA;和SETPRICE:AA;有没有“=”,这两个SETPRICE取得的计算结果一致吗? |
-- 作者:gxx978 -- 发布时间:2017/6/13 10:07:24 -- 1,不一致,一般变量和全局变量的差别,详细可以参考连接:http://www.weistock.com/WeisoftHelp/index.html?zbgs003.htm 2,这个是一致的,加"=",是不在图表上输出。不加,即输出。 |
-- 作者:qq代人发帖 -- 发布时间:2017/6/13 10:10:09 -- 1.variable在金字塔下是全局变量,普通变量无需使用这个去声明。所以使用与否的区别就在于前者会声明一个全局变量,后者只是普通变量了。 2.:=和: 都具备声明一个变量的作用,不同的是前者还能作为临时赋值的语句来使用,此外就是在图表上前者不会显示出指标线。在数值上按照你给出的语句,最终赋值效果一致。对变量来说,你可以使用 :=或者:来声明,但是后面如果有重新赋值的操作,你就只能使用:=来操作了。 |
-- 作者:alohomora -- 发布时间: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代人发帖 -- 发布时间: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 -- 发布时间: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代人发帖 -- 发布时间: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 -- 发布时间:2017/6/13 10:36:52 -- 以下是引用qq代人发帖在2017/6/13 10:26:14的发言: 1.你第一部分代码是正确的,但是全局变量,希望您理解透彻后再用。如果只是需要一个普通变量: setprice:aa; 即可。 2.全局变量的值不会再每个运行周期都重置一次。 所以你要是对这个变量有什么操作,几个周期下来是会叠加这个效果的。更多内容,可以在论坛直接搜索:全局变量。 第一种写法,会不会导致偶尔结果变化?比如说,当前周期取得的SETPRICE值是A,但是几个周期后,变成B了?请问怎么才能避免这种情况出现?是否换用GLOBALVARIABLE? |
-- 作者:gxx978 -- 发布时间:2017/6/13 10:49:11 -- 1、定义为全局变量,第一次赋值A过后,那后面的值就一直是A,不会变为B,除非重新赋值。 2、GLOBALVARIABLE为超全局变量,只是作用于指标单次加载的过程中,指标加载时进行初始化,后面的定义语句不会对其再初始化,只有指标重新加载运算的时候才会被初始化的。 [此贴子已经被作者于2017/6/13 10:53:45编辑过]
|
-- 作者:alohomora -- 发布时间:2017/6/13 10:54:22 -- 以下是引用gxx978在2017/6/13 10:49:11的发言: 1、定义为全局变量,第一次赋值A过后,那后面的值就一直是A,不会变为B,除非重新赋值。 2、GLOBALVARIABLE为超全局变量,只是作用于指标单次加载的过程中,重新加载运算的时候又会被初始化的。 明白了。多谢。 |