BARSLAST(TYPE(1)=2),请问上次平多的位置到当前的周期是这么描述吧,在图表上显示的是当平多后一直显示为零,当开仓后才开始显示周期数。如果写成BARSLAST(TTYPE(1)=1),从平多后开始显示周期数,这个TYPE=的描述和实际显示为什么不符。
你直接 BARSLAST(平仓条件)
你用BARSLAST(TYPE(1)=2), 这种方式肯定有问题的。
TYPE(1)判断的是上次信号,只要你没重新出交易信号,这个函数返回值在平多之后一直都是一样的。也就是每个K都是满足TYPE(1)=2,返回值当然是0 了。
如果用BARSLAST(平仓条件)的话,如果平仓条件触发后没有成交,撤单了,那这个条件就不能成立了。
想要的是真正平仓后开始计算平仓后的周期
那没办法。就算撤单了,你在图表上也无法知晓。你用type也是一样的,它也是根据图表上信号来的。图表只管出信号,你执行的情况和它无关的。
那是不是直接用EXITBARS也一样,我看图表显示是一样的。还有一个问题,在图表上显示正常,但是改成后台就不开仓。
这是图表的开仓条件,显示正常:
YD:=REF(EXIST(L=LLV(L,10),EXITBARS),1);
YJD:=REF(L<=EXITPRICE-100*MINDIFF,BARSLAST(YD)+1);
开仓条件:=H>REF(H,1) AND YJD;
后台的,不开仓:
YD:=REF(EXIST(L=LLV(L,10),TEXITBARS),1);
YJD:=REF(L<=TEXITPRICE-100*MINDIFF,BARSLAST(YD)+1);
开仓条件:=H>REF(H,1) AND YJD;
图表和后台不是简单一个显示 一个不显示的差别。后台上是直接没有历史回测的信号的,不像图表会受到历史信号影响。所以你要是看单纯的指标计算,还有一定对比性,比如ma这种,但是涉及到需要历史信号的这种是肯定不能对比的。
你这里TEXITBARS 这个 必须是后台之前有过下单记录,它才有返回值,否则是不行的。所以你写后台代码的时候,必须考虑到之前没有进行过交易的初始情况。
我后台实际测试过程中,平仓后满足开仓条件也没有开仓,开仓条件就是上面的那个条件
后台里面你只能DEBUGFILE判断条件是否满足。其他方式都是不可靠有误判可能性的。
相关的变量你把它输出出来看下 才能判断问题所在。