From c1e7fc91e401cf9e153f75f8747689472962bc3b Mon Sep 17 00:00:00 2001 From: boris Date: Fri, 28 Aug 2026 15:15:18 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B7=B3=E8=BF=87=E6=97=A0=E9=9C=80=E6=B1=82?= =?UTF-8?q?=E7=9A=84=E6=BB=9A=E5=8A=A8=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crates/fidc-core/src/data.rs | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/crates/fidc-core/src/data.rs b/crates/fidc-core/src/data.rs index afa89f4..74d953c 100644 --- a/crates/fidc-core/src/data.rs +++ b/crates/fidc-core/src/data.rs @@ -1966,14 +1966,20 @@ impl DataSet { volume_lookbacks: &[usize; 5], include_now: bool, ) -> StandardRollingMeans { - let close = self - .adjusted_close_series_by_symbol_id(symbol_id) - .map(|series| series.moving_averages(date, close_lookbacks, include_now)) - .unwrap_or([None; 7]); - let volume = self - .market_series_by_symbol_id(symbol_id) - .map(|series| series.volume_moving_averages(date, volume_lookbacks, include_now)) - .unwrap_or([None; 5]); + let close = if close_lookbacks.iter().any(|lookback| *lookback > 0) { + self.adjusted_close_series_by_symbol_id(symbol_id) + .map(|series| series.moving_averages(date, close_lookbacks, include_now)) + .unwrap_or([None; 7]) + } else { + [None; 7] + }; + let volume = if volume_lookbacks.iter().any(|lookback| *lookback > 0) { + self.market_series_by_symbol_id(symbol_id) + .map(|series| series.volume_moving_averages(date, volume_lookbacks, include_now)) + .unwrap_or([None; 5]) + } else { + [None; 5] + }; StandardRollingMeans { close, volume } }