BugFix 交易费率逻辑使用汇总值计算
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
using Microsoft.VisualBasic;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using NPOI.SS.Formula.Functions;
|
||||
using System.Diagnostics;
|
||||
using System.Net.Http.Headers;
|
||||
using System.Text.RegularExpressions;
|
||||
using YLErp.Core.Helpers;
|
||||
@@ -113,6 +114,7 @@ namespace YLErp.Plugins.ShanXi.DocumentGenerator
|
||||
var trades = Context.Trades;
|
||||
var totalPosiQuantity = 0.0;
|
||||
var StockEqvNotionalRealSum = 0.0;
|
||||
var PosiTradingFeePending = 0.0;
|
||||
var allSwapPositions = Context.GetSwapPositions(trades.Select(x => x.id).ToList(), true);
|
||||
var allinterestMargins = allSwapPositions.Where(x => ConsTrade.InterestModels.Contains(x.InterestMode));
|
||||
foreach (var trade in trades)
|
||||
@@ -142,8 +144,6 @@ namespace YLErp.Plugins.ShanXi.DocumentGenerator
|
||||
dic["到期日期"] = trade.ExerciseDate?.ToString("yyyy年M月d日");
|
||||
bool posiLong = swapPosition?.PositionType == (int)PositionTypeFlag.Short ? false : true;
|
||||
var interestRate = interestMargin?.InterestRateDefault * 100 ?? 0;
|
||||
var basicFee = (trade.OriginalStockEqvNotional ?? 0) == 0 ? 0 : ((double)((swapPosition?.PosiTradingFeePending) ?? 0) / (trade.OriginalStockEqvNotional ?? 0)) * 100;
|
||||
dic["基本费率"] = (basicFee * 2).ToString("f4");
|
||||
dic["交易费用"] = (double)((swapPosition?.PosiTradingFeePending * 2) ?? 0);
|
||||
dic["多头约定利率"] = "不适用";
|
||||
dic["空头约定利率"] = "不适用";
|
||||
@@ -200,7 +200,7 @@ namespace YLErp.Plugins.ShanXi.DocumentGenerator
|
||||
//dic["计算基准"] = calculationBasis;
|
||||
dic["初始保障金率"] = ((clientMarginRate?.InitMarginRate ?? 0) * 100).ToString("0.####") + "%";
|
||||
dic["维持保障金率"] = ((clientMarginRate?.MaintenanceRate ?? 0) * 100).ToString("0.####") + "%";
|
||||
dic["交易费率"] = dic["基本费率"];
|
||||
|
||||
//var initialMarginSum = initialMarginQuery.Sum(x =>
|
||||
// x.InterestDirection == 2 ? x.InterestPrincipalFix * -1 : x.InterestPrincipalFix);
|
||||
//dic["期初预付金".Insert("期初预付金".Length, "2?")] = initialMarginSum.ToString("0.##");
|
||||
@@ -221,7 +221,7 @@ namespace YLErp.Plugins.ShanXi.DocumentGenerator
|
||||
//row["利差"] = ((interestMargin?.InterestRateDefault) ?? 0) * 100;
|
||||
//var basicFee = trade.StockEqvNotionalReal == 0 ? 0 : ((double)((swapPosition?.PosiTradingFeePending) ?? 0) / trade.StockEqvNotionalReal) * 100;
|
||||
//row["基本费率"] = (basicFee * 2).ToString("f4");
|
||||
|
||||
PosiTradingFeePending += (double)((swapPosition?.PosiTradingFeePending) ?? 0);
|
||||
FormatToDict("交易费用", (double)((swapPosition?.PosiTradingFeePending * 2) ?? 0), row);
|
||||
|
||||
row["期初预付金利率"] = ((initialMarginQuery.FirstOrDefault()?.InterestRateDefault) ?? 0) * 100;
|
||||
@@ -253,9 +253,12 @@ namespace YLErp.Plugins.ShanXi.DocumentGenerator
|
||||
_ => ""
|
||||
};
|
||||
table1.Add(row);
|
||||
dic["名义本金".Insert("名义本金".Length, "2?")] = StockEqvNotionalRealSum.ToString("0.##");
|
||||
dic["期初预付金".Insert("期初预付金".Length, "2?")] = (StockEqvNotionalRealSum * clientMarginRate?.InitMarginRate)?.ToString("0.##");
|
||||
}
|
||||
var basicFee = (StockEqvNotionalRealSum == 0 ? 0 : (PosiTradingFeePending / StockEqvNotionalRealSum * 100));
|
||||
dic["基本费率"] = (basicFee * 2).ToString("f4");
|
||||
dic["交易费率"] = dic["基本费率"];
|
||||
dic["名义本金".Insert("名义本金".Length, "2?")] = StockEqvNotionalRealSum.ToString("0.##");
|
||||
dic["期初预付金".Insert("期初预付金".Length, "2?")] = (StockEqvNotionalRealSum * clientMarginRate?.InitMarginRate)?.ToString("0.##");
|
||||
|
||||
|
||||
clientduties = clientduties.Where(x => x.ContactTypeId.Contains("3")).OrderBy(o => o.id).ToList();//交易确认书邮件接收人
|
||||
|
||||
Reference in New Issue
Block a user