为什么我的策略没有出现交易买卖信号

请各位大神帮看一下我的代码策略,现在的问题是没有出现交易信号,请帮看一下问题所在,万分感激!代码如下:arams Numeric LookBackPeriod(20); // 通道周期 Numeric TakeProfitPoints(30); // 止盈点数 Numeric FilterPoints(1); // 突破过滤点数 Vars // 通道变量 Series<Numeric> ChannelHigh; Series<Numeric> ChannelLow; // 信号变量 Bool CrossBelowLower; Bool CrossAboveUpper; // 交易管理 Numeric EntryPrice; Numeric PostEntryHigh; // 多单持仓最高价 Numeric PostEntryLow; // 空单持仓最低价 // 趋势状态 Bool LongTrend; Bool ShortTrend; // 通用变量 Numeric MinPoint; // 最小变动值 Numeric FilterValue; // 过滤阈值 Events OnInit() { MinPoint = MinMove * PriceScale; FilterValue = FilterPoints * MinPoint; LongTrend = False; ShortTrend = False; } OnBar(ArrayRef<Integer> indexs) { // 数据不足时返回 If (CurrentBar < LookBackPeriod) Return; // 计算价格通道(修正偏移) ChannelHigh = Highest(High, LookBackPeriod); ChannelLow = Lowest(Low, LookBackPeriod); // === 信号检测(实时计算)=== // 使用Close价检测突破,避免盘中假信号[1](@ref)[5](@ref) CrossBelowLower = low < (ChannelLow[1] - FilterValue); CrossAboveUpper = High > (ChannelHigh[1] + FilterValue); // === 初始开仓 === If (MarketPosition == 0) { If (CrossAboveUpper) { Buy(1, Open); EntryPrice = Open; PostEntryHigh = High; LongTrend = True; ShortTrend = False; Commentary("初始开多仓 @" + Text(Open)); } Else If (CrossBelowLower) { SellShort(1, Open); EntryPrice = Open; PostEntryLow = Low; ShortTrend = True; LongTrend = False; Commentary("初始开空仓 @" + Text(Open)); } Return; } // === 持仓管理 === If (MarketPosition != 0) { // 更新持仓极值[3](@ref) If (MarketPosition == 1) { PostEntryHigh = Max(PostEntryHigh, High); } Else { PostEntryLow = Min(PostEntryLow, Low); } // === 止盈检查 === If (MarketPosition == 1) { If (High >= EntryPrice + TakeProfitPoints*MinPoint) { Sell(0, Max(Open, EntryPrice + TakeProfitPoints*MinPoint)); //ResetTrendState(); Commentary("多单止盈触发 @" + Text(Max(Open, EntryPrice + TakeProfitPoints*MinPoint))); Return; } } Else If (MarketPosition == -1) { If (Low <= EntryPrice - TakeProfitPoints*MinPoint) { BuyToCover(0, Min(Open, EntryPrice - TakeProfitPoints*MinPoint)); //ResetTrendState(); Commentary("空单止盈触发 @" + Text(Min(Open, EntryPrice - TakeProfitPoints*MinPoint))); Return; } } // === 反转信号处理 === // 多转空(原子操作)[6](@ref)[8](@ref) If (CrossBelowLower && LongTrend) { Sell(0, Open); // 平多仓 SellShort(1, Open); // 开空仓 EntryPrice = Open; PostEntryLow = Low; LongTrend = False; ShortTrend = True; Commentary("多转空 @" + Text(Open)); Return; } // 空转多(原子操作) If (CrossAboveUpper && ShortTrend) { BuyToCover(0, Open); // 平空仓 Buy(1, Open); // 开多仓 EntryPrice = Open; PostEntryHigh = High; ShortTrend = False; LongTrend = True; Commentary("空转多 @" + Text(Open)); Return; } } // === 可视化 === PlotNumeric("通道上轨", ChannelHigh); PlotNumeric("通道下轨", ChannelLow); } // 重置趋势状态函数 //Void ResetTrendState()

哪家ai写的很简单的逻辑错误我不可能比我自己高我也不可能比我自己低

回复:😂

回复:帮改一改可以吗?

回复:这里的high和low 后面都加上[1]回溯一根至于改完之后是不是你要的效果,不能保证

回复:谢谢,这个我已经改过了。但是还是有其它的问题

回复:不是没信号,你把时间拉到图表最前面,是有信号的。但是开了空以后,就平不了空,导致后面就出不了信号了你应该研究一下为什么触发不了平空条件