using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using YLErp.DBModels.Enums; using YLErp.Helpers; namespace YLErp.DBModels { public class EodTradeRisk : DBModelWithOperator { /// /// 估值日 /// [DisplayName("估值日")] [Required] public DateTime ValueDate { get; set; } /// /// 交易信息 /// [DisplayName("交易信息")] public int TradeId { get; set; } /// /// exposure = underlying code /// public string Exposure { get; set; } /// /// 簿记账户 /// [DisplayName("簿记账户")] public virtual int BookId { get; set; } /// /// 客户信息 /// [DisplayName("客户信息")] public virtual int ClientId { get; set; } /// /// /// [DisplayName("Pv")] public double Pv { get; set; } /// /// /// [DisplayName("Delta")] public double Delta { get; set; } /// /// /// [DisplayName("Gamma")] public double Gamma { get; set; } /// /// /// [DisplayName("Vega")] public double Vega { get; set; } /// /// /// [DisplayName("Theta")] public double Theta { get; set; } /// /// /// [DisplayName("Rho")] public double Rho { get; set; } /// /// /// [DisplayName("DeltaCash")] public virtual double DeltaCash { get; set; } /// /// /// [DisplayName("GammaCash")] public virtual double GammaCash { get; set; } /// /// /// [DisplayName("VegaCash")] public virtual double VegaCash { get; set; } /// /// 持仓波动率 /// [DisplayName("持仓波动率")] public virtual double Vol { get; set; } /// /// 对冲唯一编码 /// [DisplayName("对冲唯一编码")] public string HedgeUniqueCode { get; set; } /// /// 其他风险指标(JSON格式) /// public string OtherRisks { get; set; } /// /// 信用风险敞口 /// [DisplayName("信用风险敞口")] public virtual double CreditExposure { get; set; } public EodTradeRisk Clone() { return (EodTradeRisk)MemberwiseClone(); } public override string ToString() { return TradeId > 0 ? TradeId.ToString() : HedgeUniqueCode; } } /// /// 其他风险指标 /// public class OtherRisks { public string CrossGamma { get; set; } } [Table("eod_trade_risk")] public partial class eod_trade_risk : EodTradeRisk { } [Table("eod_trade_risk_hedgevol")] public class eod_trade_risk_hedgevol : EodTradeRisk { } [Table("eod_trade_risk_extend")] public class eod_trade_risk_extend : EodTradeRisk { } [Table("eod_trade_risk_extend_s")] public class eod_trade_risk_extend_s : EodTradeRisk { } [Table("eod_trade_risk_openvol")] public class eod_trade_risk_openvol : EodTradeRisk { } [Table("eod_trade_risk_s")] public partial class eod_trade_risk_s : EodTradeRisk { } [Table("eod_trade_risk_hedgevol_s")] public class eod_trade_risk_hedgevol_s : EodTradeRisk { } [Table("eod_trade_risk_openvol_s")] public class eod_trade_risk_openvol_s : EodTradeRisk { } [Table("eod_trade_risk_manual")] public class eod_trade_risk_manual : DBModelWithOperator, IDataTrace { [NotMapped] public string TradeNumber { get; set; } /// /// 预付金 /// [DisplayName("预付金")] public double? Margin { get; set; } public double? Spv1 { get; set; } public double? Spv2 { get; set; } public double? Spv3 { get; set; } [NotMapped] public bool IsPVAndAllGreek => Pv != null && Delta != null && Gamma != null && Vega != null && Theta != null && Rho != null; [DisplayName("波动率类型")] public string VolType { get; set; } /// /// 价格类型(0:收盘价,1:结算价,2:参考价) /// [DisplayName("价格类型")] public SettlementTypeEnum SettlementType { get; set; } [NotMapped] public string SettlementTypeDesc => EnumHelper.GetDescriptionByName(SettlementType); /// /// 估值日 /// [DisplayName("估值日")] [Required] public DateTime ValueDate { get; set; } /// /// 交易信息 /// [DisplayName("交易信息")] public int TradeId { get; set; } /// /// exposure = underlying code /// public string Exposure { get; set; } /// /// /// [DisplayName("Pv")] public double? Pv { get; set; } /// /// /// [DisplayName("Delta")] public double? Delta { get; set; } /// /// /// [DisplayName("Gamma")] public double? Gamma { get; set; } /// /// /// [DisplayName("Vega")] public double? Vega { get; set; } /// /// /// [DisplayName("Theta")] public double? Theta { get; set; } /// /// /// [DisplayName("Rho")] public double? Rho { get; set; } /// /// /// [DisplayName("DeltaCash")] public double? DeltaCash { get; set; } /// /// /// [DisplayName("GammaCash")] public double? GammaCash { get; set; } /// /// /// [DisplayName("VegaCash")] public double? VegaCash { get; set; } /// /// 持仓波动率 /// [DisplayName("持仓波动率")] public double? Vol { get; set; } /// /// 对冲唯一编码 /// [DisplayName("对冲唯一编码")] public string HedgeUniqueCode { get; set; } /// /// 其他风险指标(JSON格式) /// public string OtherRisks { get; set; } public string GetDataTraceKeyInfo() { return "自定义风险"; } } }