diff --git a/backend/signal_engine.py b/backend/signal_engine.py index 126775f..21e3840 100644 --- a/backend/signal_engine.py +++ b/backend/signal_engine.py @@ -291,6 +291,7 @@ class SymbolState: self.win_vwap = TradeWindow(WINDOW_VWAP) self.atr_calc = ATRCalculator() self.last_processed_id = 0 + self.last_trade_price = 0.0 self.warmup = True self.prev_cvd_fast = 0.0 self.prev_cvd_fast_slope = 0.0 @@ -312,6 +313,7 @@ class SymbolState: self.win_day.trim(now_ms) self.win_vwap.trim(now_ms) self.last_processed_id = agg_id + self.last_trade_price = price # 最新成交价,用于entry_price def compute_p95_p99(self) -> tuple: if len(self.win_day.trades) < 100: @@ -346,7 +348,7 @@ class SymbolState: atr_pct = self.atr_calc.atr_percentile p95, p99 = self.compute_p95_p99() self.update_large_trades(now_ms, p99) - price = vwap if vwap > 0 else 0 + price = self.last_trade_price if self.last_trade_price > 0 else vwap # 用最新成交价,非VWAP cvd_fast_slope = cvd_fast - self.prev_cvd_fast cvd_fast_accel = cvd_fast_slope - self.prev_cvd_fast_slope self.prev_cvd_fast = cvd_fast