复用标准rolling的交易日边界索引

This commit is contained in:
boris
2026-08-29 06:15:28 +08:00
parent c55caaf79b
commit 362d85773a
+5 -2
View File
@@ -1964,10 +1964,13 @@ impl DataSet {
volume_lookbacks: &[usize; 5],
include_now: bool,
) -> StandardRollingMeans {
// Both series are built from the same market-date sequence. Reuse the
// indexed boundary lookup instead of repeating it for close and volume.
let series_end = self.market_series_end_index_by_symbol_id(date, symbol_id, include_now);
let close = if close_lookbacks.iter().any(|lookback| *lookback > 0) {
self.adjusted_close_series_by_symbol_id(symbol_id)
.map(|series| {
self.market_series_end_index_by_symbol_id(date, symbol_id, include_now)
series_end
.map(|end| series.moving_averages_at_end(end, close_lookbacks))
.unwrap_or_else(|| series.moving_averages(date, close_lookbacks, include_now))
})
@@ -1978,7 +1981,7 @@ impl DataSet {
let volume = if volume_lookbacks.iter().any(|lookback| *lookback > 0) {
self.market_series_by_symbol_id(symbol_id)
.map(|series| {
self.market_series_end_index_by_symbol_id(date, symbol_id, include_now)
series_end
.map(|end| series.volume_moving_averages_at_end(end, volume_lookbacks))
.unwrap_or_else(|| {
series.volume_moving_averages(date, volume_lookbacks, include_now)