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

292 lines
8.6 KiB
C#

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