从山证v2.3.0拷贝
This commit is contained in:
@@ -0,0 +1,184 @@
|
||||
namespace YLErp.Modules.TradeModule.ExoticOptionModule
|
||||
{
|
||||
/// <summary>
|
||||
/// 预付金雪球赔付
|
||||
/// </summary>
|
||||
public abstract class PrepaymentSnowballPayoff
|
||||
{
|
||||
/// <summary>
|
||||
/// 利息金额(买方角度)
|
||||
/// </summary>
|
||||
public double InterestAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 预付金金额(买方角度)
|
||||
/// </summary>
|
||||
public double PrepaymentAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 倒置符号(将正值倒置为负值,负值倒置为正值)
|
||||
/// </summary>
|
||||
public virtual void InvertSign()
|
||||
{
|
||||
InterestAmount = -InterestAmount;
|
||||
PrepaymentAmount = -PrepaymentAmount;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 雪球敲出赔付
|
||||
/// </summary>
|
||||
public class PrepaymentSnowballKoPayoff : PrepaymentSnowballPayoff
|
||||
{
|
||||
/// <summary>
|
||||
/// 票息金额(买方金额)
|
||||
/// </summary>
|
||||
public double CouponPaymentAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 增强收益金额(买方金额)
|
||||
/// </summary>
|
||||
public double EnhancedPaymentAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 敲出票息开始日
|
||||
/// </summary>
|
||||
public DateTime CouponStartDate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 敲出票息结束日
|
||||
/// </summary>
|
||||
public DateTime CouponEndDate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 票息率
|
||||
/// </summary>
|
||||
public double CouponRate { get; set; }
|
||||
|
||||
public double TotalAmount()
|
||||
{
|
||||
return CouponPaymentAmount + EnhancedPaymentAmount + InterestAmount;
|
||||
}
|
||||
|
||||
public override void InvertSign()
|
||||
{
|
||||
base.InvertSign();
|
||||
|
||||
CouponPaymentAmount = -CouponPaymentAmount;
|
||||
EnhancedPaymentAmount = -EnhancedPaymentAmount;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 雪球到期日敲入赔付
|
||||
/// </summary>
|
||||
public class PrepaymentSnowballKiPayoff : PrepaymentSnowballPayoff
|
||||
{
|
||||
/// <summary>
|
||||
/// 期权赔付金额(买方角度)
|
||||
/// </summary>
|
||||
public double OptionPaymentAmount { get; set; }
|
||||
|
||||
public double TotalAmount()
|
||||
{
|
||||
return OptionPaymentAmount + InterestAmount;
|
||||
}
|
||||
|
||||
public override void InvertSign()
|
||||
{
|
||||
base.InvertSign();
|
||||
|
||||
OptionPaymentAmount = -OptionPaymentAmount;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 雪球到期日未敲入赔付
|
||||
/// </summary>
|
||||
public class PrepaymentSnowballNkiPayoff : PrepaymentSnowballPayoff
|
||||
{
|
||||
/// <summary>
|
||||
/// 红利票息赔付金额(买方角度)
|
||||
/// </summary>
|
||||
public double CouponPaymentAmount { get; set; }
|
||||
|
||||
public double TotalAmount()
|
||||
{
|
||||
return CouponPaymentAmount + InterestAmount;
|
||||
}
|
||||
|
||||
public override void InvertSign()
|
||||
{
|
||||
base.InvertSign();
|
||||
|
||||
CouponPaymentAmount = -CouponPaymentAmount;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 雪球观察结果类型
|
||||
/// </summary>
|
||||
public enum SnowballObservationResultType
|
||||
{
|
||||
/// <summary>
|
||||
/// 非观察日
|
||||
/// </summary>
|
||||
NonObservationDay,
|
||||
|
||||
/// <summary>
|
||||
/// 观察中
|
||||
/// </summary>
|
||||
Monitoring,
|
||||
|
||||
/// <summary>
|
||||
/// 敲入状态
|
||||
/// </summary>
|
||||
KnockedIn,
|
||||
|
||||
/// <summary>
|
||||
/// 敲出赔付
|
||||
/// </summary>
|
||||
KoPayoff,
|
||||
|
||||
/// <summary>
|
||||
/// 到期日敲入赔付
|
||||
/// </summary>
|
||||
KiPayoffAtEndDate,
|
||||
|
||||
/// <summary>
|
||||
/// 到期日非敲入赔付
|
||||
/// </summary>
|
||||
NkiPayoffAtEndDate
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 雪球观察结果
|
||||
/// </summary>
|
||||
public class SnowballObservationResult
|
||||
{
|
||||
/// <summary>
|
||||
/// 观察结果类型
|
||||
/// </summary>
|
||||
public SnowballObservationResultType ResultType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 支付日期
|
||||
/// </summary>
|
||||
public DateTime PaymentDate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 支付总金额(买方角度)
|
||||
/// </summary>
|
||||
public double PaymentAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 敲出障碍价格
|
||||
/// </summary>
|
||||
public double KoBarrier { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 赔付明细
|
||||
/// </summary>
|
||||
public PrepaymentSnowballPayoff Payoff { get; set; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user