保证金算法&资金计算
This commit is contained in:
@@ -625,7 +625,7 @@ namespace YLErp.Web.Controllers
|
||||
x.HoldingDepositB = -clientBalance.PayableMarginB;
|
||||
x.SwapPayableMargin = -clientBalance.SwapPayableMargin;
|
||||
x.AvailableAmount = clientBalance.AvailableAmount;
|
||||
x.InsuredAmount = clientBalance.MarginByPayableMargin;
|
||||
x.InsuredAmount = clientBalance.PositionTradePayableFundTotal;
|
||||
x.MarginMonitoringTime = clientBalance.UpdateDate ?? DateTime.Now;
|
||||
x.FreezePremium = clientBalance.FreezePremium;
|
||||
x.ReceivablesPremium = clientBalance.ReceivablesPremium;
|
||||
@@ -643,7 +643,8 @@ namespace YLErp.Web.Controllers
|
||||
Math.Min(Math.Abs(Math.Min((x.AvailableAmount ?? 0) - (x.GuaranteesTotalAmount ?? 0), 0)), x.GuaranteesTotalAmount ?? 0);
|
||||
x.AmountFund = clientBalance.AmountFund;
|
||||
x.AmountFundWithProduct = clientBalance.AmountFundWithProduct;
|
||||
x.TotalAmount = clientBalance.TotalAmount;
|
||||
x.TotalAmount = clientBalance.SwapMarketAmount;
|
||||
x.RoundedTotalAmount = clientBalance.RoundedTotalAmount;
|
||||
x.TotalTradeCount = clientBalance.TotalTradeCount;
|
||||
x.BuyCount = clientBalance.BuyCount;
|
||||
x.SellCount = clientBalance.SellCount;
|
||||
@@ -661,13 +662,15 @@ namespace YLErp.Web.Controllers
|
||||
x.PrepaymentAmount = clientBalance.PrepaymentAmount;
|
||||
x.FrozenMarginMoney = clientBalance.FrozenMarginMoney;
|
||||
x.NetFund = clientBalance.NetFund;
|
||||
x.NetFundAll = clientBalance.NetFundAll;
|
||||
x.VmFundSum = clientBalance.VmFundSum;
|
||||
x.OtherFund = clientBalance.OtherFund;
|
||||
x.Coupon = clientBalance.Coupon;
|
||||
x.SwapBalance = clientBalance.SwapBalance;
|
||||
x.PayableMargin = clientBalance.PayableMargin;
|
||||
x.TwoSideMargin = clientBalance.TwoSideMargin;
|
||||
x.OtherSideMargin = -clientBalance.OtherSideMargin;
|
||||
x.MySideMargin = -clientBalance.MySideMargin;
|
||||
x.MySideMargin = clientBalance.MySideMargin;
|
||||
x.DeltaMargin = -clientBalance.DeltaMargin;
|
||||
x.IsPayableMarginManual = clientBalance?.IsPayableMarginManual;
|
||||
x.AvailableAmount = clientBalance.AvailableAmount;
|
||||
@@ -683,6 +686,10 @@ namespace YLErp.Web.Controllers
|
||||
x.AvailableStockEqvNotional = clientBalance.AvailableStockEqvNotional.Normalize();
|
||||
x.PFE = clientBalance.PFE;
|
||||
x.EndDesirableFund = x.NetFund + x.SettlementBalance + clientBalance.EndPremiumSum;
|
||||
x.SwapMarketAmount= clientBalance.SwapMarketAmount;
|
||||
x.SwapMarketAmountPercent=clientBalance.SwapMarketAmountPercent;
|
||||
x.MaintenanceMargin=clientBalance.MaintenanceMargin;
|
||||
x.NeedAddMargin=clientBalance.NeedAddMargin;
|
||||
if (clientBalance.MarginOccupation == 0)
|
||||
{
|
||||
x.WorstCastClientPayableRatio = 10000;
|
||||
@@ -718,31 +725,6 @@ namespace YLErp.Web.Controllers
|
||||
|
||||
x.LastHTSettlemetTime = clientBalance.LastHTSettlemetTime;
|
||||
x.LastSettlemetTime = clientBalance.LastSettlemetTime;
|
||||
if (PS.Config.Is润和)
|
||||
{
|
||||
x.AvailableAmount = clientBalance.AvailableAmount + clientBalance.TotalCredit;
|
||||
x.DesirableFund = Math.Max(clientBalance.AvailableAmount, 0);
|
||||
|
||||
switch ((MarginOptionEnum)client.MarginOptionType)
|
||||
{
|
||||
case MarginOptionEnum.单向追保:
|
||||
x.HoldingDeposit = Math.Max(x.HoldingDeposit ?? 0, 0);
|
||||
x.OtherSideMargin = 0;
|
||||
break;
|
||||
case MarginOptionEnum.对手方单向追保:
|
||||
x.HoldingDeposit = 0;
|
||||
x.OtherSideMargin = Math.Max(x.OtherSideMargin, 0);
|
||||
break;
|
||||
case MarginOptionEnum.双向追保:
|
||||
x.HoldingDeposit = Math.Max(x.HoldingDeposit ?? 0, 0);
|
||||
x.OtherSideMargin = Math.Max(x.OtherSideMargin, 0);
|
||||
break;
|
||||
case MarginOptionEnum.其他:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
x.SpanValue = x.HoldingDeposit;
|
||||
}
|
||||
|
||||
//拼装标签值
|
||||
if (clientTagList.ContainsKey(x.id))
|
||||
@@ -829,11 +811,7 @@ namespace YLErp.Web.Controllers
|
||||
var sourceFileName = OtcAppContext.MapPath("~/App_Docs/导出模板/");
|
||||
if (req.StartDate == null || req.StartDate == req.ValueDate)
|
||||
{
|
||||
var temp = Path.Combine(sourceFileName, $"资金监控模板1-{PS.Config.Company}.xlsx");
|
||||
if (!System.IO.File.Exists(temp))
|
||||
{
|
||||
temp = Path.Combine(sourceFileName, $"资金监控模板1.xlsx");
|
||||
}
|
||||
var temp = Path.Combine(sourceFileName, $"资金监控模板1.xlsx");
|
||||
sourceFileName = temp;
|
||||
var searchList = ClientBanlanceQuery(req).Value as SearchListResult<ClientLinq>;
|
||||
//模板绑定值,处理四舍五入配置
|
||||
@@ -853,57 +831,25 @@ namespace YLErp.Web.Controllers
|
||||
{
|
||||
TotalTradeCountSum = pairs["TotalTradeCountSum"],
|
||||
TotalNotionalPrincipalSum = pairs["TotalNotionalPrincipalSum"],
|
||||
BuyCountSum = pairs["BuyCountSum"],
|
||||
BuyNominalPrincipalOfTransactionSum = pairs["BuyNominalPrincipalOfTransactionSum"],
|
||||
SellCountSum = pairs["SellCountSum"],
|
||||
SellNominalPrincipalOfTransactionSum = pairs["SellNominalPrincipalOfTransactionSum"],
|
||||
TransactionPenNumberSum = pairs["TransactionPenNumberSum"],
|
||||
TodayNotionalPrincipalSum = pairs["TodayNotionalPrincipalSum"],
|
||||
PositionNotionalPrincipalSum = pairs["PositionNotionalPrincipalSum"],
|
||||
CurrentHoldingPenNumberSum = pairs["CurrentHoldingPenNumberSum"],
|
||||
FreezePremiumSum = pairs["FreezePremiumSum"],
|
||||
ReceivablesPremiumSum = pairs["ReceivablesPremiumSum"],
|
||||
FrozenMarginMoneySum = pairs["FrozenMarginMoneySum"],
|
||||
WinLossSum = pairs["WinLossSum"],
|
||||
PositionPremiumNetCashSum = pairs["PositionPremiumNetCashSum"],
|
||||
PositionPvSum = PS.Config.IsPVRounded ? pairs["RoundedPositionPvSum"] : pairs["PositionPvSum"],
|
||||
PositionPnlSum = PS.Config.IsPVRounded ? pairs["RoundedPositionPnlSum"] : pairs["PositionPnlSum"],
|
||||
TotalAmountSum = PS.Config.IsPVRounded ? pairs["RoundedTotalAmountSum"] : pairs["TotalAmountSum"],
|
||||
NetFundSum = pairs["NetFundSum"],
|
||||
OptionPremiumSum = pairs["OptionPremiumSum"],
|
||||
SettlementBalanceSum = pairs["SettlementBalanceSum"],
|
||||
CouponSum = pairs["CouponSum"],
|
||||
OptionPremiumSwapSum = pairs["OptionPremiumSwapSum"],
|
||||
SwapBalanceSum = pairs["SwapBalanceSum"],
|
||||
NetFundAllSum = pairs["NetFundAllSum"],
|
||||
OtherFundSum = pairs["OtherFundSum"],
|
||||
AmountFundSum = pairs["AmountFundSum"],
|
||||
GuaranteesTotalAmountSum = pairs["GuaranteesTotalAmountSum"],
|
||||
HoldingDepositSum = pairs["HoldingDepositSum"],
|
||||
HoldingDepositASum = pairs["HoldingDepositASum"],
|
||||
HoldingDepositBSum = pairs["HoldingDepositBSum"],
|
||||
AvailableAmountSum = pairs["AvailableAmountSum"],
|
||||
CreditUsedSum = pairs["CreditUsedSum"],
|
||||
InsuredAmountSum = pairs["InsuredAmountSum"],
|
||||
ClosedTradePayableFundSum = pairs["ClosedTradePayableFundSum"],
|
||||
PositionTradePayableFundSum = pairs["PositionTradePayableFundSum"],
|
||||
PayableFundSum = pairs["PayableFundSum"],
|
||||
DesirableFundSum = pairs["DesirableFundSum"],
|
||||
OtherSideMarginSum = pairs["OtherSideMarginSum"],
|
||||
MySideMarginSum = pairs["MySideMarginSum"],
|
||||
CreditRiskLossSum = pairs["CreditRiskLossSum"],
|
||||
ExposureSum = pairs["ExposureSum"],
|
||||
CreditUsedValueSum = pairs["CreditUsedValueSum"],
|
||||
BuyerPositionMarginSum = pairs["BuyerPositionMarginSum"],
|
||||
SellerPositionPremiumSum = pairs["SellerPositionPremiumSum"],
|
||||
ShouldChargedSum = pairs["ShouldChargedSum"],
|
||||
PFESum = pairs["PFESum"],
|
||||
EndDesirableFundSum = pairs["EndDesirableFundSum"],
|
||||
clientEquitySum = pairs["clientEquitySum"],
|
||||
LastDayPositionPremiumNetCashsSum = pairs["LastDayPositionPremiumNetCashsSum"],
|
||||
NetFundSumSum = pairs["NetFundSumSum"],
|
||||
EADSum = pairs["EADSum"],
|
||||
DaliyPnlSum = PS.Config.IsPVRounded ? pairs["RoundedDaliyPnlSum"] : pairs["DaliyPnlSum"],
|
||||
AvailableStockEqvNotionalSum= pairs["AvailableStockEqvNotionalSum"],
|
||||
VmFundSumSum = pairs["VmFundSumSum"],
|
||||
MarginBalanceSum = pairs["MarginBalanceSum"],
|
||||
SwapMarketAmountSum = pairs["SwapMarketAmountSum"],
|
||||
InfoList = searchList.rows
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user