以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 对临时变量的误解? (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=53003) |
-- 作者:李亚弟 -- 发布时间:2013/6/13 14:40:03 -- 对临时变量的误解? 刚刚做了一个测试临时变量的指标,代码:if time=140000 then a:=1;加载后发现在随意周期(不超过日线)上的随意时间,shift+Q都显示a的值为1。原本我以为这种临时变量在周期刷新后如果没有继续定义,就会消失。另外,重新定义后新值覆盖原值。那么这个和variable不就一样了吗? |
-- 作者:jinzhe -- 发布时间:2013/6/13 14:44:18 -- http://www.weistock.com/bbs/dispbbs.asp?BoardID=4&ID=11990&skin=0 参考一下这个吧 |
-- 作者:李亚弟 -- 发布时间:2013/6/13 14:56:35 -- if time=140000 then a:=1;//我的代码 //测试全局变量 variable:maxprofit=0; IF BARPOS = 2 THEN MAXPROFIT := 10; IF BARPOS = 10 THEN MAXPROFIT := 30; AA:MAXPROFIT,linethick0; //测试普通变量 n:=0; IF BARPOS = 2 THEN n:=1; IF BARPOS = 10 THEN n:=2; BB:n,linethick0; 我觉得这些代码有说到点子上,但是我的代码的测试结果和后面的效果上看起来互相矛盾。什么原因?
|
-- 作者:jinzhe -- 发布时间:2013/6/13 15:51:12 -- 能截图说明一下哪里是矛盾的吗?我觉得这例子很明显的说明了全局变量和常规变量的区别 |
-- 作者:李亚弟 -- 发布时间:2013/6/13 16:02:35 -- //测试全局变量 variable:maxprofit=0; IF BARPOS = 2 THEN MAXPROFIT := 10; IF BARPOS = 10 THEN MAXPROFIT := 30; AA:MAXPROFIT,linethick0; //测试普通变量 n:=0; IF BARPOS = 2 THEN n:=1; IF BARPOS = 10 THEN n:=2; BB:n,linethick0; 这段代码是很清楚的表明了普通变量和全局变量的区别。可是另外一个代码就把这个区别给搞混了。我一次只能传两张图,先传这两张。马上就来。
![]() ![]() ![]() ![]() |
-- 作者:李亚弟 -- 发布时间:2013/6/13 16:05:01 -- if time=140000 then a:=1; 加载这个代码之后,发现无论在那个时间,a的值都是1.上一次回复的两张截图的K线时间是140000之前的,现在我传一张K线时间正好是140000、一张K线时间再140000之后的图。
![]() ![]() ![]() ![]() |
-- 作者:jinzhe -- 发布时间:2013/6/13 16:15:19 -- 想要a在14点之前没有值,需要这么写 a:if(time>=140000,1,drawnull); 不做这样的限定,a会是因为系统设定的关系,自动向前赋值 |
-- 作者:李亚弟 -- 发布时间:2013/6/13 16:34:29 -- 那140000之后呢? |
-- 作者:jinzhe -- 发布时间:2013/6/13 16:38:11 -- 是只要这个点变1其他没有值? 那么上面的>=改成= |
-- 作者:李亚弟 -- 发布时间:2013/6/13 16:49:17 -- 那么在140000赋值为1,之后就一直为1,那不就跟variable混起来了吗? |