该窗口不依赖固定大小的队列,而是基于时间戳动态淘汰,确保窗口始终覆盖最新的 N 分钟数据,且不受采样频率波动的影响。3.2 双重峰值记忆机制除了窗口内的全局最大值,算法还维护一个“突破后峰值”(peakProfitSinceBreakout),用于跟踪自上次创下窗口新高以来的最大利润。这样设计的原因是:窗口最大值是静态参考,而“突破后峰值”是动态追踪器,它只从“创新高”的那一刻开始记录后续的最高点。当利润再次创新高时,该峰值会被重置为当前值,从而重新开始回撤计数。
这一机制确保了回撤计算的起点始终是最近一次利润突破窗口高点的时刻,避免了因窗口滚动而导致峰值突然下降(旧高点被淘汰)所造成的虚警。3.3 触发条件与状态机整个逻辑可建模为一个有限状态机,包含两个核心状态:未上膛(Disarmed):初始状态,或在触发后、手动复位后进入。在此状态下,算法只跟踪窗口最大值,不监控回撤,也不产生任何触发信号。已上膛(Armed):当当前利润达到或超过窗口最大值(即创下 N 分钟新高)时,状态切换至“已上膛”。此时,算法开始追踪“突破后峰值”,并持续计算当前回撤幅度(突破后峰值 - 当前利润)。