fix: 恢复互换平仓交易费用按基础费率计算

This commit is contained in:
tengyufan
2026-08-05 18:26:15 +08:00
parent d5837f2de8
commit 46316c1400
4 changed files with 28 additions and 35 deletions
+11 -11
View File
@@ -324,19 +324,12 @@ namespace YLErp.Modules.SwapModule
return 0;
}
if (oriPosition.PosiTradingFeeUnit == 0)
if (oriPosition.PosiFeeType == 1)
{
return 0;
return Math.Round(oriPosition.PosiTradingFeeUnit * unwindData.CloseQty, ConsGlobal.MoneyRound, MidpointRounding.AwayFromZero);
}
var closeBase = oriPosition.PosiFeeType == 1 ? unwindData.CloseQty : unwindData.CloseNotionalValue;
var originalBase = oriPosition.PosiFeeType == 1 ? unwindData.NotionalQty : unwindData.NotionalValue;
if (originalBase <= 0)
{
return 0;
}
return Math.Round(oriPosition.PosiTradingFeePending * closeBase / originalBase, ConsGlobal.MoneyRound, MidpointRounding.AwayFromZero);
return Math.Round(oriPosition.PosiTradingFeeUnit / 100m * unwindData.CloseNotionalValue, ConsGlobal.MoneyRound, MidpointRounding.AwayFromZero);
}
private static decimal CalcInitTradingFeePending(swap_position oriPosition, swap_position position, UnwindData unwindData)
@@ -346,7 +339,14 @@ namespace YLErp.Modules.SwapModule
return position?.PosiTradingFeePending ?? 0;
}
return CalcInitTradingFee(oriPosition, unwindData);
var closeBase = oriPosition.PosiFeeType == 1 ? unwindData.CloseQty : unwindData.CloseNotionalValue;
var originalBase = oriPosition.PosiFeeType == 1 ? unwindData.NotionalQty : unwindData.NotionalValue;
if (originalBase <= 0)
{
return position?.PosiTradingFeePending ?? 0;
}
return Math.Round(oriPosition.PosiTradingFeePending * closeBase / originalBase, ConsGlobal.MoneyRound, MidpointRounding.AwayFromZero);
}
/// <summary>
/// 校验上日是否收盘