using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.ComponentModel; using System.ComponentModel.DataAnnotations.Schema; using YLErp.Helpers; using Newtonsoft.Json; using YLErp.Models; using Qdp.Pricing.Base.Interfaces; namespace YLErp.DBModels { /// /// 互换合约持仓表 /// [Table("swap_position")] public class swap_position : DBModelBaseV2 { /// /// 期初持仓id /// [DisplayName("期初持仓id")] [DataChange] public long PositionId { get; set; } /// /// 交易id /// [DisplayName("交易id")] [DataChange] public int SwapTradeId { get; set; } /// /// 收支方向 1:收取,2:支付 /// [DisplayName("收支方向")] [DataChange] public int PosiDirection { get; set; } /// /// 多空方向 1:多头,2:空头 /// [DisplayName("多空方向")] [DataChange] public int PositionType { get; set; } /// /// 标的代码 /// [DisplayName("标的代码")] [DataChange] public string UnderlyingCode { get; set; } [NotMapped] public underlying_manager underlying { get; set; } /// /// 乘积因子 元/1吨 /// [DisplayName("乘积因子")] [DataChange] public decimal CountRatio { get; set; } = 1; /// /// 合约乘数 20吨/1手 /// [DisplayName("合约乘数")] [DataChange] public decimal ContractSize { get; set; } = 1; /// /// 期初标的价格 /// [DisplayName("期初标的价格")] [DataChange] public decimal PosiNetPrice { get; set; } /// /// 期初标的价格不含费 /// [DisplayName("期初标的价格-不含费")] [DataChange] public decimal PosiGrossPrice{get;set;} /// /// 成交净价含费 /// [DisplayName("成交净价含费")] [DataChange] public decimal? PosiNetFeePrice { get; set; } /// /// 成交净价不含费 /// [DisplayName("成交净价不含费")] [DataChange] public decimal? PosiNetNoFeePrice { get; set; } /// /// 期初名义本金 /// [DisplayName("期初名义本金")] [DataChange] public decimal PosiNotionalValue { get; set; } /// /// 交易数量 /// [DisplayName("交易数量")] [DataChange] public decimal PosiQuantity { get; set; } /// /// 交易费用 /// [DisplayName("交易费用")] [DataChange] public decimal PosiTradingFee { get; set; } /// /// 单位交易费用 /// [DataChange] public decimal PosiTradingFeeUnit { get; set; } /// /// 单位交易费用模式 0=百分比 1=单位数量 /// [DataChange] public int PosiFeeType { get; set; } /// /// 起始日 /// [DisplayName("起始日")] [DataChange] public DateTime PosiStartDate { get; set; } /// /// 到期日 /// [DisplayName("到期日")] [DataChange] public DateTime? PosiMatuirityDate { get; set; } /// /// 平仓部分分红收益 实时持仓用 累计 /// [DisplayName("平仓部分分红收益")] [DataChange] public decimal PosiDividendIncome { get; set; } /// /// 交易费用(待结算) 实时持仓用 累计 /// [DisplayName("交易费用(待结算)")] [DataChange] public decimal PosiTradingFeePending { get; set; } /// /// 收支方向 1:收取,2:支付 /// [DisplayName("收支方向")] [DataChange] public int InterestDirection { get; set; } /// /// 计息利率(年化) /// [DisplayName("计息利率(年化)")] [DataChange] public decimal InterestRateDefault { get; set; } /// /// 浮动利率 /// public decimal FloatRate { get; set; } /// /// 浮动利率标的 /// public string FloatRateUnderlyingCode { get; set; } /// /// 计息基本类型 1:固定值,2:合约名义本金规模,5:初始预付金,6:追加预付金,9:标的期初全价 /// [DisplayName("计息基本类型")] [DataChange] public int InterestMode { get; set; } [NotMapped] public string InterestModeStr { get { return ((InterestModeEnum)InterestMode).ToString(); } } /// /// 计息方式 0:单利,1:复利 /// public int InterestType { get; set; } /// /// 计息基数(固定值时适用) /// [DisplayName("计息基数")] [DataChange] public decimal InterestPrincipalFix { get; set; } /// /// 互换间隔 /// [DisplayName("互换间隔")] [DataChange] public string InterestSwapInterval { get; set; } /// /// 待结算其他费用 实时持仓用 累计 /// [DisplayName("待结算其他费用")] [DataChange] public decimal InterestFeePending { get; set; } /// /// 利息金额 实时持仓用 累计 /// [DisplayName("利息金额")] [DataChange] public decimal InterestAmount { get; set; } /// /// 是否期初 /// [DisplayName("是否期初")] [DataChange] public bool IsInitial { get; set; } /// /// 是否年化 /// public bool IsAnnualized { get; set; } /// /// 发生日期 预付金腿用 /// public DateTime? HappenDate { get; set; } /// /// 币种 /// public string Currency { get; set; } /// /// 持仓编号 /// public string PosiNumber { get; set; } /// /// 标的资产类型 /// public string UnderlyingInstrumentType { get; set; } /// /// 期初收益率 /// public decimal? InitYtm { get; set; } /// /// 是否无效 /// public bool Invalid { get; set; } /// /// 重置频率(天) /// public int? interest_rest_days { get; set; } /// /// 利率准则(-1前一营业日,0当前营业日) /// public int? interest_rule { get; set; } /// /// 利息端类别 /// public string category_tag { get; set; } /// /// 互换观察日集合 /// [NotMapped] public List SwapIntervalList { get { if (string.IsNullOrEmpty(InterestSwapInterval)) { return new List(); } return JsonConvert.DeserializeObject< List>(InterestSwapInterval); } } /// /// 观察信息 /// [NotMapped] public TradeObervation Obervation { get; set; } /// /// 持仓编码 /// [NotMapped] public string PositionIdPadding { get { return PositionId.ToString().PadLeft(8, '0'); } } public swap_position Clone() { return (swap_position)MemberwiseClone(); } } }