平仓和分红中,后续平仓分红计算不对的问题

This commit is contained in:
锦麟 王
2026-06-25 14:33:50 +08:00
parent 206e070d52
commit bc6fed554d
@@ -280,10 +280,13 @@ const vue = new Vue({
let floatRatio = this.floatPosition.PayDirection == 1 ? 1 : -1;
var postData = { startDate: thisObj.TradeStartDate, endDate: thisObj.deal.UnwindDate, underlyingCode: thisObj.floatPosition.UnderlyingCode, tradeId: thisObj.deal.SwapTradeId, unwindDate: thisObj.deal.UnwindDate }
main.post("/BondPayment/GetBondPayMentInterest", postData, { async: false }).done(function (resp) {
let totalDividend = parseFloat(thisObj.deal.CloseQty) * resp.obj.totalInterest * ratio * floatRatio;
let consumedDividend = parseFloat(resp.obj.consumedDividend ?? 0);
let consumedDividendInterest = consumedDividend / parseFloat(thisObj.deal.NotionalQty)
// 这里计算已经分红的利息,从totalInterest里扣除
let totalDividend = parseFloat(thisObj.deal.CloseQty) * (resp.obj.totalInterest - consumedDividendInterest) * ratio * floatRatio;
// 互换是全量消费,consumedDividend>0 表示分红已被当天互换消费,归0
thisObj.floatPosition.DividendIn = Math.abs(consumedDividend) > 0 ? parseFloat((totalDividend - consumedDividend).toFixed(2)) : parseFloat(totalDividend.toFixed(2));
// 现在可能做了纯分红的互换结算,所以不能直接归0
thisObj.floatPosition.DividendIn = parseFloat(totalDividend.toFixed(2));
var posiQty = parseFloat(thisObj.floatPosition.Quantity) - parseFloat(thisObj.deal.CloseQty);
thisObj.floatPosition.DividendPending = parseFloat((posiQty * resp.obj.totalInterest * ratio * floatRatio).toFixed(2));
thisObj.calcFloatClosePnl();