修正退市持仓虚假现金兑付

This commit is contained in:
boris
2026-07-15 20:48:17 +08:00
parent d63ac73903
commit e7d1c875fd
3 changed files with 50 additions and 98 deletions
+12
View File
@@ -698,6 +698,18 @@ impl PortfolioState {
) -> Result<(), DataSetError> {
let day_sold_symbols = self.day_sold_symbols.clone();
for position in self.positions.values_mut() {
let current_market_missing = data.market(date, &position.symbol).is_none();
let unresolved_delisting = current_market_missing
&& data.instrument(&position.symbol).is_some_and(|instrument| {
instrument.is_delisted_on_or_before(date)
|| (instrument.status.eq_ignore_ascii_case("delisted")
&& instrument.delisted_at.is_none())
});
if unresolved_delisting {
position.last_price = 0.0;
position.refresh_day_pnl();
continue;
}
let sold_today =
position.sold_quantity() > 0 || day_sold_symbols.contains(&position.symbol);
if same_day_buy_close_mark_at_fill