Files
zszq-trs/Framework/YLErp.Core/DBModels/EodTradeRisk.cs
T
2024-05-09 14:06:26 +08:00

312 lines
7.2 KiB
C#

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using YLErp.DBModels.Enums;
using YLErp.Helpers;
namespace YLErp.DBModels
{
public class EodTradeRisk : DBModelWithOperator
{
/// <summary>
/// 估值日
/// </summary>
[DisplayName("估值日")]
[Required]
public DateTime ValueDate { get; set; }
/// <summary>
/// 交易信息
/// </summary>
[DisplayName("交易信息")]
public int TradeId { get; set; }
/// <summary>
/// exposure = underlying code
/// </summary>
public string Exposure { get; set; }
/// <summary>
/// 簿记账户
/// </summary>
[DisplayName("簿记账户")]
public virtual int BookId { get; set; }
/// <summary>
/// 客户信息
/// </summary>
[DisplayName("客户信息")]
public virtual int ClientId { get; set; }
/// <summary>
///
/// </summary>
[DisplayName("Pv")]
public double Pv { get; set; }
/// <summary>
///
/// </summary>
[DisplayName("Delta")]
public double Delta { get; set; }
/// <summary>
///
/// </summary>
[DisplayName("Gamma")]
public double Gamma { get; set; }
/// <summary>
///
/// </summary>
[DisplayName("Vega")]
public double Vega { get; set; }
/// <summary>
///
/// </summary>
[DisplayName("Theta")]
public double Theta { get; set; }
/// <summary>
///
/// </summary>
[DisplayName("Rho")]
public double Rho { get; set; }
/// <summary>
///
/// </summary>
[DisplayName("DeltaCash")]
public virtual double DeltaCash { get; set; }
/// <summary>
///
/// </summary>
[DisplayName("GammaCash")]
public virtual double GammaCash { get; set; }
/// <summary>
///
/// </summary>
[DisplayName("VegaCash")]
public virtual double VegaCash { get; set; }
/// <summary>
/// 持仓波动率
/// </summary>
[DisplayName("持仓波动率")]
public virtual double Vol { get; set; }
/// <summary>
/// 对冲唯一编码
/// </summary>
[DisplayName("对冲唯一编码")]
public string HedgeUniqueCode { get; set; }
/// <summary>
/// 其他风险指标(JSON格式)
/// </summary>
public string OtherRisks { get; set; }
/// <summary>
/// 信用风险敞口
/// </summary>
[DisplayName("信用风险敞口")]
public virtual double CreditExposure { get; set; }
public EodTradeRisk Clone()
{
return (EodTradeRisk)MemberwiseClone();
}
public override string ToString()
{
return TradeId > 0 ? TradeId.ToString() : HedgeUniqueCode;
}
}
/// <summary>
/// 其他风险指标
/// </summary>
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; }
/// <summary>
/// 预付金
/// </summary>
[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; }
/// <summary>
/// 价格类型(0:收盘价,1:结算价,2:参考价)
/// </summary>
[DisplayName("价格类型")]
public SettlementTypeEnum SettlementType { get; set; }
[NotMapped]
public string SettlementTypeDesc => EnumHelper.GetDescriptionByName(SettlementType);
/// <summary>
/// 估值日
/// </summary>
[DisplayName("估值日")]
[Required]
public DateTime ValueDate { get; set; }
/// <summary>
/// 交易信息
/// </summary>
[DisplayName("交易信息")]
public int TradeId { get; set; }
/// <summary>
/// exposure = underlying code
/// </summary>
public string Exposure { get; set; }
/// <summary>
///
/// </summary>
[DisplayName("Pv")]
public double? Pv { get; set; }
/// <summary>
///
/// </summary>
[DisplayName("Delta")]
public double? Delta { get; set; }
/// <summary>
///
/// </summary>
[DisplayName("Gamma")]
public double? Gamma { get; set; }
/// <summary>
///
/// </summary>
[DisplayName("Vega")]
public double? Vega { get; set; }
/// <summary>
///
/// </summary>
[DisplayName("Theta")]
public double? Theta { get; set; }
/// <summary>
///
/// </summary>
[DisplayName("Rho")]
public double? Rho { get; set; }
/// <summary>
///
/// </summary>
[DisplayName("DeltaCash")]
public double? DeltaCash { get; set; }
/// <summary>
///
/// </summary>
[DisplayName("GammaCash")]
public double? GammaCash { get; set; }
/// <summary>
///
/// </summary>
[DisplayName("VegaCash")]
public double? VegaCash { get; set; }
/// <summary>
/// 持仓波动率
/// </summary>
[DisplayName("持仓波动率")]
public double? Vol { get; set; }
/// <summary>
/// 对冲唯一编码
/// </summary>
[DisplayName("对冲唯一编码")]
public string HedgeUniqueCode { get; set; }
/// <summary>
/// 其他风险指标(JSON格式)
/// </summary>
public string OtherRisks { get; set; }
public string GetDataTraceKeyInfo()
{
return "自定义风险";
}
}
}