CrossOver 和CrossUnder 在t根bar和t+1根bar上穿和下穿同时出现时无法识别的问题

频率:30min

品种:al000

时间:2019.2.19

con = CrossOver(shortMA,longMA) Or CrossUnder(shortMA,longMA);

9:00 的bar中 short < long

9:30 的bar中 short >long 发生上穿 con为True

此前都没问题,问题在于:

10:00 的bar中 short<long 发生下穿 con应该是True 但判定为False

想咨询下各位大佬这是什么原因呢?

 

代码:
Params

    Numeric shortlen(14); 
    Numeric longlen(18);

Vars
    NumericSeries longMA;
    NumericSeries shortMA;
    bool con;             // bool变量
    
Begin
    longMA = Average(close, longlen);
    shortMA = Average(close, shortlen);
    con = CrossOver(shortMA,longMA) Or CrossUnder(shortMA,longMA);
    PlotBool("con",con);
    PlotNumeric("long", longMA);
    PlotNumeric("short", shortMA);


End

 

 

 

上穿问题
cross上穿对应的下穿是?
怎么避免一根bar同时出现做多 做空信号
一根bar同时开平仓问题
老师,当前bar均线值和上一根bar均线值的差值。 这个怎么写呀?
在同一根BAR上开平仓
关于上穿函数判断
关于在同一根BAR上反复开平仓的问题
清除上一根bar上通个plotstring输出的文本
能否在一根Bar上执行代码后延迟一小段时间再在下一根Bar上执行

con = CrossOver(shortMA,longMA) Or CrossUnder(shortMA,longMA);

序列类型使用问题

改成

con1 = CrossOver(shortMA,longMA);

con2 = CrossUnder(shortMA,longMA);

con = con1 or con2;

 

具体原因搜索序列类型相关的帖子和视频课程

感谢大佬!真的是这个原因!