Example #1
0
        /// <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
        }