每日估值bug修复

This commit is contained in:
吴方海
2025-05-30 13:08:59 +08:00
parent 4f6c51c2c1
commit 829334a4fd
7 changed files with 41 additions and 27 deletions
@@ -685,7 +685,8 @@ namespace YLErp.Modules.SwapModule
flowMergeMin.TradingAmountNetFeeAvg ?? 0,
flowMergeMin.TradingAmountNetAvg ?? 0,
flowMergeMin.OccurTime,
flowMergeMax.TradingQtyAbs);
flowMergeMax.TradingQtyAbs,
flowMergeMin.TradingFeePending);
var amount = qty * flowMergeMax.ContractSize;//平仓剩余金额=(平仓流水的成交均价-平仓对象的期初价格不含费)*平仓流水的成交数量*合约乘数
if (qty != 0)//平仓有剩余,开仓
{
@@ -775,7 +776,8 @@ namespace YLErp.Modules.SwapModule
negaFlowClone.TradingAmountNetFeeAvg ?? 0,
negaFlowClone.TradingAmountNetAvg ?? 0,
negaFlowClone.OccurTime,
negaFlowClone.TradingQty);
negaFlowClone.TradingQty,
negaFlowClone.TradingFeePending);
return trade;
}
/// <summary>
@@ -1150,7 +1152,8 @@ namespace YLErp.Modules.SwapModule
flowSameClone.TradingAmountNetFeeAvg ?? 0,
flowSameClone.TradingAmountNetAvg ?? 0,
flowSameClone.OccurTime,
unwindQty);
unwindQty,
unwindFee);
if (flowQty>0)
{
var unwindPercent = 1 - (flowQty / flowSameClone.TradingQty);
@@ -1214,7 +1217,8 @@ namespace YLErp.Modules.SwapModule
swapFlow.TradingAmountNetFeeAvg ?? 0,
swapFlow.TradingAmountNetAvg ?? 0,
swapFlow.OccurTime,
unwindQty);
unwindQty,
unwindFee);
}
}
if (flowQty > 0) //平仓完有剩余流水,
@@ -1328,6 +1332,7 @@ namespace YLErp.Modules.SwapModule
var newQty = floatPosition.PosiQuantity - flowMerge.TradingQtyAbs;
var newQtyAbs = Math.Abs(newQty);
flowMerge.SwapTradeNo = td.TradeNumber;
var unwindFee= newQty>0? flowMerge.TradingFeePending: flowMerge.TradingFeePending* floatPosition.PosiQuantity / flowMerge.TradingQty;
// 全平
new SwapDealService(UserInfo).AuotoSwapUnwind(td.id,
flowMerge.TradingAmountAvg,
@@ -1335,16 +1340,17 @@ namespace YLErp.Modules.SwapModule
flowMerge.TradingAmountNetFeeAvg ?? 0,
flowMerge.TradingAmountNetAvg ?? 0,
flowMerge.OccurTime,
floatPosition.PosiQuantity);
floatPosition.PosiQuantity,
unwindFee);
unwindTradeIds.Add(td.id);
flowMerge.TradingAmount = newQtyAbs * flowMerge.ContractSize;
if (newQty > 0)
{
flowMerge.TradingFeePending = floatPosition.PosiTradingFeePending * newQtyAbs / floatPosition.PosiQuantity;
flowMerge.TradingFeePending = 0;
}
else
{
flowMerge.TradingFeePending = flowMerge.TradingFeePending * newQtyAbs / flowMerge.TradingQty;
flowMerge.TradingFeePending = flowMerge.TradingFeePending- unwindFee;
}
flowMerge.TradingQty = newQtyAbs;
if (newQty < 0)//交易不够平,继续平