有一个问题,如果是遇到金叉就清空死叉的统计 或者遇到死叉就清空金叉的统计,那就有一个问题了。金叉和死叉是必然交替出现的,出现一个金叉之后必然要再过过一次死叉才能出现下一个金叉。 你这统计毫无意义了都。
只能交替输出上一次金叉或者死叉间隔数,或者累计金叉(死叉)数目,如果输出连续的金叉数目或者死叉数,那就是恒为1。
//指标
MA5:MA(C,5);
MA10:MA(C,10);
//金叉死叉
JX:CROSS(MA5,MA10);
SX:CROSS(MA10,MA5);
Lastsc:ref(BARSLAST(SX),1); //上一个死叉的K线位置
Lastjc:ref(BARSLAST(JX),1);
//标记死叉位置
jccount:count(JX,0);//目前为止累计金叉数目
sccount:count(SX,0);
str1:'上次金叉:'+NUMTOSTR(Lastjc,0);
str2:'上次死叉:'+NUMTOSTR(Lastsc,0);
DRAWTEXT(JX or SX,L ,if(JX,str1,str2));
//指标 str1:'上次金叉:'+NUMTOSTR(Lastjc,0); DRAWTEXT(JX or SX,L ,if(JX,str1,str2)); 你这样标记死叉延后了2个Bar,我那样标记就是在当时出现死叉时候的位置,老师,你这样标记死叉的位置的理由是??? |
原本思路是当死叉的时候 显示上次死叉位置。那个没有延2个BAR,是延迟一个BAR,忘记改了。因为如果在当前死叉位置使用barslast(死叉)返回值是0,这样就无法获取上次死叉位置了。
这里改下:
Lastsc:ref(BARSLAST(SX),1)+1,NODRAW; //上一个死叉的K线位置
Lastjc:ref(BARSLAST(JX),1)+1,NODRAW;