/// <summary> /// 构造函数 /// </summary> /// <param name="valuationDate">估值日期</param> /// <param name="requests">计算请求</param> public PricingResult(Date valuationDate, PricingRequest requests) { ValuationDate = valuationDate; _pricingStatus = requests.Split().ToDictionary(x => x, x => false); #region set default Pv = double.NaN; Dv01 = double.NaN; Pv01 = double.NaN; Ai = double.NaN; Ytm = double.NaN; DirtyPrice = double.NaN; CleanPrice = double.NaN; YieldToCall = double.NaN; YieldToPut = double.NaN; CallDate = null; PutDate = null; Delta = double.NaN; Gamma = double.NaN; Rho = double.NaN; RhoForeign = double.NaN; Vega = double.NaN; Theta = double.NaN; Dv01Underlying = double.NaN; MacDuration = double.NaN; ModifiedDuration = double.NaN; Convexity = double.NaN; DollarModifiedDuration = double.NaN; DollarConvexity = double.NaN; //Sp01 = double.NaN; Carry = double.NaN; ZeroSpread = double.NaN; FairQuote = double.NaN; KeyRateDv01 = new Dictionary <string, CurveRisk[]>(); Cashflows = null; ComponentPvs = null; ProductSpecific = new Dictionary <string, Dictionary <string, RateRecord> >(); CashflowDict = new Dictionary <string, double>(); Succeeded = true; ErrorMessage = null; ConvertFactors = new Dictionary <string, double>(); ZeroSpreadDelta = double.NaN; StoppingTime = double.NaN; DDeltaDt = double.NaN; DVegaDt = double.NaN; DDeltaDvol = double.NaN; DVegaDvol = double.NaN; UnderlyingPv = double.NaN; Basis = double.NaN; CheapestToDeliver = null; asset1Delta = double.NaN; asset2Delta = double.NaN; asset1Gamma = double.NaN; asset2Gamma = double.NaN; asset1Vega = double.NaN; asset2Vega = double.NaN; asset1DDeltaDt = double.NaN; asset2DDeltaDt = double.NaN; asset1DVegaDvol = double.NaN; asset2DVegaDvol = double.NaN; asset1DDeltaDvol = double.NaN; asset2DDeltaDvol = double.NaN; asset1DVegaDt = double.NaN; asset2DVegaDt = double.NaN; crossGamma = double.NaN; crossVomma = double.NaN; crossVanna1 = double.NaN; crossVanna2 = double.NaN; correlationVega = double.NaN; DeltaCash = double.NaN; GammaCash = double.NaN; PctPv = double.NaN; PricingVol = double.NaN; #endregion }