using System; using System.Collections.Generic; using System.ComponentModel; using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Text; using System.Threading.Tasks; using YLErp.Helpers; namespace YLErp.DBModels { /// /// 框架合约估值表 /// [Table("eod_swap")] public class eod_swap: DBModelBaseV2 { /// /// 交易日 /// [DisplayName("交易日")] [DataChange] public DateTime ValueDate { get; set; } /// /// 簿记账户 /// [DisplayName("簿记账户")] [DataChange] public int BookId { get; set; } /// /// 对手方编码 /// [DisplayName("对手方编码")] [DataChange] public int ClientId { get; set; } /// /// 互换交易编码id /// [DisplayName("互换交易编码id")] [DataChange] public int SwapTradeId { get; set; } /// /// 互换交易编码 /// [DisplayName("互换交易编码")] [DataChange] public string SwapTradeNo { get; set; } /// /// 产品类型 /// [DisplayName("产品类型")] [DataChange] public string StructureType { get; set; } /// /// 合约名义本金。取交易原始等价名义本金,表示合约约定规模; /// 不等于多头与空头日终腿的代数和。 /// [DisplayName("合约名义本金")] [DataChange] public decimal NotionalValue { get; set; } /// /// 合约多头名义本金。框架合约展示口径中多头始终为正数。 /// [DisplayName("合约多头名义本金")] [DataChange] public decimal NotionalValueLong { get; set; } /// /// 合约空头名义本金。框架合约展示口径中空头始终为负数, /// 以便与多头直接相加得到净方向。 /// [DisplayName("合约空头名义本金")] [DataChange] public decimal NotionalValueShort { get; set; } /// /// 合约多头标的市值 /// [DisplayName("合约多头标的市值")] [DataChange] public decimal MarketValueLong { get; set; } /// /// 合约空头标的市值 /// [DisplayName("合约空头标的市值")] [DataChange] public decimal MarketValueShort { get; set; } /// /// 合约浮动端待实现收益 /// [DisplayName("合约浮动端待实现收益")] [DataChange] public decimal FloatingPnL { get; set; } /// /// 合约利率端待实现收益 /// [DisplayName("合约利率端待实现收益")] [DataChange] public decimal InterestPnL { get; set; } /// /// 合约持仓价值 /// [DisplayName("合约持仓价值")] [DataChange] public decimal PostionValue { get; set; } /// /// 合约当日实现收益 /// [DisplayName("合约当日实现收益")] [DataChange] public decimal TdRealizedPnL { get; set; } /// /// 合约已实现收益 /// [DisplayName("合约已实现收益")] [DataChange] public decimal RealizedPnL { get; set; } /// /// 收取对手方初始预付金 /// [DisplayName("收取对手方初始预付金")] [DataChange] public decimal InitMarginGain { get; set; } /// /// 收取对手方维持预付金 /// [DisplayName("收取对手方维持预付金")] [DataChange] public decimal PostionMarginGain { get; set; } /// /// 支付初始预付金 /// [DisplayName("支付初始预付金")] [DataChange] public decimal InitMarginLoss { get; set; } /// /// 支付维持预付金 /// [DisplayName("支付维持预付金")] [DataChange] public decimal PostionMarginLoss { get; set; } /// /// 当日平仓数量汇总 /// [DisplayName("当日平仓数量汇总")] [DataChange] public decimal TdCloseQty { get; set; } /// /// 基点价值DV01 /// [DataChange] public decimal? dv01 { get; set; } /// /// 平仓起始日期 /// [NotMapped] public DateTime CloseStartDate { get; set; } } /// /// 框架合约返回 /// public class EodSwapResponse { public eod_swap position { get; set; } public DateTime TradeDate { get; set; } public string SwapTradeNo { get; set; } public string ClientName { get; set; } public string StructureType { get; set; } public string AssetBookName { get; set; } public int ClientId { get; set; } public string SwapTradeTypeStr { get; set; } public string UnderlyingType { get; set; } /// /// 合约期内已实现加待实现的付息/分红金额。 /// 该字段用于框架合约风险展示,不按每日估值报告的“期间付息/期间分红”列拆分。 /// public decimal PeriodAmount { get; set; } /// /// 合约浮动端待实现收益,取浮动腿盯市收益及未结交易费用, /// 不包含期间付息/分红,避免与 重复。 /// public decimal FloatingUnrealizedPnl { get; set; } /// /// 付息/分红支付方式:到期轧差时计入到期轧差估值,派息日支付时在期间支付口径展示。 /// public string InterestPaymentMethod { get; set; } /// /// 合约估值(到期轧差口径)= 浮动端待实现收益 + 利率端待实现收益 + 期间付息/分红。 /// 仅当支付方式为到期轧差时赋值。 /// public decimal? MaturityNettingValuation { get; set; } /// /// 合约估值(派息日支付口径)= 浮动端待实现收益 + 利率端待实现收益。 /// 派息/分红在支付日独立结算,因此不计入该估值。 /// public decimal? PeriodPaymentValuation { get; set; } /// /// 我方收取的保证金利息累计额。保证金腿原始“支付”方向表示 /// 对手方向我方支付保证金,利息现金流方向与保证金本金方向相反。 /// public decimal MarginInterestGain { get; set; } /// /// 我方支付的保证金利息累计额。保证金腿原始“收取”方向表示 /// 我方收取对手方保证金,应向对手方支付利息;支付金额以负数展示。 /// public decimal MarginInterestLoss { get; set; } } }