hjhan
|
ce6c0812e1
|
refactor(accrual): 参数命名对齐业界标准(QuantLib/Strata)
FundingLegAccrual 4个方法的参数命名全面纠正:
| 旧名 | 新名 | 理由 |
|-------------------|-------------------|------|
| originalPv | referenceNotional | Pv(现值)概念错误,实际是参考本金 |
| closeRatio/closePercent | unwindFraction | 统一,对齐 ApplyUnwind.unwindPercent |
| consumedInterest | realizedInterest | 对齐 AccrualState.RealizedInterest |
| priorUnrealized | priorAccrued | 对齐 InterestResult.Accrued |
| priorAccrualPrincipal | priorNotional | 简洁,对齐 QuantLib notional |
| positionPrincipal | notional | 简化,去掉冗余前缀 |
| dynomicPrincipal | accrualBasis | 修正typo+用业界术语 |
同步更新:
- SwapDealService.CalcDailySimpleInterestByEod 调用点
- 3个影子测试文件命名参数
- SwapInterest.Round 改为 public(所有Round收口一处)
删除半成品残留: SwapInterest_CompoundInArrears_RolloverTimingTests.cs
验证: 编译0错误, 7个影子测试全过, 全量520测试7失败(基线一致)。
|
2026-08-12 10:11:26 +08:00 |
|
hjhan
|
963b5e66af
|
feat(accrual): 新增 AccrueSimplePeriod + 影子测试
第2步迁移: CalcDailySimpleInterest(盘中单利多日)。
新增纯函数 AccrueSimplePeriod:
- 单利特征: 计息本金恒定(差分 = priorAccrualPrincipal + positionPrincipal - originalPv)
- 按重置日分段, 每段用 AccrualDays 算天数×日利息(无逐日循环)
- 续接 priorValueDate 之后的日期
修复: SwapInterest.Round 是 private, 新方法改用 Math.Round。
修复: IReadOnlyList 无 IndexOf, 改用 for 循环索引。
影子测试(2个,全过):
- 固定利率无归档: 旧新一致(差分本金=0,利息=0,符合旧逻辑)
- 有归档续接+部分平仓50%: 旧新一致
验证: 编译0错误, 全量517测试7失败(基线一致)。
|
2026-08-12 09:27:20 +08:00 |
|