就一个品种图表工作区信号与系统信号不一致

2个数据单元,一个15分钟周期,一个120分钟周期; 2小时周期,2线大于100线,15分钟周期金叉,做多,反之做空,这样写为什么信号会和委托不一致,是信号闪烁导致的吗?这样写信号会闪烁吗? 2026年1月08日,白糖指数在13:30:01分后出现情况,图表中未出现信号,但是还是发出了委托。看图形是白糖指数在2小时线上有上下的问题,但是我这样写应该是看前一根2小时确定的吧?为什么还是会出现闪烁呢?还请大神帮忙看下代码,代码如下:Params//此处添加参数Numeric LongNum1(2);Numeric LongNum2(100);Numeric ShortNum1(2);Numeric ShortNum2(15);Vars//此处添加变量Series<Numeric> AvgLong1;Series<Numeric> AvgLong2;Series<Numeric> AvgShort1;Series<Numeric> AvgShort2;Bool con1(False);Bool con2(False);Bool con3(False);Bool con4(False);//Bar更新事件函数,参数indexs表示变化的数据源图层ID数组OnBar(ArrayRef<Integer> indexs){ AvgLong1 = Data1.AverageFC(Data1.Close,LongNum1);AvgLong2 = Data1.AverageFC(Data1.Close,LongNum2);AvgShort1 = AverageFC(Close,ShortNum1);AvgShort2 = AverageFC(Close,ShortNum2);con1 = CrossOver(AvgShort1[1],AvgShort2[1]);con2 = CrossUnder(AvgShort1[1],AvgShort2[1]);con3 = CrossOver(AvgLong1[1],AvgLong2[1]);con4 = CrossUnder(AvgLong1[1],AvgLong2[1]);//开仓If(MarketPosition == 0 && AvgLong1[1]>AvgLong2[1] && con1){Buy(lots,Open);}If(MarketPosition == 0 && AvgLong1[1]<AvgLong2[1] && con2){SellShort(lots,Open);}//平仓if(MarketPosition > 0 && con4 && BarsSinceEntry > 0 ){Sell(0,Open);}If(MarketPosition < 0 && (con3 && BarsSinceEntry > 0){BuyToCover(0,Open);} }

常规的情况先用range计算完所有图层的技术指标再进行条件判断---------------------------------------然后你这里处理方法,最快的就是AvgLong1 = Data1.AverageFC(Data1.Close,LongNum1);AvgLong2 = Data1.AverageFC(Data1.Close,LongNum2);你里面data1.close没有回溯AvgLong1 = Data1.AverageFC(Data1.Close[1],LongNum1);

回复:但是我在con3和con4里面有回溯con3 = CrossOver(AvgLong1[1],AvgLong2[1]);con4 = CrossUnder(AvgLong1[1],AvgLong2[1]);你的意思是,我取的是实时的Data1数据,没取到回溯的吗?

回复:嗯 你这种写法 AvgLong1 是在data0上的。 你只是在data0上回溯的一格,data1的close大概率是没有回溯