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 } }