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_position")] public class eod_swap_position: DBModelBaseV2 { /// /// 持仓日期 /// [DisplayName("持仓日期")] [DataChange] public DateTime ValueDate { get; set; } /// /// 客户编码 /// [DisplayName("客户编码id")] [DataChange] public int ClientId { get; set; } /// /// 互换交易编码 /// [DisplayName("互换交易编码id")] [DataChange] public int SwapTradeId { get; set; } /// /// 互换交易腿ID /// [DisplayName("互换交易腿ID")] [DataChange] public long PositionId { get; set; } /// ///浮动端 收取方向 1:收取,2:支付 /// [DisplayName("收取方向")] [DataChange] public int PosiDirection { get; set; } [NotMapped] public string PosiDirectionStr { get { if (PosiDirection == 1) { return "收取"; } else if (PosiDirection == 2) { return "支付"; } else return ""; } } /// /// 多空方向 1:多头,2:空头 /// [DisplayName("多空方向")] [DataChange] public int PositionType { get; set; } [NotMapped] public string PositionTypeStr { get { if (PositionType == 1) { return "B"; } else if (PositionType == 2) { return "S"; } else return ""; } } /// /// 标的代码 /// [DisplayName("标的代码")] [DataChange] public string UnderlyingCode { get; set; } /// /// 标的名称 /// [NotMapped] public string UnderlyingName { get; set; } /// /// 合约乘数 /// [DisplayName("合约乘数")] [DataChange] public decimal ContractSize { get; set; } /// /// 合约乘积因子 /// [DisplayName("合约乘积因子")] [DataChange] public decimal CountRatio { get; set; } /// /// 期初标的价格 /// [DisplayName("期初标的价格")] [DataChange] public decimal PosiNetPrice { get; set; } /// /// 期初标的价格-不含费 /// [DisplayName("期初标的价格-不含费")] [DataChange] public decimal PosiGrossPrice { get; set; } /// 收益率 /// /// 剩余持仓数量 /// [DisplayName("剩余持仓数量")] [DataChange] public decimal PosiQuantity { get; set; } /// /// 当前剩余的名义本金 /// [DisplayName("当前剩余的名义本金")] [DataChange] public decimal PosiNotionalValue { get; set; } /// /// 开仓佣金交易费用 /// [DisplayName("开仓佣金交易费用")] [DataChange] public decimal PosiTradingFee { get; set; } /// /// 开仓起始日-首次开仓日 /// [DisplayName("开仓起始日")] [DataChange] public DateTime PosiStartDate { get; set; } /// /// 开仓到期日 /// [DisplayName("开仓到期日")] [DataChange] public DateTime? PosiMatuirityDate { get; set; } /// /// 标的盯市价格 /// [DisplayName("标的盯市价格")] [DataChange] public decimal UnderlyingPrice { get; set; } /// /// 标的市值,空头持仓为负数,挂钩标的价格*持仓数量*合约乘数*(多空方向) /// [DisplayName("标的市值")] [DataChange] public decimal UnderlyingMarketValue { get; set; } /// /// 当日浮动端分红,当日事件流水中“分红收益”的加总* 收支方向 /// [DisplayName("当日浮动端分红")] [DataChange] public decimal TdPosiDividend { get; set; } /// /// 浮动端盯市未实现,因标的价格变化导致的收益(盯市、未实现) /// [DisplayName("浮动端平仓盈亏·盯市未实现")] [DataChange] public decimal PosiMtmPnL { get; set; } /// /// 浮动端盯市未实现,因分红导致的分红收益(未实现),日初的本字段值+当日浮动端分红-浮动端平仓盈亏·分红(当日实现) /// [DisplayName("浮动端平仓盈亏·分红未实现")] [DataChange] public decimal PosiDividendSum { get; set; } /// /// 后付的费用(未实现) /// [DisplayName("后付的费用(未实现)")] [DataChange] public decimal PosiFeePending { get; set; } /// /// 浮动端的所有待实现收益(当前浮动腿的价值),浮动端待实现收益盯市+浮动端待实现收益分红 /// [DisplayName("浮动端的所有待实现收益")] [DataChange] public decimal PosiProfitSum { get; set; } /// ///利息端 收取方向 1:收取,2:支付 /// [DisplayName("收取方向")] [DataChange] public int InterestDirection { get; set; } /// /// 计息基本类型 1:固定值,2:合约名义本金规模,3:持仓名义本金,4:持仓市值,5:初始预付金,6:追加预付金 /// [DisplayName("计息基本类型")] [DataChange] public int InterestMode { get; set; } /// /// 计息方式 0:单利,1:复利 /// public int InterestType { get; set; } /// /// 计息基数固定值 /// [DisplayName("计息基数固定值")] [DataChange] public decimal InterestPrincipalFix { get; set; } /// /// 互换利率(年化) /// [DisplayName("互换利率(年化)")] [DataChange] public decimal InterestRateDefault { get; set; } /// /// 互换间隔 /// [DisplayName("互换间隔")] [DataChange] public string InterestSwapInterval { get; set; } /// /// 待结算其他费用 /// [DisplayName("待结算其他费用")] [DataChange] public decimal InterestFeePending { get; set; } /// /// 当前交易日适用的具体计息基准值 /// [DisplayName("当前交易日适用的具体计息基准值")] [DataChange] public decimal TdInterestPrincipal { get; set; } /// /// 当前交易日适用的具体利率值 /// [DisplayName("当前交易日适用的具体利率值")] [DataChange] public decimal TdInterestRate { get; set; } /// /// 当日利率端新计利息 /// [DisplayName("当日利率端新计利息")] [DataChange] public decimal TdInterestIncome { get; set; } /// /// 当日利率端新增费用 /// [DisplayName("当日利率端新增费用")] [DataChange] public decimal TdInterestFee { get; set; } /// /// 利率端待实现收益-利息 /// [DisplayName("利率端待实现收益-利息")] [DataChange] public decimal InterestIncomeSum { get; set; } /// /// 利率端待实现收益-其他费用 /// [DisplayName("利率端待实现收益-其他费用")] [DataChange] public decimal InterestFeeSum { get; set; } /// /// 利率端待实现收益 /// [DisplayName("利率端待实现收益")] [DataChange] public decimal InterestProfitSum { get; set; } /// /// 浮动腿与利息腿的价值之和 /// [DisplayName("互换持仓价值")] [DataChange] public decimal SwapPositionValue { get; set; } /// /// 当日平仓数量 /// [DisplayName("当日平仓数量")] [DataChange] public decimal TdCloseQty { get; set; } /// /// 当日公司行为数量,因当日公司行为事件导致的数量变化 /// [DisplayName("当日公司行为数量")] [DataChange] public decimal TdChangedQty { get; set; } /// /// 当日浮动端平仓盈亏·盯市 /// [DisplayName("当日浮动端平仓盈亏·盯市")] [DataChange] public decimal TdCloseMtmPnl { get; set; } /// /// 当日浮动端平仓盈亏·分红 /// [DisplayName("当日浮动端平仓盈亏·分红")] [DataChange] public decimal TdCloseDividend { get; set; } /// /// 当日浮动端平仓盈亏·费用 /// [DisplayName("当日浮动端平仓盈亏·费用")] [DataChange] public decimal TdCloseFee { get; set; } /// /// 当日利率端平仓盈亏·利息 /// [DisplayName("当日利率端平仓盈亏·利息")] [DataChange] public decimal TdCloseInterest { get; set; } /// /// 当日利率端平仓盈亏·其他费用 /// [DisplayName("当日利率端平仓盈亏·其他费用")] [DataChange] public decimal TdCloseInterestFee { get; set; } /// /// 浮动端累计已实现盈亏·盯市 /// [DisplayName("浮动端累计已实现盈亏·盯市")] [DataChange] public decimal RealizedMtmPnL { get; set; } /// /// 浮动端累计已实现盈亏·分红 /// [DisplayName("浮动端累计已实现盈亏·分红")] [DataChange] public decimal RealizedDividend { get; set; } /// /// 浮动端累计已实现盈亏·费用 /// [DisplayName("浮动端累计已实现盈亏·费用")] [DataChange] public decimal RealizedFee { get; set; } /// /// 利率端累计已实现盈亏·利息 /// [DisplayName("利率端累计已实现盈亏·利息")] [DataChange] public decimal RealizedInterest { get; set; } /// /// 利率端累计已实现盈亏·其他费用 /// [DisplayName("利率端累计已实现盈亏·其他费用")] [DataChange] public decimal RealizedInterestFee { get; set; } /// /// 持仓累计已实现盈亏 /// [DisplayName("持仓累计已实现盈亏")] [DataChange] public decimal RealizedPnl { get; set; } /// /// 当日适用汇率 /// [DisplayName("当日适用汇率")] [DataChange] public decimal TdCurrency { get; set; } /// /// 持仓状态 正常0/已平1 /// [DisplayName("持仓状态")] [DataChange] public int PosiStatus { get; set; } /// /// 是否无效 有效false/无效true /// [DisplayName("是否无效")] [DataChange] public bool Invalid { get; set; } /// /// 浮动利率 /// public decimal FloatRate { get; set; } /// /// 浮动利率标的 /// public string FloatRateUnderlyingCode { get; set; } /// /// 是否年化 /// public bool IsAnnualized { get; set; } /// /// 发生日期 预付金腿用 /// public DateTime? HappenDate { get; set; } /// /// 币种 /// public string Currency { get; set; } /// /// 标的资产类型 /// public string UnderlyingInstrumentType { get; set; } /// /// 成交净价含费 /// public decimal? PosiNetFeePrice { get; set; } /// /// 成交净价不含费 /// public decimal? PosiNetNoFeePrice { get; set; } /// /// 虚拟交易费用 /// public decimal VTradingFee { get; set; } /// /// 重置频率(天) /// public int? interest_rest_days { get; set; } /// /// 利率准则(-1前一营业日,0当前营业日) /// public int? interest_rule { get; set; } /// /// 基点价值DV01 /// [DataChange] public decimal? dv01 { get; set; } /// /// 持仓编码 /// [NotMapped] public string PositionIdPadding { get { return PositionId.ToString().PadLeft(8, '0'); } } public eod_swap_position Clone() { return (eod_swap_position)MemberwiseClone(); } } /// /// 合成持仓事件返回 /// public class SwapPositionResponse { public eod_swap_position eodPosition { get; set; } public swap_position position { get; set; } public DateTime TradeDate { get; set; } public string SwapTradeNo { get; set; } public int ClientId { get; set; } public string ClientNumber { get; set; } public string ClientName { get; set; } public string SwapTradeTypeStr { get; set; } /// /// 结构类型 /// public string StructureType { get; set; } /// /// 权益收支方向 /// public int InitialMarginDirection { get; set; } } }