Files
zszq-trs/YLErpDAL/Modules/CalculationModule/Models/OptionCalcParam.cs
T

1258 lines
31 KiB
C#

using Qdp.Foundation.Implementations;
using Qdp.Pricing.Base.Enums;
using Qdp.Pricing.Base.Implementations;
using YLErp.Enums;
using YLErp.QdpModule;
using YLErp.ThirdParty.CaculatePrice.DongZheng.Dto;
namespace YLErp.Modules.CalculationModule
{
#region----基类----
/// <summary>
/// 期权交易要素
/// </summary>
public abstract class OptionTradeParamBase
{
/// <summary>
/// 交易类型
/// </summary>
public abstract string tradeType { get; }
/// <summary>
/// 标的代码
/// </summary>
public string[] underlyingTickers { get; set; }
/// <summary>
/// 行权价
/// </summary>
public double strike { get; set; }
/// <summary>
/// 开始日期
/// </summary>
public Date startDate { get; set; }
Date _tradeDate;
/// <summary>
/// tradeDate(未赋值时返回startDate)
/// </summary>
public Date tradeDate
{
get => _tradeDate ?? startDate;
set => _tradeDate = value;
}
/// <summary>
/// 标的到期日
/// endDate必须有值否则QDP会报错
/// </summary>
public Date endDate { get; set; }
/// <summary>
/// 行权期日
/// </summary>
public Date exerciseDate { get; set; }
/// <summary>
/// 行权期日(原始值)
/// </summary>
public Date originalExerciseDate
{
get => _originalExerciseDate ?? exerciseDate;
set => _originalExerciseDate = value;
}
/// <summary>
/// 结算日期
/// </summary>
public Date settlementDate { get; set; }
/// <summary>
/// 行权类型(European|American)
/// </summary>
public virtual string exerciseType { get; set; }
private string _buySell = "Buy";
/// <summary>
/// trade.BuySell的转换处理
/// </summary>
public string buysell
{
get => _buySell;
set => _buySell = value == "Buy" || value == "买入" || string.IsNullOrWhiteSpace(value) ? "Buy" : "Sell";
}
/// <summary>
/// 无风险利率
/// </summary>
public double riskFreeRate { get; set; }
/// <summary>
/// 分红率
/// </summary>
public double dividendRate { get; set; }
string _underlyingInstrumentType;
private Date _originalExerciseDate;
/// <summary>
/// 标的资产类型
/// </summary>
public string underlyingInstrumentType
{
get => _underlyingInstrumentType;
set => _underlyingInstrumentType = ConsGlobal.InstrumentType.ConvertCalcType(value,true);
}
/// <summary>
/// 看涨看跌(Call|Put)
/// </summary>
public virtual OptionType optionType { get; set; }
/// <summary>
/// 看涨看跌(Call|Put)
/// optionType的别名
/// </summary>
public OptionType callput
{
get => optionType;
set => optionType = value;
}
/// <summary>
/// 份额
/// </summary>
public double notional { get; set; }
/// <summary>
/// 行权价是否百分比格式(有可能trade上是true但这个值取false,比如处理累计期权就固定取了false)
/// </summary>
public bool isMoneynessOption { get; set; }
/// <summary>
/// 行权价是否百分比格式()
/// </summary>
internal bool isMoneynessOptionOrigianl { get; set; }
/// <summary>
/// 期初标的价格
/// </summary>
public double initialSpotPrice { get; set; }
/// <summary>
/// 是否有夜盘
/// </summary>
public bool hasNightMarket { get; set; }
/// <summary>
/// 参与率
/// </summary>
public double participationRate { get; set; } = 1.0;
/// <summary>
/// 保底收益率
/// </summary>
public double principalRate { get; set; }
/// <summary>
/// 是否期权年化
/// </summary>
public virtual bool isAnnualized { get; set; }
/// <summary>
/// 期权年化系数
/// </summary>
public double annualizedFactor { get; set; } = 1.0;
/// <summary>
/// 是否使用精确时间模式
/// </summary>
public bool preciseTimeMode { get; set; }
/// <summary>
/// 交易ID
/// </summary>
public string tradeId { get; set; }
/// <summary>
/// 交易编号
/// </summary>
public string tradeNumber { get; set; }
/// <summary>
/// ttmDays
/// </summary>
public double timeToMaturityDays { get; set; } = double.NaN;
/// <summary>
///
/// </summary>
public Dictionary<Date, double> dividends { get; set; }
/// <summary>
///
/// </summary>
public string[] volSurfaceNames { get; set; }
/// <summary>
/// 是否合成远期交易(除香草和合成价差外其他都应该是false)
/// </summary>
public bool isForwardTrade { get; set; }
public override string ToString()
{
return tradeType;
}
/// <summary>
/// 对象克隆
/// </summary>
public OptionTradeParamBase Clone()
{
return (OptionTradeParamBase)MemberwiseClone();
}
/// <summary>
/// 获取绝对行权价
/// </summary>
public double GetAbsStrike()
{
return isMoneynessOption ? strike * initialSpotPrice : strike;
}
}
#endregion
#region----香草期权----
/// <summary>
/// 香草期权
/// </summary>
public class VanillaOptionTradeParam : OptionTradeParamBase
{
public override string tradeType => "香草期权";
}
#endregion
#region----合成价差期权----
/// <summary>
/// 合成价差期权
/// </summary>
public class SSpreadOptionTradeParam : OptionTradeParamBase
{
public override string tradeType => "合成价差期权";
/// <summary>
/// 合约系数
/// </summary>
public double[] coefficients { get; set; }
}
#endregion
#region----彩虹期权----
/// <summary>
/// 彩虹期权
/// </summary>
public class RainbowOptionTradeParam : OptionTradeParamBase
{
public override string tradeType => "彩虹期权";
public double[] strikes { get; set; }
public string rainbowType { get; set; }
public double cashAmount { get; set; }
public double correlation { get; set; }
}
#endregion
#region----亚式期权----
/// <summary>
/// 亚式期权
/// </summary>
public class AsianOptionTradeParam : OptionTradeParamBase
{
public override string tradeType => "亚式期权";
/// <summary>
/// 亚式期权类型
/// </summary>
public string payoffType { get; set; }
/// <summary>
/// 结算类型
/// </summary>
public string settleMode { get; set; }
/// <summary>
/// 行权价类型
/// </summary>
public string strikeStyle { get; set; }
/// <summary>
/// 杠杆率
/// </summary>
public double strikeGearingFactor { get; set; } = 1;
/// <summary>
/// fixing
/// </summary>
public string fixings { get; set; }
/// <summary>
/// 起算日
/// </summary>
public Date averagingPeriodStartDate { get; set; }
/// <summary>
///
/// </summary>
public string observationDateStr { get; set; }
/// <summary>
/// 增强价格
/// </summary>
public double enhancedPrice { get; set; }
}
#endregion
#region----障碍期权----
/// <summary>
/// 障碍期权
/// </summary>
public class BarrierOptionTradeParam : OptionTradeParamBase
{
public override string tradeType => "障碍期权";
/// <summary>
/// 障碍类型
/// </summary>
public string barrierType { get; set; }
/// <summary>
/// 障碍价格
/// </summary>
public double barrierPrice { get; set; }
/// <summary>
/// 高障碍价格
/// </summary>
public double upperBarrierPrice { get; set; }
/// <summary>
/// 是否离散观察
/// </summary>
public bool isDiscrete { get; set; }
/// <summary>
/// 敲入观察频率
/// </summary>
public string observationDateStr { get; set; }
/// <summary>
/// 补偿金额
/// </summary>
public double rebate { get; set; }
/// <summary>
/// 高障碍补偿金额
/// </summary>
public double rebateHigh { get; set; }
/// <summary>
/// 补偿支付类型
/// </summary>
public string rebateType { get; set; } = string.Empty;
/// <summary>
/// 障碍偏移
/// </summary>
public double barrierShift { get; set; }
/// <summary>
/// 敲入状态
/// </summary>
public string barrierStatus { get; set; } = "Monitoring";
/// <summary>
/// 补偿按敲出日年化
/// </summary>
public bool rebateAnnualizedAtKO { get; set; }
/// <summary>
/// 补偿计息规则
/// </summary>
public string rebateDayCount { get; set; }
}
#endregion
#region----二元期权----
/// <summary>
/// 二元期权
/// </summary>
public class BinaryOptionTradeParam : OptionTradeParamBase
{
public override string tradeType => "二元期权";
/// <summary>
/// 看涨看跌
/// </summary>
public override OptionType optionType
{
get => ConsGlobal.ExerciseMode.IsAmerican(exerciseType) ? OptionType.Call : base.optionType;
set => base.optionType = value;
}
/// <summary>
/// 二元类型
/// </summary>
public string payoffType { get; set; }
/// <summary>
/// 高障碍价格
/// </summary>
public double upperBarrier { get; set; } = double.NaN;
/// <summary>
/// 补偿金额
/// </summary>
public double cashOrNothingAmount { get; set; }
/// <summary>
/// 高障碍补偿金额
/// </summary>
public double cashOrNothingAmountHigh { get; set; } = double.NaN;
/// <summary>
/// 是否离散观察
/// </summary>
public bool isDiscreteMonitored { get; set; }
/// <summary>
/// 敲入观察频率
/// </summary>
public string observationDateStr { get; set; }
/// <summary>
/// 补偿支付
/// </summary>
public string binaryRebateType { get; set; } = "AtEnd";
/// <summary>
///
/// </summary>
public string binaryOptionReplicationStrategy { get; set; } = "None";
/// <summary>
///
/// </summary>
public double replicationShiftSize { get; set; }
/// <summary>
/// 补偿按敲出日年化
/// </summary>
public bool rebateAnnualizedAtKO { get; set; }
/// <summary>
/// 补偿计息规则
/// </summary>
public string rebateDayCount { get; set; }
}
#endregion
#region----价差期权----
/// <summary>
/// 价差期权
/// </summary>
public class SpreadOptionTradeParam : OptionTradeParamBase
{
public override string tradeType => "价差期权";
/// <summary>
///
/// </summary>
public double[] weights { get; set; }
/// <summary>
///
/// </summary>
public SpreadType spreadType { get; set; }
/// <summary>
///
/// </summary>
public double[] correlations { get; set; }
/// <summary>
///
/// </summary>
public double[] dividendRates { get; set; }
}
#endregion
#region----双鲨期权----
/// <summary>
/// 双鲨期权
/// </summary>
public class DoubleSharkFinOptionTradeParam : OptionTradeParamBase
{
public override string tradeType => "双鲨期权";
/// <summary>
/// 低行权价
/// </summary>
public double strikeLow { get; set; }
/// <summary>
/// 高行权价
/// </summary>
public double strikeHigh { get; set; }
/// <summary>
/// 高障碍价格
/// </summary>
public double barrierHigh { get; set; }
/// <summary>
/// 低障碍价格
/// </summary>
public double barrierLow { get; set; }
/// <summary>
/// 高参与率
/// </summary>
public double callParticipationRate { get; set; }
/// <summary>
/// 低参与率
/// </summary>
public double putParticipationRate { get; set; }
/// <summary>
/// 补偿金额
/// </summary>
public double rebate { get; set; }
/// <summary>
/// 高补偿金额
/// </summary>
public double rebateHigh { get; set; } = double.NaN;
/// <summary>
/// 补偿支付方式
/// </summary>
public string rebateType { get; set; } = string.Empty;
/// <summary>
/// 是否离散观察
/// </summary>
public bool isDiscrete { get; set; }
/// <summary>
/// 敲入观察频率
/// </summary>
public string observationDateStr { get; set; }
/// <summary>
/// 敲入敲出状态
/// </summary>
public string barrierStatus { get; set; } = "Monitoring";
}
#endregion
#region----凤凰期权----
/// <summary>
/// 凤凰期权
/// </summary>
public class AutocallOptionTradeParam : OptionTradeParamBase
{
public override string tradeType => "凤凰期权";
/// <summary>
/// 行权类型(European|American)
/// </summary>
public override string exerciseType
{
get => "European";
set { }
}
/// <summary>
/// 票息
/// </summary>
public double coupon { get; set; }
/// <summary>
/// 票息年化
/// </summary>
public bool isFixedCoupon { get; set; }
/// <summary>
/// 票息日历规则
/// </summary>
public string couponDayCount { get; set; }
/// <summary>
/// 票息障碍价格
/// </summary>
public double couponBarrier { get; set; }
/// <summary>
/// 票息当期支付
/// </summary>
public bool couponPayAtMaturity { get; set; }
/// <summary>
/// 敲出障碍价格
/// </summary>
public double koBarrier { get; set; }
/// <summary>
/// 敲出观察频率
/// </summary>
public string koObservationDateStr { get; set; }
/// <summary>
/// 敲入障碍价格
/// </summary>
public double kiBarrier { get; set; }
/// <summary>
/// 敲入观察频率
/// </summary>
public string observationDateStr { get; set; }
/// <summary>
/// 敲入未敲出仍支付票息
/// </summary>
public bool includeCouponAfterKI { get; set; }
/// <summary>
/// 敲入期权行权价2
/// </summary>
public double spreadStrike { get; set; }
/// <summary>
/// 敲入期权类型(默认:Put)
/// </summary>
public string kiOptionType { get; set; } = "Put";
/// <summary>
///
/// </summary>
public string barrierStatus { get; set; } = "Monitoring";
/// <summary>
///
/// </summary>
public List<autocall_observation> happenedObservations { get; set; }
/// <summary>
/// 期权年化
/// </summary>
public override bool isAnnualized
{
get => annualizedOptionPayoff;
set => annualizedOptionPayoff = value;
}
/// <summary>
/// 期权年化
/// </summary>
public bool annualizedOptionPayoff { get; set; }
}
#endregion
#region----雪球期权----
/// <summary>
/// 雪球期权
/// </summary>
public class SnowballOptionTradeParam : OptionTradeParamBase
{
public override string tradeType => "雪球期权";
/// <summary>
/// 行权类型(European|American)
/// </summary>
public override string exerciseType
{
get => "European";
set { }
}
#region 敲出设置
/// <summary>
/// 敲出障碍价格
/// </summary>
public double koBarrier { get; set; }
/// <summary>
/// 敲出观察日期
/// </summary>
public string koObservationDateStr { get; set; }
/// <summary>
/// 票息支付日期
/// </summary>
public string couponPaymentDateStr { get; set; }
/// <summary>
/// 敲出票息率
/// </summary>
public double koRebate { get; set; }
/// <summary>
/// 票息日历规则
/// </summary>
public string couponDayCount { get; set; }
/// <summary>
/// 是否固定票息
/// </summary>
public bool isFixedCoupon { get; set; }
/// <summary>
/// 是否敲出转期权
/// </summary>
public bool useOptionPayoffAtKO { get; set; }
/// <summary>
/// 敲出转期权类型(默认:Call)
/// </summary>
public OptionType koOptionType { get; set; } = OptionType.Call;
/// <summary>
/// 敲出期权行权价1(敲出转期权时使用)
/// </summary>
public double koStrike { get; set; } = double.NaN;
/// <summary>
/// 敲出期权行权价2(敲出装价差期权时使用)
/// </summary>
public double spreadStrikeAtKO { get; set; }
/// <summary>
/// 已经被废弃(界面已经没有可输入的地方)
/// </summary>
public double koBarrierAdjustStep { get; set; }
#endregion
#region 敲入设置
/// <summary>
/// 敲入转期权类型(默认:Put)
/// </summary>
public OptionType kiOptionType { get; set; } = OptionType.Put;
/// <summary>
/// 敲入障碍价格
/// </summary>
public double kiBarrier { get; set; }
/// <summary>
/// 敲入观察频率
/// </summary>
public string observationDateStr { get; set; }
/// <summary>
/// 未敲出转期权
/// </summary>
public bool useOptionPayoffAtMaturity { get; set; }
/// <summary>
/// 敲入期权行权价2
/// </summary>
public double spreadStrikeAtMaturity { get; set; }
#endregion
/// <summary>
/// 红利票息
/// </summary>
public double coupon { get; set; }
/// <summary>
/// 年化期权费率(用于年化权利金模式的保本雪球)
/// </summary>
public double? annualizedPremiumRate { get; set; }
/// <summary>
/// 敲入敲出状态
/// </summary>
public string barrierStatus { get; set; } = "Monitoring";
/// <summary>
/// 期权年化
/// </summary>
public override bool isAnnualized
{
get => annualizedOptionPayoff;
set => annualizedOptionPayoff = value;
}
/// <summary>
/// 期权年化
/// </summary>
public bool annualizedOptionPayoff { get; set; }
}
/// <summary>
/// 专业版雪球
/// </summary>
public class SnowballSpecialistOptionTradeParam : SnowballOptionTradeParam
{
public override string tradeType => "专业雪球期权";
/// <summary>
/// 行权类型(European|American)
/// </summary>
public override string exerciseType
{
get => "European";
set { }
}
/// <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; }
}
#endregion
#region---气囊结构----
/// <summary>
/// 气囊结构
/// </summary>
public class AirBagOptionTradeParam : OptionTradeParamBase
{
public override string tradeType => "气囊结构";
/// <summary>
/// 障碍价格
/// </summary>
public double barrier { get; set; }
/// <summary>
/// 高行权价
/// </summary>
public double highStrike { get; set; }
/// <summary>
/// 敲入参与率
/// </summary>
public double kiParticipationRate { get; set; }
/// <summary>
/// 是否收益封顶
/// </summary>
public bool hasPayoffLimit { get; set; }
/// <summary>
/// 是否离散观察
/// </summary>
public bool isDiscrete { get; set; }
/// <summary>
///
/// </summary>
public string observationDateStr { get; set; }
/// <summary>
/// 敲入敲出状态
/// </summary>
public string barrierStatus { get; set; } = "Monitoring";
/// <summary>
/// 看涨看跌
/// </summary>
public override OptionType optionType
{
get => OptionType.Call;
set { }
}
}
#endregion
#region----收益增强结构----
/// <summary>
/// 收益增强结构
/// </summary>
public class UnderlyingEnhanceTradeParam : OptionTradeParamBase
{
public override string tradeType => "收益增强结构";
/// <summary>
/// 看涨看跌
/// </summary>
public override OptionType optionType
{
get => OptionType.Call;
set { }
}
public double annualizedEnhanceRate { get; set; }
}
#endregion
#region----区间累积----
/// <summary>
/// 区间累积结构
/// </summary>
public class RangeAccrualTradeParam : OptionTradeParamBase
{
public override string tradeType => "区间累积期权";
/// <summary>
/// 行权类型(European|American)
/// </summary>
public override string exerciseType
{
get => "European";
set { }
}
/// <summary>
/// 看涨看跌
/// </summary>
public override OptionType optionType
{
get => OptionType.Call;
set { }
}
public double lowerRange { get; set; }
public double upperRange { get; set; }
public double bonusRate { get; set; }
public string observationDateStr { get; set; }
public string fixings { get; set; }
public List<autocall_observation> happenedObservations { get; set; }
}
#endregion
#region----累计期权----
/// <summary>
/// 标准累计期权
/// </summary>
public class AccumulatorOptionTradeParam : OptionTradeParamBase
{
public override string tradeType => "累计期权";
/// <summary>
/// 看涨乘数
/// </summary>
public double CallMultiplier { get; set; }
/// <summary>
/// 看跌乘数
/// </summary>
public double PutMultiplier { get; set; }
/// <summary>
/// 敲出是否终止
/// </summary>
public bool EarlyTerminate { get; set; }
/// <summary>
/// 是否支付票息
/// </summary>
public bool PayCoupon { get; set; }
/// <summary>
/// 票息支付日期
/// </summary>
public string couponPaymentDateStr { get; set; }
/// <summary>
/// 票息日历规则
/// </summary>
public string couponDayCount { get; set; }
/// <summary>
/// 是否固定票息
/// </summary>
public bool isFixedCoupon { get; set; }
/// <summary>
/// 是否首日计息
/// </summary>
public bool includeStartDateCoupon { get; set; }
/// <summary>
/// 累计类型
/// </summary>
public string AccumuType { get; set; }
/// <summary>
/// 结算方式(现金当日/现金期末/实物交割)
/// </summary>
public string SettlementMode { get; set; }
/// <summary>
/// 障碍价格
/// </summary>
public double Barrier { get; set; }
/// <summary>
/// 票息金额
/// </summary>
public double Coupon { get; set; }
/// <summary>
/// 观察日列表
/// </summary>
public string KOObservationDates { get; set; }
/// <summary>
/// 上下限价格模式:等于上下限价格时敲出或买方赔付
/// </summary>
public bool updownPriceMode { get; set; }
/// <summary>
///
/// </summary>
public List<autocall_observation> happenedObservations { get; set; }
}
/// <summary>
/// 三段式累计期权
/// </summary>
public class SegmentedAccumulatorOptionTradeParam : AccumulatorOptionTradeParam
{
public override string tradeType => "三段式累计期权";
private new double CallMultiplier { get; set; }
private new double PutMultiplier { get; set; }
/// <summary>
/// (20221008)票息金额2
/// <para>三段式有效</para>
/// </summary>
public double Coupon2 { get; set; }
/// <summary>
/// 乘数1
/// <pare>标准累购:put</pare>
/// <pare>标准累沽:put</pare>
/// <pare>三段式累购:put</pare>
/// <pare>三段式累沽:put 1</pare>
/// </summary>
public double Multiplier1 { get; set; }
/// <summary>
/// 乘数2
/// <para>标准累购:call</para>
/// <para>标准累沽:call</para>
/// <para>三段式累购:call 1</para>
/// <para>三段式累沽:put 2</para>
/// </summary>
public double Multiplier2 { get; set; }
/// <summary>
/// (20221008)乘数3
/// <para>三段式有效</para>
/// <para>三段累购:call 2</para>
/// <para>三段累沽:call</para>
/// </summary>
public double Multiplier3 { get; set; }
/// <summary>
/// (20221008)结算方式2(现金当日/现金期末/实物交割)
/// <para>三段式不支持现金期末</para>
/// </summary>
public string SettleMode2 { get; set; }
/// <summary>
/// (20221008)结算方式3(现金当日/现金期末/实物交割)
/// <para>三段式不支持现金期末</para>
/// </summary>
public string SettleMode3 { get; set; }
/// <summary>
/// (20221008)行权价2
/// </summary>
public double Strike2 { get; set; }
/// <summary>
/// (20221008)行权价3
/// <para>三段式有效</para>
/// </summary>
public double Strike3 { get; set; }
}
#endregion
#region----现金流交易----
public class CashFlowTradeParam : OptionTradeParamBase
{
public override string tradeType => "现金流交易";
/// <summary>
/// 利率
/// </summary>
public double ProfitRate { get; set; }
/// <summary>
/// 利率类型
/// </summary>
public CashFlowRateTypeEnum RateType { get; set; }
/// <summary>
/// 资金类型
/// </summary>
public CashflowDepositTypeEnum DepositType { get; set; }
/// <summary>
/// 预付比例
/// </summary>
public double PrepayRatio { get; set; }
/// <summary>
/// 计息日历规则
/// </summary>
public string ProfitDayCount { get; set; }
}
#endregion
#region ----结构化产品
public class StructProductTradeParam
{
public StructureRequest Request { get; set; }
public VolSurface VolSurface { get; set; }
}
public class ExpireDto
{
public double Days { get; set; }
public string DayStr { get; set; }
}
#endregion
/// <summary>
/// 期权计算参数
/// </summary>
public class OptionCalcParam<T> where T : OptionTradeParamBase
{
public OptionCalcParam(T tradeParam)
{
TradeParam = tradeParam ?? throw new ArgumentNullException(nameof(tradeParam));
}
public T TradeParam { get; }
/// <summary>
/// [非必需]期权计算场景
/// </summary>
public CalcScenarioEnum calcScenario { get; set; }
/// <summary>
/// [必需]标的价格
/// </summary>
public double[] spotPrices { get; set; }
/// <summary>
/// [非必需]引擎名称
/// </summary>
public string engineName { get; set; }
/// <summary>
/// 计算枚举,默认:BASIC_GREEKS
/// </summary>
public PricingRequest pricingRequest { get; set; } = QdpPricingRequest.BASIC_GREEKS;
/// <summary>
/// 急速模式??
/// </summary>
public bool quadratureFastMode { get; set; }
/// <summary>
/// 是否计算T+1日的Delta
/// </summary>
public bool CalcDeltaT1 { get; set; }
/// <summary>
/// [只读]标的集合
/// </summary>
public string[] underlyingTickers => TradeParam.underlyingTickers;
/// <summary>
/// [只读]波动率曲面名称
/// </summary>
public string[] volSurfaceNames => TradeParam.volSurfaceNames;
}
}