diff --git a/YLErpDAL/BLL/EodSettlement/RealtimePnlCalc.cs b/YLErpDAL/BLL/EodSettlement/RealtimePnlCalc.cs index 278819de..deebb2f8 100644 --- a/YLErpDAL/BLL/EodSettlement/RealtimePnlCalc.cs +++ b/YLErpDAL/BLL/EodSettlement/RealtimePnlCalc.cs @@ -571,12 +571,13 @@ namespace YLErp.BLL.Eod : s.PosiGrossPrice; return s.PosiQuantity * price; }) / posiQty; + // 使用标的期初价格不含费计算 var weightedNetPrice = posiQty == 0 ? 0 : positionGroupItems .Sum(s => { decimal price = ConsGlobal.InstrumentType.IsBond(lastPosi.UnderlyingInstrumentType) - ? s.PosiNetPrice * ConsGlobal.bondShowPriceMultiple - : s.PosiNetPrice; + ? s.PosiNetNoFeePrice ?? 0 * ConsGlobal.bondShowPriceMultiple + : s.PosiNetNoFeePrice ?? 0; return s.PosiQuantity * price; }) / posiQty; // 替换原代码中的 price 和 netPrice @@ -597,7 +598,7 @@ namespace YLErp.BLL.Eod } clientPosition.update_user = 0; SetClientPositionPrice(clientPosition); - clientPosition.swap_market_value = clientPosition.full_price_now * clientPosition.position_qty * (clientPosition.side == 0 ? 1 : -1); + clientPosition.swap_market_value = clientPosition.full_price_now * clientPosition.position_qty * (clientPosition.side == 0 ? 1 : -1) * 100; clientPosition.position_profit_loss = (clientPosition.full_price_now - clientPosition.deal_full_price_avg) * 0.01m * (clientPosition.position_qty * 10000) * (clientPosition.side == 0 ? 1 : -1) - clientPosition.commission; clientPosition.position_profit_loss = Math.Round(clientPosition.position_profit_loss ?? 0, 2, MidpointRounding.AwayFromZero); clientPosition.today_profit_loss = clientPosition.swap_market_value - lastPv;