using System.ComponentModel.DataAnnotations.Schema; using YLErp.DBModels.Attributes; using YLErp.Helpers; namespace YLErp.DBModels { [DataChange] [Table("trade_snowball")] public class trade_snowball : TradeExtendBase, IClonable, IDataTraceV2, IDataTraceV3 { /// /// 是否初始敲入 /// [DisplayName("初始敲入")] [DataChange] public bool IsInitialKnockedIn { get; set; } [DisplayName("敲入敲出状态")] public string KnockInOutStatus { get; set; } [NotMapped] [DisplayName("敲入敲出状态")] public string KnockInOutStatusCn => Helpers.TradeHelper.GetKnockInOutStatusCn(KnockInOutStatus); [DisplayName("敲入敲出日期")] public DateTime? KnockInOutDate { get; set; } [DisplayName("敲出障碍价格"), TradeAuditChangeMsg] [DataChange] public double KOBarrier { set; get; } [DisplayName("敲入障碍价格"), TradeAuditChangeMsg] [DataChange] public double KIBarrier { set; get; } /// /// 红利票息 /// [DisplayName("红利票息"), TradeAuditChangeMsg] [DataChange] public double Coupon { get; set; } [DisplayName("敲出观察日")] public string KOObservationDates { get; set; } [DisplayName("票息支付日期")] public string KOObservationSettleDates { get; set; } /// /// 最近敲出观察日 /// [NotMapped] public DateTime? LatestKOObservationDate { get; set; } /// /// 最近敲出障碍价格 /// [NotMapped] public double? LatestKOBarrier { get; set; } [DisplayName("敲入观察日")] public string ObservationDates { get; set; } /// /// 最近敲入观察日 /// [NotMapped] public DateTime? LatestObservationDate { get; set; } /// /// 敲出票息率 /// [DisplayName("票息"), TradeAuditChangeMsg] [DataChange] public double KORebate { get; set; } /// /// 敲出支付方式 /// [DisplayName("敲出支付方式"), TradeAuditChangeMsg] [DataChange] public RebateTypeEnum KORebateType { get; set; } //[DisplayName("未敲出转期权"), TradeAuditChangeMsg] //public bool UseOptionPayoffAtMaturity { get; set; } /// /// 票息年化时为false,非票息年化时为true /// [DisplayName("票息年化"), TradeAuditChangeMsg] [DataChange] public bool IsFixedCoupon { get; set; } //[DisplayName("敲出转期权"), TradeAuditChangeMsg] //public bool UseOptionPayoffAtKO { get; set; } [DisplayName("敲出期权行权价2"), TradeAuditChangeMsg] [DataChange] public double? SpreadStrikeAtKO { get; set; } /// /// 敲出期权行权价1 /// [DisplayName("敲出期权行权价1"), TradeAuditChangeMsg] [DataChange] public double? SpreadStrikeAtKO1 { get; set; } /// /// 敲入期权行权价1 /// [DisplayName("敲入期权行权价1"), TradeAuditChangeMsg] [DataChange] public double? SpreadStrikeAtMaturity1 { get; set; } /// /// 封顶/封底行权价 /// [DisplayName("封顶/封底行权价"), TradeAuditChangeMsg] [DataChange] public double? SpreadStrikeAtMaturity { get; set; } /// /// 敲出赔付类别 /// [TradeAuditChangeMsg] [DisplayName("敲出赔付类别")] [DataChange] public KOPayoffTypeEnum KOPayoffType { get; set; } /// /// 敲入到期支付类别 /// [TradeAuditChangeMsg] [DisplayName("敲入赔付类别")] [DataChange] public KIPayoffTypeEnum KIPayoffType { get; set; } /// /// 年化期权费率 /// [DisplayName("年化期权费率"), TradeAuditChangeMsg] [DataChange] public double? AnnualizedPremiumRate { get; set; } /// /// 是否为期权年化,默认false /// [DisplayName("期权年化")] public bool IsAnnualized2 { get; set; } [DisplayName("年化系数")] public double? AnnualizeFactor2 { get; set; } /// /// 初始预付金率 /// public double? InitialAdvance { get; set; } /// /// 期间预付金率 /// public double? PeriodAdvance { get; set; } /// /// 前端收益费率 /// public double? FontEarning { get; set; } /// /// 追保线 /// public double? ConfirmedLine { get; set; } /// /// 追保比例下限 /// public double? ConfirmedFloor { get; set; } /// /// 票息日历规则 /// Qdp.Pricing.Base.Enums.DayCount /// public string CouponDayCount { get; set; } /// /// 预付金是否参与定价 /// public bool PrepaymentUsed { get; set; } /// /// 预付金比例 /// [DisplayName("预付金比例"), TradeAuditChangeMsg] [DataChange] public double? PrepaymentRatio { get; set; } /// /// 预付金返息率 /// [DisplayName("预付金返息率"), TradeAuditChangeMsg] [DataChange] public double? PrepaymentInterestRate { get; set; } /// /// 预付金折现率 /// [DisplayName("预付金折现率"), TradeAuditChangeMsg] [DataChange] public double? PrepaymentConvertCashRate { get; set; } /// /// 终日是否计息 /// [DisplayName("终日是否计息"), TradeAuditChangeMsg] [DataChange] public bool? CouponIncludeEndDate { get; set; } /// /// 增强参与率 /// [DisplayName("增强参与率"), TradeAuditChangeMsg] [DataChange] public double? EnhancedParticipationRate { get; set; } /// /// 敲入参与率 /// [DisplayName("敲入参与率"), TradeAuditChangeMsg] [DataChange] public double? KIParticipationRate { get; set; } /// /// 保本比率 /// [DisplayName("保本比率"), TradeAuditChangeMsg] [DataChange] public double? PrincipalProtectionRate { get; set; } /// /// 敲入观察设置,0:手动,1:每日观察,2:仅到期日观察 /// [DisplayName("敲入观察设置"), TradeAuditChangeMsg] [DataChange] public KIObservationType KIObservationType { get; set; } /// /// 不再使用 /// [NotMapped] public double KOBarrierAdjustStep => 0; /// /// 是否首日计息 /// [TradeAuditChangeMsg] [DataChange] public bool? CouponIncludeStartDate { get; set; } /// /// 是否使用支付日期计息 /// [TradeAuditChangeMsg] [DataChange] public bool? CouponUsePaymentDate { get; set; } public trade_snowball Clone() { return (trade_snowball)MemberwiseClone(); } public string GetDataTraceKeyId() { return TradeId.ToString(); } public string GetDataTraceKeyInfo() { return "雪球期权"; } public string GetDataTraceTableName() { return ConsTrade.TableName; } /// /// 敲出赔付类别 /// public string KOPayoffTypeDesc(string callput) { return KOPayoffTypeEnumHelper.GetDesc(KOPayoffType, callput); } } [NotMapped] public class trade_snowballDto : trade_snowball { } }