基金转换 T+1 模型:T-13 convert_fund 退役 + 并发面重写 + 全量门禁(830 绿 / 真库 9/9 / 紧池 100%)

This commit is contained in:
2026-09-12 11:52:27 +08:00
parent 9ad8a90de1
commit 3bc84a093d
7 changed files with 460 additions and 1782 deletions
+5 -3
View File
@@ -189,11 +189,12 @@ def assert_subscribe(admin, writer, core) -> None:
def assert_redeem_fifo(admin, writer, core) -> None:
print("【B/C】赎回 FIFO 扣减(★ 真库验证 `(:q + 0.0)` 方言语义)")
# 120 元 ÷ 1.0 = 120 份 → C1 扣满 100 归零,C2 再扣 20
# D26/R-6(T-9 起):赎回**份额申报**——直接申报 120 份 → C1 扣满 100 归零,C2 再扣 20
# (T-13 全量复跑修正:v1.0 的 amount= 入参会被 redeem 分支静默跳过)
_maintain_lots(
writer=writer, core=core, trade_id="TRD-LOTT-RED",
customer_id=CUSTOMER, product_id=PROD_REDEEM,
trade_type="redeem", amount=Decimal("120"), traded_at=TRADE_AT,
trade_type="redeem", qty=Decimal("120"), traded_at=TRADE_AT,
)
check(
"C1(最老批)remain_qty 归零 —— 扣减真库生效",
@@ -220,10 +221,11 @@ def assert_redeem_fifo(admin, writer, core) -> None:
def assert_bootstrap(admin, writer, core) -> None:
print("【D】D8 兜底补建:无批次有持仓 → 按 as_of 补建后再扣")
# D26/R-6:赎回份额申报(v1.0 的 amount= 入参会被 redeem 分支静默跳过)
_maintain_lots(
writer=writer, core=core, trade_id="TRD-LOTT-BOOT",
customer_id=CUSTOMER, product_id=PROD_BOOT,
trade_type="redeem", amount=Decimal("30"), traded_at=TRADE_AT,
trade_type="redeem", qty=Decimal("30"), traded_at=TRADE_AT,
)
check(
"补建批次行数",