全局变量的赋值是出现信号就赋值,还是需要K线走完?
举例:
variable:cc=0;
if ma5>ma20 then cc:=1;
我初始化一个全局变量为cc,当5周期均线大于20周期均线的时候cc赋值为1,如果盘中信号频闪,cc是在1和0中来回变,还是等K线走完后判断条件?
runmode:0;
variable:cc=0;
ma5:=ma(c,5);
ma20:=ma(c,20);
entertime:=time>100000 and time<144500;
if holding>0 and cc<=0 then sell(1,1,limitr,o);
if holding<0 and cc>=0 then sellshort(1,1,limitr,o);
if holding=0 and cc>0 then buy(1,1,limitr,o);
if holding=0 and cc<0 then buyshort(1,1,limitr,o);
if cc>0 and ma5<ma20 then cc:=0;
if cc<0 and ma5>ma20 then cc:=0;
if cc=0 and ma5>ma20 and entertime then cc:=1;
if cc=0 and ma5<ma20 and entertime then cc:=-1;
if time>=150000 then begin
cc:=0;
end
这段代码是从阿火秘籍里找来的,这段代码可以实现前一根K线判断条件,在本周期开盘价下单,我想问是如何实现的,我测试过,如果去掉CC这个全局变量,就变成出现信号就立即下单了
cc是整个控制变量,条件满足后先赋值cc
赋值后才会对应开平仓
我也明白先赋值再开仓。举个例子初始化CC=0,当MA5>MA20出现了,CC赋值为1,这个时候就满足了开仓条件,为什么不会立刻开仓,而是等到本周期结束之后在下周期开盘价下单。版主能否详细说明下,这个问题对我很重要
因为赋值是在开仓语句后面的,在同一根K线内
在同一根K线内,公式会从上往下运行,varibale记录为上一根K线的返回值。而不是公式运行一次的返回值
那就是说还是要等K线走完才返回值,varibale是不会在盘中根据条件来回变的
公式一次运行过程会记录值的,值在盘中会变化
只不过是公式一次运行的结果,公式重新运行后又会再次计算
记住代码是从上往下运行