刚刚做了一个测试临时变量的指标,代码:if time=140000 then a:=1;加载后发现在随意周期(不超过日线)上的随意时间,shift+Q都显示a的值为1。原本我以为这种临时变量在周期刷新后如果没有继续定义,就会消失。另外,重新定义后新值覆盖原值。那么这个和variable不就一样了吗?
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;
我觉得这些代码有说到点子上,但是我的代码的测试结果和后面的效果上看起来互相矛盾。什么原因?
能截图说明一下哪里是矛盾的吗?我觉得这例子很明显的说明了全局变量和常规变量的区别
//测试全局变量
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;
这段代码是很清楚的表明了普通变量和全局变量的区别。可是另外一个代码就把这个区别给搞混了。我一次只能传两张图,先传这两张。马上就来。

此主题相关图片如下:barpos2.png


此主题相关图片如下:barpso10.png

if time=140000 then a:=1;
加载这个代码之后,发现无论在那个时间,a的值都是1.上一次回复的两张截图的K线时间是140000之前的,现在我传一张K线时间正好是140000、一张K线时间再140000之后的图。

此主题相关图片如下:140000.png


此主题相关图片如下:143100.png

想要a在14点之前没有值,需要这么写
a:if(time>=140000,1,drawnull);
不做这样的限定,a会是因为系统设定的关系,自动向前赋值
那么在140000赋值为1,之后就一直为1,那不就跟variable混起来了吗?