From a368fd5d7f072298db4dcfbda7d7f7a5e0885350 Mon Sep 17 00:00:00 2001 From: boris Date: Sun, 21 Jun 2026 00:37:51 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9F=AD=E8=B7=AF=E9=A2=84=E8=AE=A1=E7=AE=97ro?= =?UTF-8?q?lling=E5=9B=A0=E5=AD=90=E8=AF=BB=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crates/fidc-core/src/platform_expr_strategy.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/crates/fidc-core/src/platform_expr_strategy.rs b/crates/fidc-core/src/platform_expr_strategy.rs index 635cbab..1b7c78b 100644 --- a/crates/fidc-core/src/platform_expr_strategy.rs +++ b/crates/fidc-core/src/platform_expr_strategy.rs @@ -2149,12 +2149,15 @@ impl PlatformExprStrategy { lookback: usize, ) -> Option { let precomputed = precomputed_stock_rolling_mean(extra_factors, field, lookback); - let computed = ctx - .data - .market_decision_numeric_moving_average(date, symbol, field, lookback); if self.config.prefer_precomputed_rolling_factors { - precomputed.or(computed) + precomputed.or_else(|| { + ctx.data + .market_decision_numeric_moving_average(date, symbol, field, lookback) + }) } else { + let computed = ctx + .data + .market_decision_numeric_moving_average(date, symbol, field, lookback); computed.or(precomputed) } }