fix: entry_price改用最新成交价(last_trade_price)而非VWAP
VWAP是30分钟加权均价,快速行情下与实际价偏差可达1-2% 历史587笔entry_price+596笔pnl_r已用agg_trades真实价修正 平均偏差31.9bps, 最大189.4bps(1.9%) V5.1: 42.18R→15.32R | V5.2: 29.83R→0.76R
This commit is contained in:
parent
66b094c711
commit
262594f16e
@ -291,6 +291,7 @@ class SymbolState:
|
|||||||
self.win_vwap = TradeWindow(WINDOW_VWAP)
|
self.win_vwap = TradeWindow(WINDOW_VWAP)
|
||||||
self.atr_calc = ATRCalculator()
|
self.atr_calc = ATRCalculator()
|
||||||
self.last_processed_id = 0
|
self.last_processed_id = 0
|
||||||
|
self.last_trade_price = 0.0
|
||||||
self.warmup = True
|
self.warmup = True
|
||||||
self.prev_cvd_fast = 0.0
|
self.prev_cvd_fast = 0.0
|
||||||
self.prev_cvd_fast_slope = 0.0
|
self.prev_cvd_fast_slope = 0.0
|
||||||
@ -312,6 +313,7 @@ class SymbolState:
|
|||||||
self.win_day.trim(now_ms)
|
self.win_day.trim(now_ms)
|
||||||
self.win_vwap.trim(now_ms)
|
self.win_vwap.trim(now_ms)
|
||||||
self.last_processed_id = agg_id
|
self.last_processed_id = agg_id
|
||||||
|
self.last_trade_price = price # 最新成交价,用于entry_price
|
||||||
|
|
||||||
def compute_p95_p99(self) -> tuple:
|
def compute_p95_p99(self) -> tuple:
|
||||||
if len(self.win_day.trades) < 100:
|
if len(self.win_day.trades) < 100:
|
||||||
@ -346,7 +348,7 @@ class SymbolState:
|
|||||||
atr_pct = self.atr_calc.atr_percentile
|
atr_pct = self.atr_calc.atr_percentile
|
||||||
p95, p99 = self.compute_p95_p99()
|
p95, p99 = self.compute_p95_p99()
|
||||||
self.update_large_trades(now_ms, 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_slope = cvd_fast - self.prev_cvd_fast
|
||||||
cvd_fast_accel = cvd_fast_slope - self.prev_cvd_fast_slope
|
cvd_fast_accel = cvd_fast_slope - self.prev_cvd_fast_slope
|
||||||
self.prev_cvd_fast = cvd_fast
|
self.prev_cvd_fast = cvd_fast
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user