790 lines
22 KiB
C#
790 lines
22 KiB
C#
using Newtonsoft.Json;
|
|
using YLErp.Models.Tag;
|
|
|
|
namespace YLErp.DBModels
|
|
{
|
|
/// <summary>
|
|
/// 包含所有期权交易要素的Model
|
|
/// 属性字段的转换在前端处理或者使用方法
|
|
/// </summary>
|
|
public class OtcOptionTradeFull : OtcTradeDto
|
|
{
|
|
/// <summary>
|
|
/// 定价计算时的映射数据
|
|
/// </summary>
|
|
public double? TTMDays { get; set; }
|
|
|
|
/// <summary>
|
|
/// 是否为系统自动的TTM
|
|
/// </summary>
|
|
public bool IsTTMSystem { get; set; }
|
|
|
|
/// <summary>
|
|
/// 目前东证专有 “Weekdays”——工作日,“Trading Days”——交易日, “Public Holidays”——公共假日
|
|
/// </summary>
|
|
public int? Weekdays { get; set; }
|
|
|
|
public int? TradingDays { get; set; }
|
|
|
|
public int? PublicHolidays { get; set; }
|
|
|
|
/// <summary>
|
|
/// 计算ID(用于定价计算V2)
|
|
/// </summary>
|
|
public string CalcId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 定价日期
|
|
/// </summary>
|
|
public DateTime? ValueDate { get; set; }
|
|
|
|
/// <summary>
|
|
/// 定价模型名称
|
|
/// </summary>
|
|
public string EngineName { get; set; } = "";
|
|
|
|
/// <summary>
|
|
/// 交易对手方编号
|
|
/// </summary>
|
|
public string ClientNumber { get; set; }
|
|
|
|
#region----跨期权字段---
|
|
|
|
/// <summary>
|
|
/// 观察方式(障碍期权(Discrete)+双鲨期权(Discrete)+二元期权)
|
|
/// </summary>
|
|
public string MonitorType { get; set; }
|
|
|
|
/// <summary>
|
|
/// 障碍价格(障碍期权BarrierPrice+气囊结构Barrier+双鲨期权低障碍价格)
|
|
/// </summary>
|
|
public double BarrierLow { get; set; }
|
|
|
|
/// <summary>
|
|
/// 高障碍价格(障碍期权UpperBarrierPrice+双鲨期权)
|
|
/// </summary>
|
|
public double? BarrierHigh { get; set; }
|
|
|
|
#endregion
|
|
|
|
#region---障碍期权---
|
|
|
|
//Discrete映射自MonitorType
|
|
|
|
/// <summary>
|
|
/// 障碍类型(障碍期权)
|
|
/// </summary>
|
|
public string BarrierType { get; set; }
|
|
|
|
/// <summary>
|
|
/// 障碍价格(障碍期权)(BarrierLow)
|
|
/// </summary>
|
|
[JsonIgnore]
|
|
public double? BarrierPrice => BarrierLow;
|
|
|
|
/// <summary>
|
|
/// 高障碍价格(障碍期权)(BarrierHigh)
|
|
/// </summary>
|
|
[JsonIgnore]
|
|
public double? UpperBarrierPrice => BarrierHigh;
|
|
|
|
/// <summary>
|
|
/// 障碍偏移(障碍期权)
|
|
/// </summary>
|
|
public double? BarrierShift { get; set; }
|
|
|
|
/// <summary>
|
|
/// 补偿按敲出日年化
|
|
/// </summary>
|
|
public bool RebateAnnualizedAtKO { get; set; }
|
|
|
|
/// <summary>
|
|
/// 补偿计息规则
|
|
/// </summary>
|
|
public string RebateDayCount { get; set; }
|
|
|
|
#endregion
|
|
|
|
#region----障碍期权+双鲨期权----
|
|
|
|
/// <summary>
|
|
/// 补偿支付(障碍期权+双鲨期权)
|
|
/// </summary>
|
|
public string RebateType { get; set; }
|
|
|
|
/// <summary>
|
|
/// 补偿金额(障碍期权+双鲨期权)
|
|
/// </summary>
|
|
public double? Rebate { get; set; }
|
|
|
|
/// <summary>
|
|
/// 补偿金额(障碍期权+双鲨期权)
|
|
/// </summary>
|
|
public double? RebateRate { get; set; }
|
|
|
|
#endregion
|
|
|
|
#region----双鲨期权----
|
|
|
|
/// <summary>
|
|
/// 高行权价(双鲨期权)
|
|
/// </summary>
|
|
public double? StrikeHigh { get; set; }
|
|
|
|
/// <summary>
|
|
/// 高障碍补偿金额(双鲨期权)
|
|
/// </summary>
|
|
public double? RebateHigh { get; set; }
|
|
|
|
/// <summary>
|
|
/// 高障碍补偿金额(双鲨期权)
|
|
/// </summary>
|
|
public double? RebateHighRate { get; set; }
|
|
|
|
/// <summary>
|
|
/// 高参与率
|
|
/// </summary>
|
|
public double? CallParticipationRate { get; set; }
|
|
|
|
/// <summary>
|
|
/// 低参与率
|
|
/// </summary>
|
|
public double? PutParticipationRate { get; set; }
|
|
|
|
#endregion
|
|
|
|
#region----二元期权+亚式期权+累计期权----
|
|
|
|
/// <summary>
|
|
/// (二元期权)二元类型(亚式期权)均价计算
|
|
/// (累计期权)上端收益类型(浮动/固定(票息))
|
|
/// </summary>
|
|
public string PayoffType { get; set; }
|
|
|
|
#endregion
|
|
|
|
#region----二元期权----
|
|
|
|
//MonitorType + RebateType
|
|
|
|
/// <summary>
|
|
/// 高障碍价格(二元期权)(统一BarrierHigh)
|
|
/// </summary>
|
|
[JsonIgnore]
|
|
public double? UpperBarrier => BarrierHigh;
|
|
|
|
/// <summary>
|
|
/// 补偿金额(二元期权)
|
|
/// </summary>
|
|
public double? CashOrNothingAmount { get; set; }
|
|
|
|
/// <summary>
|
|
/// 高障碍补偿金额(二元期权)
|
|
/// </summary>
|
|
public double? CashOrNothingAmountHigh { get; set; }
|
|
|
|
/// <summary>
|
|
/// 补偿金额(二元期权)
|
|
/// </summary>
|
|
public double? CashOrNothingAmountRate { get; set; }
|
|
|
|
/// <summary>
|
|
/// 高障碍补偿金额(二元期权)
|
|
/// </summary>
|
|
public double? CashOrNothingAmountHighRate { get; set; }
|
|
|
|
#endregion
|
|
|
|
#region----亚式期权----
|
|
|
|
/// <summary>
|
|
/// (亚式期权)行权价类型
|
|
/// </summary>
|
|
public string StrikeType { get; set; }
|
|
|
|
/// <summary>
|
|
/// (亚式期权)结算类型
|
|
/// </summary>
|
|
public string SettleMode { get; set; }
|
|
|
|
/// <summary>
|
|
/// (亚式期权)杠杆率
|
|
/// (累购累沽)(国君)杠杆倍数,(其他)看涨/看跌乘数
|
|
/// </summary>
|
|
public double? StrikeGearingFactor { get; set; } = 1.0;
|
|
|
|
/// <summary>
|
|
/// (亚式期权)均价起算日
|
|
/// </summary>
|
|
public DateTime? AveragingPeriodStartDate { get; set; }
|
|
/// <summary>
|
|
/// (亚式期权)增强价格
|
|
/// </summary>
|
|
public double EnhancedPrice { get; set; }
|
|
|
|
#endregion
|
|
|
|
#region----区间累积期权----
|
|
|
|
/// <summary>
|
|
/// 区间下限(区间累积期权)
|
|
/// </summary>
|
|
public double LowerRange { get; set; }
|
|
|
|
/// <summary>
|
|
/// 区间上限(区间累积期权)
|
|
/// </summary>
|
|
public double UpperRange { get; set; }
|
|
|
|
/// <summary>
|
|
/// 区间收益率(区间累积期权)
|
|
/// </summary>
|
|
public double BonusRate { get; set; }
|
|
|
|
#endregion
|
|
|
|
#region----凤凰期权+雪球期权----
|
|
|
|
/// <summary>
|
|
/// 票息日历规则
|
|
/// </summary>
|
|
public string CouponDayCount { get; set; }
|
|
|
|
/// <summary>
|
|
/// (凤凰期权+雪球期权)敲出价格
|
|
/// </summary>
|
|
public double? KOBarrier { get; set; }
|
|
|
|
/// <summary>
|
|
///(凤凰期权+雪球期权)期权敲入价格
|
|
/// </summary>
|
|
public double KIBarrier { get; set; }
|
|
|
|
/// <summary>
|
|
/// 敲入期权行权价1(凤凰期权+雪球期权SpreadStrikeAtMaturity)
|
|
/// </summary>
|
|
public double? SpreadStrike1 { get; set; }
|
|
|
|
/// <summary>
|
|
/// 敲入期权行权价2(凤凰期权+雪球期权SpreadStrikeAtMaturity)
|
|
/// </summary>
|
|
public double? SpreadStrike { get; set; }
|
|
|
|
/// <summary>
|
|
/// (凤凰期权:票息)+(雪球期权:红利票息)
|
|
/// </summary>
|
|
public double Coupon { get; set; }
|
|
|
|
/// <summary>
|
|
/// (凤凰期权+雪球期权)票息是否年化(false:是,true:否)
|
|
/// </summary>
|
|
public bool IsFixedCoupon { get; set; }
|
|
|
|
/// <summary>
|
|
/// (凤凰期权+雪球期权)敲入到期支付类别
|
|
/// </summary>
|
|
public KIPayoffTypeEnum KIPayoffType { get; set; }
|
|
|
|
/// <summary>
|
|
/// (凤凰期权+雪球期权)是否为期权年化,默认false
|
|
/// </summary>
|
|
public bool IsAnnualized2 { get; set; }
|
|
|
|
/// <summary>
|
|
/// (凤凰期权+雪球期权)年化系数
|
|
/// </summary>
|
|
public double? AnnualizeFactor2 { get; set; }
|
|
|
|
/// <summary>
|
|
/// (凤凰期权+雪球期权)是否首日计息
|
|
/// </summary>
|
|
public bool? CouponIncludeStartDate { get; set; }
|
|
|
|
/// <summary>
|
|
/// (凤凰期权+雪球期权)是否使用支付日期计息
|
|
/// </summary>
|
|
public bool? CouponUsePaymentDate { get; set; }
|
|
|
|
#endregion
|
|
|
|
#region----凤凰期权----
|
|
|
|
/// <summary>
|
|
/// (凤凰期权)派息障碍价格
|
|
/// </summary>
|
|
public double CouponBarrier { get; set; }
|
|
|
|
/// <summary>
|
|
/// (凤凰期权)票息结算方式 -- 现金流交易,
|
|
/// </summary>
|
|
public CouponPayTypeEnum CouponPayType { get; set; }
|
|
|
|
/// <summary>
|
|
/// (凤凰期权)敲入未敲出仍支付票息
|
|
/// </summary>
|
|
public bool IncludeCouponAfterKI { get; set; }
|
|
|
|
#endregion
|
|
|
|
#region----雪球期权----
|
|
|
|
/// <summary>
|
|
/// (雪球期权)敲出赔付类别
|
|
/// </summary>
|
|
public KOPayoffTypeEnum KOPayoffType { get; set; }
|
|
|
|
/// <summary>
|
|
/// (雪球期权)年化期权费率
|
|
/// </summary>
|
|
public double? AnnualizedPremiumRate { get; set; }
|
|
|
|
/// <summary>
|
|
/// (雪球期权)票息
|
|
/// </summary>
|
|
public double KORebate { get; set; }
|
|
|
|
/// <summary>
|
|
/// (雪球期权)敲出支付方式
|
|
/// </summary>
|
|
public RebateTypeEnum KORebateType { get; set; }
|
|
|
|
/// <summary>
|
|
/// (雪球期权)敲出期权行权价1
|
|
/// </summary>
|
|
public double? SpreadStrikeAtKO1 { get; set; }
|
|
|
|
/// <summary>
|
|
/// (雪球期权)敲出期权行权价2
|
|
/// </summary>
|
|
public double? SpreadStrikeAtKO { get; set; }
|
|
|
|
/// <summary>
|
|
/// (雪球期权)[SpreadStrike]敲入期权行权价2
|
|
/// </summary>
|
|
[JsonIgnore]
|
|
public double? SpreadStrikeAtMaturity => SpreadStrike;
|
|
|
|
/// <summary>
|
|
/// (雪球期权)[SpreadStrike]敲入期权行权价1
|
|
/// </summary>
|
|
[JsonIgnore]
|
|
public double? SpreadStrikeAtMaturity1 => SpreadStrike1;
|
|
|
|
/// <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>
|
|
/// 是否初始敲入
|
|
/// </summary>
|
|
public bool IsInitialKnockedIn { get; set; }
|
|
|
|
//SpreadStrikeAtMaturity映射自SpreadStrike
|
|
//SpreadStrikeAtMaturity1映射自SpreadStrike1
|
|
#endregion
|
|
|
|
#region----专业雪球期权----
|
|
/// <summary>
|
|
/// 预付金是否参与定价
|
|
/// </summary>
|
|
public bool PrepaymentUsed { get; set; }
|
|
/// <summary>
|
|
/// 预付金比例
|
|
/// </summary>
|
|
public double? PrepaymentRatio { get; set; }
|
|
/// <summary>
|
|
/// 预付金返息率
|
|
/// </summary>
|
|
public double? PrepaymentInterestRate { get; set; }
|
|
|
|
/// <summary>
|
|
/// 预付金折现率
|
|
/// </summary>
|
|
public double? PrepaymentConvertCashRate { get; set; }
|
|
|
|
/// <summary>
|
|
/// 终日是否计息
|
|
/// </summary>
|
|
public bool CouponIncludeEndDate { get; set; }
|
|
/// <summary>
|
|
/// 增强参与率
|
|
/// </summary>
|
|
public double EnhancedParticipationRate { get; set; }
|
|
///// <summary>
|
|
///// 敲入参与率
|
|
///// </summary>
|
|
//public double KiParticipationRate { get; set; }
|
|
/// <summary>
|
|
/// 保本比率
|
|
/// </summary>
|
|
public double PrincipalProtectionRate { get; set; }
|
|
|
|
/// <summary>
|
|
/// 敲入观察设置,0:手动,1:每日观察,2:仅到期日观察
|
|
/// </summary>
|
|
public KIObservationType KIObservationType { get; set; } = KIObservationType.EveryDay;
|
|
|
|
#endregion
|
|
|
|
#region----气囊结构----
|
|
|
|
/// <summary>
|
|
/// 障碍价格(气囊结构)(BarrierLow)
|
|
/// </summary>
|
|
[JsonIgnore]
|
|
public double Barrier => BarrierLow;
|
|
|
|
/// <summary>
|
|
/// 敲入后参与率(气囊结构)
|
|
/// </summary>
|
|
public double KIParticipationRate { get; set; }
|
|
|
|
/// <summary>
|
|
/// 收益封顶价(气囊结构)
|
|
/// </summary>
|
|
public double? HighStrike { get; set; }
|
|
|
|
/// <summary>
|
|
/// 是否收益封顶(气囊结构)
|
|
/// </summary>
|
|
public bool HasPayoffLimit { get; set; }
|
|
|
|
/// <summary>
|
|
/// 是否离散观察(气囊结构)
|
|
/// </summary>
|
|
public bool IsDiscreteMonitored { get; set; }
|
|
|
|
public double? NotKIParticipationRate { get; set; }
|
|
|
|
#endregion
|
|
|
|
#region---收益增强结构----
|
|
|
|
/// <summary>
|
|
/// 年化增强利率(收益增强结构)
|
|
/// </summary>
|
|
public double? AnnualizedEnhanceRate { get; set; }
|
|
|
|
#endregion
|
|
|
|
#region----现金流交易----
|
|
|
|
public double ProfitRate { get; set; }
|
|
|
|
public CashFlowRateTypeEnum RateType { get; set; }
|
|
public CashflowDepositTypeEnum DepositType { get; set; }
|
|
|
|
/// <summary>
|
|
/// 预付比例
|
|
/// </summary>
|
|
public double PrepayRatio { get; set; }
|
|
#endregion
|
|
|
|
#region----累计期权----
|
|
|
|
/// <summary>
|
|
/// 看涨乘数
|
|
/// </summary>
|
|
public double CallMultiplier { get; set; } = 1;
|
|
|
|
/// <summary>
|
|
/// 看跌乘数
|
|
/// </summary>
|
|
public double PutMultiplier { get; set; } = 1;
|
|
/// <summary>
|
|
/// 累计三段式 乘数1
|
|
/// </summary>
|
|
public double Multiplier { get; set; } = 1;
|
|
/// <summary>
|
|
/// 累计三段式 乘数2
|
|
/// </summary>
|
|
public double Multiplier2 { get; set; } = 1;
|
|
/// <summary>
|
|
/// 累计三段式 乘数3
|
|
/// </summary>
|
|
public double Multiplier3 { get; set; } = 1;
|
|
|
|
/// <summary>
|
|
/// 结算方式(现金当日/现金期末/实物交割)
|
|
/// </summary>
|
|
public string SettlementMode { get; set; }
|
|
|
|
/// <summary>
|
|
/// 累计三段式 结算方式2
|
|
/// </summary>
|
|
public string SettlementMode2 { get; set; }
|
|
|
|
/// <summary>
|
|
/// 累计三段式 结算方式3
|
|
/// </summary>
|
|
public string SettlementMode3 { get; set; }
|
|
|
|
/// <summary>
|
|
/// 敲出是否终止
|
|
/// </summary>
|
|
public bool EarlyTerminate { get; set; }
|
|
|
|
/// <summary>
|
|
/// 票息是否百分比格式
|
|
/// </summary>
|
|
public bool CouponPercent { get; set; } = true;
|
|
|
|
/// <summary>
|
|
/// 累计类型(子弹))
|
|
/// </summary>
|
|
public string AccumuType { get; set; }
|
|
|
|
/// <summary>
|
|
/// 累计类型
|
|
/// <para>标准</para>
|
|
/// <para>三段式</para>
|
|
/// </summary>
|
|
public AccumulatorStructureTypeEnum AccumulatorStructureType { get; set; }
|
|
|
|
/// <summary>
|
|
/// 沽购数量
|
|
/// </summary>
|
|
public double AccumuTradeAmount { get; set; } = 1.0;
|
|
|
|
public double OriginalAccumuTradeAmount { get; set; } = 1.0;
|
|
|
|
/// <summary>
|
|
/// 远期到期日类型
|
|
/// <para>标的到期日</para>
|
|
/// <para>期权到期日</para>
|
|
/// <para>标的交割月前一交易日</para>
|
|
/// </summary>
|
|
public string ForwardDateType { get; set; }
|
|
/// <summary>
|
|
/// 累计三段式 远期到期日类型2
|
|
/// </summary>
|
|
public string ForwardDateType2 { get; set; }
|
|
/// <summary>
|
|
/// 累计三段式 远期到期日类型3
|
|
/// </summary>
|
|
public string ForwardDateType3 { get; set; }
|
|
|
|
/// <summary>
|
|
/// 远期期初价类型
|
|
/// <para>期权期初价格</para>
|
|
/// <para>期权行权价格</para>
|
|
/// </summary>
|
|
public string ForwardPriceType { get; set; }
|
|
/// <summary>
|
|
/// 累计三段式 远期期初价类型2
|
|
/// </summary>
|
|
public string ForwardPriceType2 { get; set; }
|
|
/// <summary>
|
|
/// 累计三段式 远期期初价类型3
|
|
/// </summary>
|
|
public string ForwardPriceType3 { get; set; }
|
|
/// <summary>
|
|
/// 累计三段式 票息2
|
|
/// </summary>
|
|
public double Coupon2 { get; set; }
|
|
#endregion
|
|
|
|
#region----自定义观察日----
|
|
|
|
/// <summary>
|
|
/// 敲入观察日列表,一个或多个日期字符串,日期之间以逗号分隔
|
|
/// 例如:2019-07-16,2019-08-16
|
|
/// </summary>
|
|
public string ObservationDates { get; set; }
|
|
|
|
/// <summary>
|
|
/// 敲出观察日
|
|
/// </summary>
|
|
public string KOObservationDates { get; set; }
|
|
|
|
/// <summary>
|
|
/// 票息支付日期
|
|
/// </summary>
|
|
public string KOObservationSettleDates { get; set; }
|
|
|
|
#endregion
|
|
|
|
#region---Risky期权---
|
|
|
|
/// <summary>
|
|
/// 执行价格1
|
|
/// </summary>
|
|
public double? Strike1 { get; set; }
|
|
|
|
/// <summary>
|
|
/// 执行价格2
|
|
/// </summary>
|
|
public double? Strike2 { get; set; }
|
|
|
|
/// <summary>
|
|
/// 执行价格3
|
|
/// </summary>
|
|
public double? Strike3 { get; set; }
|
|
|
|
/// <summary>
|
|
/// 参与率1
|
|
/// </summary>
|
|
public double? ParticipationRate1 { get; set; }
|
|
|
|
/// <summary>
|
|
/// 参与率2
|
|
/// </summary>
|
|
public double? ParticipationRate2 { get; set; }
|
|
|
|
/// <summary>
|
|
/// 参与率3
|
|
/// </summary>
|
|
public double? ParticipationRate3 { get; set; }
|
|
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// 敲入敲出状态
|
|
/// </summary>
|
|
public string KnockInOutStatus { get; set; }
|
|
|
|
/// <summary>
|
|
/// 敲入敲出日期
|
|
/// </summary>
|
|
public DateTime? KnockInOutDate { get; set; }
|
|
|
|
public OtcOptionTradeFull Clone()
|
|
{
|
|
return (OtcOptionTradeFull)MemberwiseClone();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 检查并尽可能修复此对象的数据
|
|
/// </summary>
|
|
public void CheckAndRepairValues()
|
|
{
|
|
//交易日期
|
|
if (!TradeDate.HasValue || TradeDate.Value == default)
|
|
{
|
|
TradeDate = StartDate.HasValue && StartDate.Value != default
|
|
? StartDate : throw new ServiceException("缺少交易日期");
|
|
}
|
|
else if (!StartDate.HasValue || StartDate.Value == default)
|
|
{
|
|
StartDate = TradeDate;
|
|
}
|
|
|
|
//交易方向
|
|
switch (BuySell?.ToLowerInvariant())
|
|
{
|
|
case "买入":
|
|
case "卖出": break;
|
|
|
|
case "buy": BuySell = "买入"; break;
|
|
case "sell": BuySell = "卖出"; break;
|
|
|
|
default:
|
|
if (string.IsNullOrWhiteSpace(BuySell))
|
|
{
|
|
BuySell = "买入";
|
|
}
|
|
else
|
|
{
|
|
throw new ServiceException("交易方向不支持:" + BuySell);
|
|
}
|
|
break;
|
|
}
|
|
|
|
//看涨看跌
|
|
switch (OptionType?.ToLowerInvariant())
|
|
{
|
|
case "看涨":
|
|
case "看跌": break;
|
|
|
|
case "call": OptionType = "看涨"; break;
|
|
case "put": OptionType = "看跌"; break;
|
|
|
|
default:
|
|
if (string.IsNullOrWhiteSpace(OptionType))
|
|
{
|
|
OptionType = "看涨";
|
|
}
|
|
else
|
|
{
|
|
throw new ServiceException("看涨看跌不支持:" + OptionType);
|
|
}
|
|
break;
|
|
}
|
|
|
|
//行权方式
|
|
switch (ExerciseMode?.ToLowerInvariant())
|
|
{
|
|
case "european":
|
|
case "american": break;
|
|
|
|
case "欧式": ExerciseMode = "European"; break;
|
|
case "美式": ExerciseMode = "American"; break;
|
|
|
|
default:
|
|
if (string.IsNullOrWhiteSpace(ExerciseMode))
|
|
{
|
|
ExerciseMode = "European";
|
|
}
|
|
else
|
|
{
|
|
throw new ServiceException("行权方式不支持:" + ExerciseMode);
|
|
}
|
|
break;
|
|
}
|
|
|
|
//亚式期权特定处理
|
|
if (TradeType == "亚式期权")
|
|
{
|
|
if (AveragingPeriodStartDate != null && AveragingPeriodStartDate.Value == default)
|
|
{
|
|
AveragingPeriodStartDate = null;
|
|
}
|
|
|
|
if (string.IsNullOrEmpty(PayoffType))
|
|
{
|
|
PayoffType = "ArithmeticAverage"; //算术平均
|
|
}
|
|
|
|
if (PayoffType == "EnhancedArithmeticAverage" && string.IsNullOrWhiteSpace(SettleMode))
|
|
{
|
|
SettleMode = "AtHit";
|
|
}
|
|
|
|
if (string.IsNullOrEmpty(StrikeType))
|
|
{
|
|
StrikeType = "Fixed"; //固定行权价
|
|
}
|
|
}
|
|
else if (TradeType == "二元期权")
|
|
{
|
|
if (string.IsNullOrEmpty(MonitorType))
|
|
{
|
|
MonitorType = "离散";
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 交易标签
|
|
/// </summary>
|
|
public List<TagDto> Tags { get; set; }
|
|
}
|
|
}
|