求助为什么回测时既不执行开仓也不执行平仓呢

//------------------------------------------------------------------------ // 简称: TimeBasedStrategy_FU // 名称: 燃料油固定时间开盘价突破策略(可回测版) // 类别: 公式应用 // 类型: 用户应用 // 输出: Void //------------------------------------------------------------------------ Params Numeric Lots(1); // 开仓手数 Numeric NightOpenTime(2240); // 夜盘开仓K线开始时间:22:40 Numeric NightCloseTime(2300); // 夜盘平仓K线开始时间:23:00(用Time判断) Numeric DayOpenTime(1445); // 日盘开仓K线开始时间:14:45 Numeric DayCloseTime(1500); // 日盘平仓K线开始时间:15:00 Vars Numeric LastBarTime; // 上一根K线的时间 Bool NightOpenFlag; Bool DayOpenFlag; Bool NightCloseFlag; Bool DayCloseFlag; Bool HasClosed; // 防止同一时刻重复平仓 Events OnBar(ArrayRef<Integer> indexs) { Range[0:DataCount()-1] { LastBarTime = Time[1]; // ========== 开仓标志 ========== NightOpenFlag = (LastBarTime == NightOpenTime); DayOpenFlag = (LastBarTime == DayOpenTime); // ========== 平仓标志(使用Time + BarStatus确保在K线结束时触发) ========== NightCloseFlag = (Time == NightCloseTime && BarStatus == 2); DayCloseFlag = (Time == DayCloseTime && BarStatus == 2); // ========== 夜盘开仓(22:40 K线走完) ========== If(MarketPosition == 0 && NightOpenFlag) { If(Close[1] > Open[1]) { Buy(Lots, Open); Commentary("夜盘开多,开仓价=" + Text(Open)); } Else If(Close[1] < Open[1]) { SellShort(Lots, Open); Commentary("夜盘开空,开仓价=" + Text(Open)); } } // ========== 日盘开仓(14:45 K线走完) ========== If(MarketPosition == 0 && DayOpenFlag) { If(Close[1] > Open[1]) { Buy(Lots, Open); Commentary("日盘开多,开仓价=" + Text(Open)); } Else If(Close[1] < Open[1]) { SellShort(Lots, Open); Commentary("日盘开空,开仓价=" + Text(Open)); } } // ========== 夜盘平仓(以23:00收盘K线的收盘价平仓) ========== // 使用 Close 作为平仓价(该K线的收盘价),若担心成交问题可换为 Open If(MarketPosition != 0 && NightCloseFlag && !HasClosed) { If(MarketPosition == 1) { Sell(0, Close); // 以收盘价平多(回测用Close,实盘可配合委托偏移) Commentary("夜盘平多,平仓价=" + Text(Close)); } Else If(MarketPosition == -1) { BuyToCover(0, Close); Commentary("夜盘平空,平仓价=" + Text(Close)); } HasClosed = True; } // ========== 日盘平仓(以15:00收盘K线的收盘价平仓) ========== If(MarketPosition != 0 && DayCloseFlag && !HasClosed) { If(MarketPosition == 1) { Sell(0, Close); Commentary("日盘平多,平仓价=" + Text(Close)); } Else If(MarketPosition == -1) { BuyToCover(0, Close); Commentary("日盘平空,平仓价=" + Text(Close)); } HasClosed = True; } // ========== 跨交易日重置平仓标志 ========== If(Date != Date[1]) { HasClosed = False; } } }

你这是啥也没学就靠AI写个小玩意就来提问啊!