今天指标发现有异常,调试完成后,
发现前半段有一个EXIT的代码。在K线模式下,如果前一个K是状态是EXIT的,后一个K线,EXIT的语句,还有REF之类的语句取到的值就为0,请版主确认一下是为什么的呢?
M:=BARSLAST(DATE<>REF(DATE,1))+1;
IF M <= 3 THEN EXIT;
TESTMVALUE:M,LINETHICK0;
TESTC:REF(C,1),LINETHICK0;
m=4的时候,TESTC是零,为什么呀?????????????
你用以下在图表上调试一下,看看就知道了
这里的IF M <= 3 THEN EXIT;根本就没起作用
M:=BARSLAST(DATE<>REF(DATE,1))+1;
IF M <= 3 THEN EXIT;
TESTMVALUE:M,LINETHICK0;
TESTC:REF(C,1);//这个画线一直是显示的,不管是序列还是逐周期
可能跟EXIT前的条件判断有关.
象以下写出来的,就是好好的.
//不是品种CU,不执行后续程序
if STRCMP(STRLEFT(STKLABEL,2) ,'RU')<>0 then exit;
这里的 IF M <= 3 THEN EXIT;根本就没起作用
~~~~~~~~~
忘了告诉你,我是在3分钟K线模式下,做期货没有人用日K线吧。上面的代码,我是试过,才贴出来的!V2.75.... 今天这个版本还有发现其它的问题,信号有问题,重新开程序,或者滑点设置不一样,程序就会不一样。
代码,是分钟K线上使用的.
未在日K线上用
M:=BARSLAST(DATE<>REF(DATE,1))+1;
TESTMVALUE:M,LINETHICK0;
TESTC:REF(C,1),LINETHICK0;
IF M <= 3 THEN EXIT;
这样改就好了
因为逐K线模式下,每个周期都要调用公式,REF等统计函数,需要每次调用时来保存上次调用的数据,你在他前面用了EXIT,结果将导致前面3个周期没有保存统计数据,结果造成出错