예제 #1
0
        public void LoadInterestRateVolCurveTest()
        {
            CreateATMRateVolCurve("AUD", "3M", IrVolInstruments, IrVolValues, IrStrikes);
            var curve = (CapVolatilityCurve)CurveEngine.LoadVolatilityCurve(Market, "AUD", "3M", null);

            Assert.IsNotNull(curve);
            // 3M does exist
            Assert.AreEqual("3M", curve.GetPricingStructureId().Properties.GetString("IndexTenor", true));
            //var baseDate = curve.GetBaseDate();
            //var expiration = VolatilitySurfaceHelper.GetDimensionValues(curve.GetVolatilityMatrix().dataPoints?.point,
            //CubeDimension.Expiration);
            //var expiryArray = new List<TimeDimension>();
            //var valArray = new List<Decimal>();
            //Debug.Print(baseDate.ToString(CultureInfo.InvariantCulture));
            //foreach (var expiry in expiration)
            //{
            //    //Temporary
            //    if (expiry is TimeDimension timeDimension)
            //    {
            //        expiryArray.Add(timeDimension);
            //    }
            //    //var date = expiry as DateTime? ?? baseDate.AddDays(1);
            //    //expiryArray.Add(date);
            //    Debug.Print(expiry.ToString());
            //}
            ////var term = VolatilitySurfaceHelper.GetDimensionValues(curve.GetVolatilityMatrix().dataPoints?.point,
            ////CubeDimension.Strike);
            //var termPoints = TermPointsFactory.Create(expiryArray, valArray);
            //var termCurve = new TermCurve { point = termPoints };
            //var output = XmlSerializerHelper.SerializeToString(termCurve);
            //Debug.Print(output);
        }
예제 #2
0
        public void LoadInterestRateVolCurveWithStrikeTest()
        {
            CreateStrikeRateVolCurve("AUD", "3M", IrVolInstruments2, IrVolValues2, IrStrikes2);
            var curve = CurveEngine.LoadVolatilityCurve(Market, "AUD", "3M", null);

            Assert.IsNotNull(curve);
            // 3M does exist
            Assert.AreEqual("3M", curve.GetPricingStructureId().Properties.GetString("IndexTenor", true));
        }