refactor(margin): 保证金计息切换到 CalcMarginInterest + 删 orginPv 外部维度 hack
- GetInterests 保证金分支(5/6)切到 CalcMarginInterest,不再走融资腿通用 CalcEodInterest/CalcUnwindInterest - 删除 InitSwapDealInterest 的保证金 orginPv 维度 hack(保证金已不走该方法,成为死代码) - CalcMarginInterest 修正三处与旧管线的对齐(全量回归发现): · 加 endDate 参数(盘中用 InitInterestDate 的 endDate,否则少算天数) · calcLast 合并 newCalcLast(与 CalcUnwindInterest 一致,算尾) · 盘中保留 accrualBasis 差分(posiPrincipal 对齐状态路径相关,单一本金变量无法覆盖;orginPv 内部按 PreviousBalance 算,消除外部维度 hack) - 更新 Shadow/GoldenReplay 测试调用点(加 endDate) 修正说明:盘中“消除差分”不可行——SPC_006(position 已对齐) 与 PrepaidPrincipalCloseTrace(position 未对齐) 期望相反,差分 accrualBasis 经 orginPv 自适应两种状态。CalcMarginInterest 真实收益收敛为:保证金领域独立 + orginPv 内聚 + 消除浮动/分段/复利死分支,而非消除差分。EOD 路径无差分(用昨日终本金)。 验证:全量 SwapModule 522/522 通过(0 失败);真实库黄金回放 60 条 0 差异。
This commit is contained in:
@@ -125,7 +125,7 @@ namespace UnitTestProject.Modules.SwapModule.Margin
|
||||
swap_flow_event newEvt;
|
||||
try
|
||||
{
|
||||
newEvt = svc.CalcMarginInterest(td, valueDate, posClone, rate,
|
||||
newEvt = svc.CalcMarginInterest(td, valueDate, valueDate, posClone, rate,
|
||||
pos.InterestPrincipalFix, pos.InterestPrincipalFix, 1.0m,
|
||||
annualDays, calcFirst, calcLast, preEod,
|
||||
(int)SwapEventTypeEnum.自动互换, add: false, settment: true, swap: false);
|
||||
|
||||
Reference in New Issue
Block a user