先进先出bug修复

This commit is contained in:
吴方海
2024-06-13 13:20:30 +08:00
parent 80be6f2b8a
commit 4e165a4c13
@@ -905,10 +905,9 @@ namespace YLErp.Modules.SwapModule
string clearingAgency)
{
var firstFlow = flowList.First();
var negativeFlow = flowList.Where(x => x.BsType != firstFlow.BsType).FirstOrDefault();
if (negativeFlow==null)//只有同向流水情况
if (flowList.Count==1)//只有一条流水情况
{
NewSwapTrade(firstFlow, client, asset, underlying, floatRate, clientMarginTemplate, clearingAgency);
AvgDealSingleFlow(firstFlow, clientSwapPositionList, clientSwapTrades, client, asset, underlying, floatRate, clientMarginTemplate, clearingAgency);
}
else
{
@@ -1049,7 +1048,43 @@ namespace YLErp.Modules.SwapModule
swapTradeService.NewSwapTrade(flowMergeLastClone, client, asset, underlying, floatRate, clientMarginTemplate, clearingAgency);
}
}
/// <summary>
/// 加权平均处理当前有持仓,切两个方向多条流水情况
/// </summary>
/// <param name="flowList"></param>
/// <param name="clientSwapPositionList"></param>
/// <param name="clientSwapTrades"></param>
/// <param name="matuirityDate"></param>
/// <param name="client"></param>
/// <param name="asset"></param>
/// <param name="underlying"></param>
/// <param name="floatRate"></param>
public void AvgDealSingleFlow(swap_flow_merge flow,
List<swap_position> clientSwapPositionList,
List<trade> clientSwapTrades,
Client client,
AssetUnit asset,
underlying_manager underlying,
SwapFloatRate floatRate,
client_marginrate clientMarginTemplate,
string clearingAgency)
{
var swapTradeService = new SwapTradeService(UserInfo);
var firstPosi = clientSwapPositionList.First();
var swapPositions = clientSwapPositionList.Where(x => x.PositionType == firstPosi.PositionType).ToList();
var posiQty = swapPositions.Sum(s => s.PosiQuantity);
var flowClone = DataHelper.DeepCopyObject(flow);
// 同向新开
if (flow.BsType== firstPosi.PositionType)
{
NewSwapTrade(flowClone, client, asset, underlying, floatRate, clientMarginTemplate, clearingAgency);
}
else //反向先平仓,有剩余开仓
{
AvgDealUnwind(flowClone, clientSwapTrades, swapPositions, client, asset, underlying, floatRate, clientMarginTemplate, clearingAgency);
}
}
/// <summary>
/// 加权平均处理当前有持仓,切两个方向多条流水情况
/// </summary>