fix(return-leg): MtmCalc.UnrealizedPnl ratio 参数改为 int
ratio(收取=1/支付=-1)和 shortRatio 一样是 int, 不是 decimal。 1695行 ratio 声明同步从 decimal 改为 int。 C# decimal*int 自动提升为 decimal, 不影响计算结果。 验证: 编译0错误, 全量507测试7失败(基线一致)。
This commit is contained in:
@@ -17,6 +17,6 @@ public static class MtmCalc
|
||||
/// <summary>盯市未实现盈亏 = (标的价 - 成本全价) × 数量 × 合约乘数 × 多空 × 收付。</summary>
|
||||
/// <param name="shortRatio">多头=1, 空头=-1。</param>
|
||||
/// <param name="ratio">收取=1, 支付=-1。</param>
|
||||
public static decimal UnrealizedPnl(decimal price, decimal costGrossPrice, decimal qty, decimal contractSize, int shortRatio, decimal ratio)
|
||||
public static decimal UnrealizedPnl(decimal price, decimal costGrossPrice, decimal qty, decimal contractSize, int shortRatio, int ratio)
|
||||
=> (price - costGrossPrice) * qty * contractSize * shortRatio * ratio;
|
||||
}
|
||||
|
||||
@@ -1692,7 +1692,7 @@ namespace YLErp.Modules.SwapModule
|
||||
bool open)
|
||||
{
|
||||
payQty = Math.Abs(payQty);
|
||||
decimal ratio = eventFlow.PayDirection == (int)SwapDirectionEnum.收取 ? 1 : -1;//收取为正,支付为负
|
||||
int ratio = eventFlow.PayDirection == (int)SwapDirectionEnum.收取 ? 1 : -1;//收取为正,支付为负
|
||||
int shortRatio = newEodPayPosition.PositionType == (int)PositionTypeFlag.Long ? 1 : -1;//多空方向
|
||||
newEodPayPosition.ValueDate = eventFlow.PayDate.Value;
|
||||
newEodPayPosition.PositionId = eventFlow.PositionId;
|
||||
|
||||
Reference in New Issue
Block a user