日线级别截面策略尾盘OnBarClose调仓时是否会出现信号闪烁的问题?

在多图层的商品截面策略中,日线级别,如果参考OnBarClose示例。

我希望是每日尾盘收盘前发单调仓。

但是会因为每个品种每日开盘时间的不一样,有3次不同的开盘时间:21:00, 9:00和国债9:30。

如图最后一根bar,早开盘的品种执行了OnBarClose里的内容:PlotNumeric("MA1",AvgValue1);  PlotNumeric("MA2",AvgValue2);

这样是否会因为9:00,9:30不同开盘时间发生信号闪烁误下单?按理说OnBarOpen定义了执行的时间,有点糊涂了。


Params
    Numeric FastLength(5);// 短期指数平均线参数
    Numeric SlowLength(20);// 长期指数平均线参数  
Vars
    Series<Numeric> AvgValue1; 
    Series<Numeric> AvgValue2;
Events
    //每根BAR开始的时候设置触发时间点
    OnBarOpen(ArrayRef<Integer> indexes)
    {
		Range[0:DataSourceSize()-1]
		{
			Numeric advancesec(10); //提前多少秒
			Array<Numeric> timePoint;
			Numeric ret = DateTimeAdd(RealEndDateTime, -1*advancesec);
			ret = StringToTime(TimeToString(ret));
			Print("endtime="+text(RealEndDateTime)+" SetTriggerBarClose:" + Text(ret));
			ArrayPushBack(timePoint, ret);
			SetTriggerBarClose(timePoint);
        }
    }
    OnBarClose(ArrayRef<Integer> indexs)
    {
		Range[0:DataSourceSize()-1]
		{
			AvgValue1 = AverageFC(Close,FastLength);
			AvgValue2 = AverageFC(Close,SlowLength);
			PlotNumeric("MA1",AvgValue1);
			PlotNumeric("MA2",AvgValue2);        
			If(MarketPosition <>1 && AvgValue1 > AvgValue2)
			{
				Buy(0,Close);
			}
			If(MarketPosition <>-1 && AvgValue1 < AvgValue2)
			{
				SellShort(0,Close);
			}
        }   
    }


截面策略日线级别闪烁,是哪里的问题
多周期策略出现信号闪烁问题。
请教定时开平仓出现信号闪烁的问题
横截面策略轮动开仓的问题
日线多品种交易信号闪烁的问题
日线模型信号闪烁问题
回测无信号闪烁,实盘中出现信号问题。
策略自动交易,开仓信号闪烁,先出现,最后再消失
如何在日线级别做双均线买入卖出策略,在tick级别做跟踪止损
信号闪烁问题

getsessionendtime


我暂时想到的解决办法是:


If(0.1430 < CurrentTime() Or CurrentBar + 1 < BarCount)
{
    If(MarketPosition <>1 && AvgValue1 > AvgValue2)
	{
		Buy(0,Close);
	}
	If(MarketPosition <>-1 && AvgValue1 < AvgValue2)
	{
		SellShort(0,Close);
	}
}


0.1430 < CurrentTime()用于实盘防止9:00, 9:15发生的信号闪烁


CurrentBar + 1 < BarCount用于历史回测

请教一下这样能够解决我的问题么,以及还有什么好的解决方法么?