refactor(accrual): EOD去退化差分——删除baseNotional死参数
EOD路径 orginPv≡posiPrincipal(调用点line1091/1096实证),notional==baseNotional恒成立, 差分项 notional-baseNotional 恒为0,baseNotional 是死参数。 简化: - AccrueSimpleEod: 删 notional+baseNotional 两参数,basis=priorNotional 直赋值 - AccrueCompoundEod: 删 baseNotional 参数,非重置日 basis=priorNotional - SimpleEodBasis 整个删除(不再需要) - CompoundEodBasis 去掉 baseNotional 参数 - EodContext trace 去掉 baseNotional - 差分注释块删除(EOD不再有差分) 差分逻辑 notional-baseNotional 只该存在于 unwind 专用路径(Period函数本就没有baseNotional) 净减20行(18增/38删),SwapModule零回归(7基线/508通过/8跳过)
This commit is contained in:
@@ -100,7 +100,7 @@ namespace UnitTestProject.Modules.SwapModule.Accrual
|
||||
var policy = new AccrualPolicy(AccrualBoundary.Both, true, 7, AnnualDays, true);
|
||||
var remainingPercent = Math.Max(0m, Math.Min(1m, Notional / Notional));
|
||||
var result = FundingLegAccrual.AccrueCompoundEod(
|
||||
50_000m, Notional, Notional, 1m, Notional, rate, policy,
|
||||
50_000m, Notional, Notional, 1m, rate, policy,
|
||||
isResetDay: true, remainingPercent, EodDate);
|
||||
|
||||
Console.WriteLine($"重置日: 旧 InterestAmount={oldInterest} Td={oldTd}");
|
||||
@@ -132,7 +132,7 @@ namespace UnitTestProject.Modules.SwapModule.Accrual
|
||||
var rate = FundingLegRate.Fixed(FixedRate);
|
||||
var policy = new AccrualPolicy(AccrualBoundary.Both, true, 7, AnnualDays, true);
|
||||
var result = FundingLegAccrual.AccrueCompoundEod(
|
||||
30_000m, Notional, Notional, 1m, Notional, rate, policy,
|
||||
30_000m, Notional, Notional, 1m, rate, policy,
|
||||
isResetDay: false, 0m, nonResetDate);
|
||||
|
||||
Console.WriteLine($"非重置日: 旧 InterestAmount={oldInterest} Td={oldTd}");
|
||||
|
||||
Reference in New Issue
Block a user