fix(strategy): require exact feature-date market snapshots
This commit is contained in:
@@ -1043,7 +1043,6 @@ impl<'a> StockStateSnapshotSource<'a> for IndexedStockStateSnapshotSource<'a> {
|
|||||||
}
|
}
|
||||||
self.data
|
self.data
|
||||||
.market_by_symbol_id(self.factor_date, symbol_id)
|
.market_by_symbol_id(self.factor_date, symbol_id)
|
||||||
.or_else(|| self.execution_market(symbol_id))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn factor(&self, symbol_id: u32) -> Option<&'a DailyFactorSnapshot> {
|
fn factor(&self, symbol_id: u32) -> Option<&'a DailyFactorSnapshot> {
|
||||||
@@ -1072,7 +1071,6 @@ impl<'a> StockStateSnapshotSource<'a> for ViewStockStateSnapshotSource<'a, '_> {
|
|||||||
}
|
}
|
||||||
self.factor
|
self.factor
|
||||||
.market(symbol_id)
|
.market(symbol_id)
|
||||||
.or_else(|| self.execution_market(symbol_id))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn factor(&self, symbol_id: u32) -> Option<&'a DailyFactorSnapshot> {
|
fn factor(&self, symbol_id: u32) -> Option<&'a DailyFactorSnapshot> {
|
||||||
@@ -4743,7 +4741,6 @@ impl PlatformExprStrategy {
|
|||||||
symbol: symbol.to_string(),
|
symbol: symbol.to_string(),
|
||||||
})
|
})
|
||||||
})?;
|
})?;
|
||||||
let feature_market = source.feature_market(symbol_id).unwrap_or(market);
|
|
||||||
let factor = source.factor(symbol_id).ok_or_else(|| {
|
let factor = source.factor(symbol_id).ok_or_else(|| {
|
||||||
BacktestError::Data(crate::data::DataSetError::MissingSnapshot {
|
BacktestError::Data(crate::data::DataSetError::MissingSnapshot {
|
||||||
kind: "factor",
|
kind: "factor",
|
||||||
@@ -4751,6 +4748,13 @@ impl PlatformExprStrategy {
|
|||||||
symbol: symbol.to_string(),
|
symbol: symbol.to_string(),
|
||||||
})
|
})
|
||||||
})?;
|
})?;
|
||||||
|
let feature_market = source.feature_market(symbol_id).ok_or_else(|| {
|
||||||
|
BacktestError::Data(crate::data::DataSetError::MissingSnapshot {
|
||||||
|
kind: "feature_market",
|
||||||
|
date: factor_date,
|
||||||
|
symbol: symbol.to_string(),
|
||||||
|
})
|
||||||
|
})?;
|
||||||
let intraday_same_day_factor = self.uses_intraday_execution_quotes()
|
let intraday_same_day_factor = self.uses_intraday_execution_quotes()
|
||||||
&& factor_date == date
|
&& factor_date == date
|
||||||
&& !ctx.is_lagged_execution();
|
&& !ctx.is_lagged_execution();
|
||||||
|
|||||||
Reference in New Issue
Block a user