修复退市生效日结算

This commit is contained in:
boris
2026-07-04 14:12:10 +08:00
parent 3e907d8e43
commit 14810708f0
3 changed files with 60 additions and 1 deletions
+1 -1
View File
@@ -3319,7 +3319,7 @@ where
let Some(instrument) = self.data.instrument(&symbol) else {
continue;
};
let should_settle = instrument.is_delisted_before(date)
let should_settle = instrument.is_delisted_on_or_before(date)
|| (instrument.status.eq_ignore_ascii_case("delisted")
&& instrument.delisted_at.is_none()
&& self.data.market(date, &symbol).is_none());
+5
View File
@@ -40,6 +40,11 @@ impl Instrument {
.is_some_and(|delisted_at| delisted_at < date)
}
pub fn is_delisted_on_or_before(&self, date: NaiveDate) -> bool {
self.delisted_at
.is_some_and(|delisted_at| delisted_at <= date)
}
pub fn is_active_on(&self, date: NaiveDate) -> bool {
self.listed_at.is_none_or(|listed_at| listed_at <= date)
&& !self.is_delisted_before(date)