Files
zszq-trs/Framework/YLErp.Core/DBModels/EodSwapPositionResponse.cs
T
张名锐 4449bd5824 feat(swap): 更新互换估值功能并优化数据模型
- 添加互换估值V1配置常量以支持新版本
- 将PeriodAmount和DividendAmount字段改为可空decimal类型
- 更新字段注释说明预付金利率和利息的计算方式
- 修改净额结算金额定义,排除期初和追加预付金本金
- 在报表服务中添加安全求和操作防止空值异常
- 增加多个汇总字段包括股息、保证金利息等统计
- 重构预付金处理逻辑,改用加权平均计算方式
- 新增加权保证金利率和利息计算辅助方法
- 调整前端表格列顺序,优化交易编号显示位置
- 更新数值格式化器以支持空值处理和精度控制
- 添加文档列顺序恢复功能确保表格一致性
2026-07-14 09:46:54 +08:00

121 lines
4.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace YLErp.DBModels
{
/// <summary>
/// 互换估值
/// </summary>
public class EodSwapPositionResponse
{
/// <summary>
/// 浮动端估值
/// </summary>
public eod_swap_position position { get; set; }
/// <summary>
/// 结构类型
/// </summary>
public string StructureType { get; set; }
/// <summary>
/// 交易对手方名称。每日估值报告页面当前不展示该列,但发送报告与其他调用方仍可使用。
/// </summary>
public string ClientName { get; set; }
/// <summary>
/// 交易确认书编号
/// </summary>
public string ConfrimNo { get; set; }
/// <summary>
/// 交易编号
/// </summary>
public string TradeNumber { get; set; }
/// <summary>
/// 期间付息。仅现券标的赋值;ETF、指数及其他标的返回 <c>null</c>,由前端和 Excel 显示为空白。
/// </summary>
public decimal? PeriodAmount { get; set; }
/// <summary>
/// 到期结算日,直接取日终浮动腿的到期日期,不叠加结算规则或节假日顺延。
/// </summary>
public DateTime? MaturitySettlementDate { get; set; }
/// <summary>
/// 期间分红。仅 ETF 标的赋值;现券、指数及其他标的返回 <c>null</c>,避免同一金额在不适用列展示。
/// </summary>
public decimal? DividendAmount { get; set; }
/// <summary>
/// 期初标的成交收益率。仅现券标的直接取交易录入的 <c>trade.InitYtm</c>;其他标的返回 <c>null</c>。
/// </summary>
public decimal? InitYtm { get; set; }
/// <summary>
/// 实际期限,按估值日与起始日的自然日差加一计算,包含起始日。
/// </summary>
public int DayCount { get; set; }
/// <summary>
/// 期初预付金本金,仅汇总初始预付金交易腿;收取为正、支付为负。
/// </summary>
public decimal OpenMarginAmount { get; set; }
/// <summary>
/// 预付金利率,初始和追加预付金腿按本金规模加权平均
/// </summary>
public decimal OpenMarginRate { get; set; }
/// <summary>
/// 预付金利息,初始和追加预付金腿按本金规模加权平均
/// </summary>
public decimal MarginInterestAmount { get; set; }
/// <summary>
/// 追加预付金本金,仅汇总估值日前已生效的追加预付金交易腿;收取为正、支付为负。
/// </summary>
public decimal AdditionalMarginAmount { get; set; }
/// <summary>
/// 浮动利率(绝对)= 利率收益金额 / 标的名义金额。
/// 该字段是展示型比例,不参与净额结算金额计算。
/// </summary>
public decimal FloatRateAbs { get; set; }
/// <summary>
/// 利差,汇总非预付金利息腿的约定利率。
/// </summary>
public decimal InterestRate { get; set; }
/// <summary>
/// 利率收益金额,汇总非预付金利息腿的 <c>InterestIncomeSum</c>,并转换为我方视角。
/// </summary>
public decimal InterestAmount { get; set; }
/// <summary>
/// 净额结算金额 = 利率收益金额 + 浮动收益金额 + 开平仓交易费用 + 预付金利息
/// + 到期轧差方式下应计入的期间付息/分红;不包含两类预付金本金。
/// </summary>
public decimal NetSettmentAmount { get; set; }
/// <summary>
/// TRS估值 = 净额结算金额 + 期初预付金 + 追加预付金。
/// </summary>
public decimal TrsValue { get; set; }
/// <summary>
/// 交易费用
/// </summary>
public decimal TradingFee { get; set; }
/// <summary>
/// 浮动利率标的
/// </summary>
public string FloatRateUnderlyingCode { get; set; }
/// <summary>
/// 平仓日
/// </summary>
public DateTime? UnwindDate { get; set; }
/// <summary>
/// 交易状态
/// </summary>
public string TradeStatus { get; set; }
/// <summary>
/// 利率类型
/// </summary>
public string RateType {
get {
if (!string.IsNullOrEmpty(FloatRateUnderlyingCode)) {
return "固定";
}
return "浮动利率";
} }
}
}