fix(swap): 互换结清后eod待实现利息正确扣减(SaveEodInterestPosition)

SaveEodInterestPosition(cs:834)原公式:
  InterestIncomeSum = pre + TdInterestIncome - TdCloseInterest
其中 TdInterestIncome = TdCloseInterest(互换日全程利息),
两者抵消导致 InterestIncomeSum=pre不变。
互换结清后待实现没归零,后续平仓默认值偏大。

修复:只改InterestIncomeSum公式为 pre - TdCloseInterest
(前日待实现 - 当日实现 = 剩余待实现)。
TdInterestIncome保持原值不动(入库字段,影响报表)。

验证需重新收盘:修复改的是eod生成逻辑,已有eod不会自动变。
This commit is contained in:
hjhan
2026-07-01 13:58:24 +08:00
parent f7d23dc132
commit 47f95fcc45
@@ -831,7 +831,10 @@ namespace YLErp.Modules.SwapModule
newEodPayPosition.TdCloseInterestFee = newEodPayPosition.TdInterestFee;
//持仓内容-利息腿-损益统计(本方视角)
newEodPayPosition.TdInterestIncome = newEodPayPosition.TdCloseInterest;
newEodPayPosition.InterestIncomeSum = eodPayPosition.InterestIncomeSum + newEodPayPosition.TdInterestIncome - newEodPayPosition.TdCloseInterest;
// 互换日待实现应扣减当日实现的全程利息(TdCloseInterest)。
// 原公式 pre + TdInterestIncome - TdCloseInterest 中 TdInterestIncome==TdCloseInterest 会抵消,
// 导致待实现不变(互换结清后没归零)。改为直接 pre - TdCloseInterest。
newEodPayPosition.InterestIncomeSum = eodPayPosition.InterestIncomeSum - newEodPayPosition.TdCloseInterest;
newEodPayPosition.InterestFeeSum = eodPayPosition.InterestFeeSum + newEodPayPosition.TdInterestFee - newEodPayPosition.TdCloseInterestFee;
newEodPayPosition.InterestProfitSum = newEodPayPosition.InterestIncomeSum + newEodPayPosition.InterestFeeSum;
//持仓价值