312 lines
7.2 KiB
C#
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 "自定义风险";
|
|
}
|
|
}
|
|
}
|