怎么实现在K线收盘前几秒触发OnBarClose

怎么实现在K线收盘前几秒触发OnBarClose我像下面这样写的,还不行,请指点一下 OnInit() { } OnReady() { Range[0:DataCount-1] { Array<String> TimeArr; //各个交易时段提前秒数 ArrayPushBack(TimeArr,\"22:59:55\"); //夜盘收盘(0.2300)K线收盘前10秒触发 ArrayPushBack(TimeArr,\"10:14:55\"); //早盘收盘(0.1015)K线收盘前10秒触发 ArrayPushBack(TimeArr,\"11:29:55\"); //午盘收盘(0.1130)K线收盘前10秒触发 ArrayPushBack(TimeArr,\"14:59:55\"); //日盘收盘(0.1500)K线收盘前10秒触发 Array<Numeric> timePoint; Integer i; Print(\"GetSessionCount:\" + Text(GetSessionCount)); For i = 0 To GetSessionCount() - 1 { Numeric ret = StringToTime(TimeArr[i]); Print(\"SetTriggerBarClose:\" + Text(ret)); ArrayPushBack(timePoint, ret); } SetTriggerBarClose(timePoint); } //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组 OnBarClose(ArrayRef<Integer> indexs) { PlotBool(\"收盘触发\",True); If (BarStatus==2) Print(\"收盘触发时间:\"+Text(Time())); If (Close>Open) { Buy(0,Close); } If (Close<Open) { SellShort(0,Close); } }

我有另外一个思路,不知是否可行,比如找一个10秒线活跃的品种,当天最后一根10秒开盘时,发布消息广播,各策略接收到消息后,执行平仓动作,供参考

ArrayPushBack(TimeArr,\"22:59:55\"); //夜盘收盘(0.2300)K线收盘前10秒触发 ArrayPushBack(TimeArr,\"10:14:55\"); //早盘收盘(0.1015)K线收盘前10秒触发 ArrayPushBack(TimeArr,\"11:29:55\"); //午盘收盘(0.1130)K线收盘前10秒触发 ArrayPushBack(TimeArr,\"14:59:55\"); 你这个四个时间点,对应的是哪根bar,这根bar就会在机器时间到底对应的时间点后开始运行onbarclose。这个在onbarclose事件域的教学里应该已经说得很清楚了。不知道你所谓的不能运行是怎么写的

回复:感谢老师指点,通过学习已经深得其精髓!