跳过无需求的滚动计算

This commit is contained in:
boris
2026-08-28 15:15:18 +08:00
parent 56511f9d15
commit c1e7fc91e4
+14 -8
View File
@@ -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 }
}