以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 金字塔软件问题提交 (http://weistock.com/bbs/list.asp?boardid=2) ---- 金字塔公式变量的初始化问题 (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=52622) |
-- 作者:wd369 -- 发布时间:2013/5/30 15:35:33 -- 金字塔公式变量的初始化问题 下面是测试公式: =========================== runmode:0;//逐K线模式 a:=1; aa:a; ===========================
按说 b 不应该始终是1啊. 最好是全部公式变量在开始全部初始化为0;
[此贴子已经被作者于2013-5-30 15:36:20编辑过]
|
-- 作者:双保险 -- 发布时间:2013/5/30 15:41:21 -- 既然是初始化当然都是o哦 |
-- 作者:wd369 -- 发布时间:2013/5/30 15:45:28 -- 但bb(=b) 应该在 C>O 的条件下才可能是1,其它情况应该是0 ; 但公式结果显示, 全部是1. 说明 条件里面的变量b最初没有初始化为=0,而是初始化为条件里面的=1.
我没有用最新的金字塔版本,不知道最新版是否也这样结果. |
-- 作者:jinzhe -- 发布时间:2013/5/30 16:06:18 -- 记得以前说过是因为B没有初始的值,然后因为后面被赋值,最后自动对前面没有被赋值的序列进行了赋值 |
-- 作者:wd369 -- 发布时间:2013/5/30 16:28:12 -- 以下是引用jinzhe在2013-5-30 16:06:18的发言:
记得以前说过是因为B没有初始的值,然后因为后面被赋值,最后自动对前面没有被赋值的序列进行了赋值 个人认为,这样的处理会造成失误, 还是把公式所有变量先初始化为0 更好. |
-- 作者:jinzhe -- 发布时间:2013/5/31 8:50:07 -- 因为后面用BB:B给显示出来了,所以显示在k线上不能有空数值,因为又没有其他赋值,所以统一的被赋值为1,如果代码写成 runmode:0;//逐K线模式 a:=1; 那么,就可以了 |
-- 作者:wd369 -- 发布时间:2013/5/31 12:29:01 -- 以下是引用jinzhe在2013-5-31 8:50:07的发言:
因为后面用BB:B给显示出来了,所以显示在k线上不能有空数值,因为又没有其他赋值,所以统一的被赋值为1,如果代码写成
补救方法我知道, 这肯定是个问题,稍不留神就会出错,而且很难觉察. 我只是建议,看在以后版本中能否修正下.
|
-- 作者:RogarZ -- 发布时间:2013/5/31 15:18:36 -- 这个全局变量的定义 C# C++ JAVA 专业的编程软件都是这样处理的。 赋值 你从0——>1 从1——>0 这两个都是需要定义的。 若自动变成0其实是不合时宜的 你现在只是1,0是容易,但当处理的东西多了就有缺陷了
|
-- 作者:wd369 -- 发布时间:2013/5/31 17:10:45 -- 以下是引用RogarZ在2013-5-31 15:18:36的发言:
这个全局变量的定义 C# C++ JAVA 专业的编程软件都是这样处理的。 赋值 你从0——>1 从1——>0 这两个都是需要定义的。
若自动变成0其实是不合时宜的
你现在只是1,0是容易,但当处理的东西多了就有缺陷了
不会吧? 在C 或者 java 里面, 全局变量 如果没有初始化, 会被编译器赋缺省值的(或空 或0). 金字塔公式里面,即使最开始是在if 里面 出现的变量,其实也是按照全局变量来使用的.
大智慧中对这种情况,是显示的空值(应该就是初始化为空值). 这样也不错,至少可以从结果中看出错漏来.
另: 我上面说的全局变量不是金字塔公式里面的GLOBALVARIABLE. |