关于onbarclose开仓信号的触发问题


描述:我所有的开仓信号都是在 onbarclose() 域完成,另外设置了定时器 每个小节点提前3秒开;白糖SR000在120分钟运行策略(K线 自然分割)


定时器如下:

        Array<Numeric> timePoint;
		Integer i;
		Print("GetSessionCount: " + Text(GetSessionCount));

		For i = 0 To GetSessionCount() - 1
		{
			Print("GetSessionEndTime: " + Text(GetSessionEndTime(i),6));               
			Numeric ret = DateTimeAdd(GetSessionEndTime(i), -3);

			if(ret < 0)
			{
				ret = DateTimeAdd(GetSessionEndTime(i), 86400 - 1);
			}
			ret = StringToTime(TimeToString(ret));
			Print("SetTriggerBarClose: " + Text(ret));
			ArrayPushBack(timePoint, ret);
		}
		Print("tarryszie: " + text(GetArraySize(timePoint))+"; arrytime: "+ TextArray(timePoint));
		
		If(True) SetTriggerBarClose(timePoint);  // 按小节 
		
		
		Print("------");


问题:

为什么会存在 11:24:38 开仓的信号?而且提示“闪烁”

预期应该在 11:29:57 开


商品名称	委托时间	委托价格	状态	买卖	开平	委托数量	成交数量	成交价	成交额	剩余数量	对手价	理论价	委托编号	委托来源	状态消息
白糖605	2026/03/16 11:24:38	5483	全部成交	买入	开仓	21	21	5473	1,149,330	0	5473	5473	100002	 
时间	消息类型	消息级别	内容
2026-03-16 11:24:42.241	策略运行	警告	策略运行,S03@myunit@SR000_M120发生信号闪烁,合约:SR000.CZCE,上次执行信号个数:1,本次执行信号个数:0,发生Bar时间:20260316.100000,发生Bar=5005


关于 OnBarClose
关于OnBarClose()回溯的问题
实盘交易跨周期OnBarClose触发问题
OnBarClose的触发时间和设置的触发时间点不一致
OnBarClose设置提前触发,有提前触发却没有发出委托
关于OnBarClose
怎么实现在K线收盘前几秒触发OnBarClose
全新事件收盘价触发onbarclose即将上线
关于日内收盘最后一根bar的OnBarClose
OnBarClose模式的一个问题

希望大家看看是否遇到类似问题~

你要这么说的话

镍也不对吧


应该是时间切片的问题

起码最小的切片

能够和Close的时间点配合上


120分钟

绝大多数收盘都不在你划分的时间点上?

不是的,有的品种周期有区别,但都是正规的分钟数 如:60/120分钟

有没有叠加合约?


单图层,单品种,单策略

如果仅仅是差几秒,可能是本地时间问题。但是差了好几分钟。。。正常自然时间分割 120分钟线