Esempio n. 1
0
        //-------------------------------------------------------------------------
        public virtual void coverage()
        {
            SwaptionSurfaceExpirySimpleMoneynessParameterMetadata test1 = SwaptionSurfaceExpirySimpleMoneynessParameterMetadata.of(TIME_TO_EXPIRY, SIMPLE_MONEYNESS);

            coverImmutableBean(test1);
            SwaptionSurfaceExpirySimpleMoneynessParameterMetadata test2 = SwaptionSurfaceExpirySimpleMoneynessParameterMetadata.of(2.5d, 60d, "(2.5, 60)");

            coverBeanEquals(test1, test2);
        }
Esempio n. 2
0
        public virtual void test_of_noLabel()
        {
            SwaptionSurfaceExpirySimpleMoneynessParameterMetadata test = SwaptionSurfaceExpirySimpleMoneynessParameterMetadata.of(TIME_TO_EXPIRY, SIMPLE_MONEYNESS);

            assertEquals(test.Identifier, Pair.of(TIME_TO_EXPIRY, SIMPLE_MONEYNESS));
            assertEquals(test.Label, Pair.of(TIME_TO_EXPIRY, SIMPLE_MONEYNESS).ToString());
            assertEquals(test.SimpleMoneyness, SIMPLE_MONEYNESS);
            assertEquals(test.YearFraction, TIME_TO_EXPIRY);
        }
Esempio n. 3
0
        public virtual void test_of_withLabel()
        {
            string label = "(1.5Y, 0.25)";
            SwaptionSurfaceExpirySimpleMoneynessParameterMetadata test = SwaptionSurfaceExpirySimpleMoneynessParameterMetadata.of(TIME_TO_EXPIRY, SIMPLE_MONEYNESS, label);

            assertEquals(test.Identifier, Pair.of(TIME_TO_EXPIRY, SIMPLE_MONEYNESS));
            assertEquals(test.Label, label);
            assertEquals(test.SimpleMoneyness, SIMPLE_MONEYNESS);
            assertEquals(test.YearFraction, TIME_TO_EXPIRY);
        }
Esempio n. 4
0
        static NormalSwaptionExpirySimpleMoneynessVolatilitiesTest()
        {
            IList <SwaptionSurfaceExpirySimpleMoneynessParameterMetadata> list = new List <SwaptionSurfaceExpirySimpleMoneynessParameterMetadata>();
            int nData = TIME.size();

            for (int i = 0; i < nData; ++i)
            {
                SwaptionSurfaceExpirySimpleMoneynessParameterMetadata parameterMetadata = SwaptionSurfaceExpirySimpleMoneynessParameterMetadata.of(TIME.get(i), SIMPLE_MONEYNESS.get(i));
                list.Add(parameterMetadata);
            }
            METADATA = Surfaces.normalVolatilityByExpirySimpleMoneyness("GOVT1-SWAPTION-VOL", ACT_365F, MoneynessType.RATES).withParameterMetadata(list);
        }
Esempio n. 5
0
 //-----------------------------------------------------------------------
 public override bool Equals(object obj)
 {
     if (obj == this)
     {
         return(true);
     }
     if (obj != null && obj.GetType() == this.GetType())
     {
         SwaptionSurfaceExpirySimpleMoneynessParameterMetadata other = (SwaptionSurfaceExpirySimpleMoneynessParameterMetadata)obj;
         return(JodaBeanUtils.equal(yearFraction, other.yearFraction) && JodaBeanUtils.equal(simpleMoneyness, other.simpleMoneyness) && JodaBeanUtils.equal(label, other.label));
     }
     return(false);
 }
Esempio n. 6
0
        public virtual void test_builder_noLabel()
        {
//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: org.joda.beans.BeanBuilder<? extends SwaptionSurfaceExpirySimpleMoneynessParameterMetadata> builder = SwaptionSurfaceExpirySimpleMoneynessParameterMetadata.meta().builder();
            BeanBuilder <SwaptionSurfaceExpirySimpleMoneynessParameterMetadata> builder = SwaptionSurfaceExpirySimpleMoneynessParameterMetadata.meta().builder();
            Pair <double, double> pair = Pair.of(TIME_TO_EXPIRY, SIMPLE_MONEYNESS);

            builder.set(SwaptionSurfaceExpirySimpleMoneynessParameterMetadata.meta().yearFraction(), TIME_TO_EXPIRY);
            builder.set(SwaptionSurfaceExpirySimpleMoneynessParameterMetadata.meta().simpleMoneyness(), SIMPLE_MONEYNESS);
            SwaptionSurfaceExpirySimpleMoneynessParameterMetadata test = builder.build();

            assertEquals(test.Identifier, pair);
            assertEquals(test.Label, pair.ToString());
            assertEquals(test.SimpleMoneyness, SIMPLE_MONEYNESS);
            assertEquals(test.YearFraction, TIME_TO_EXPIRY);
        }
Esempio n. 7
0
        public virtual void test_volatility_sensitivity()
        {
            double eps   = 1.0e-6;
            int    nData = TIME.size();

            for (int i = 0; i < NB_TEST; i++)
            {
                double expiryTime = VOLS.relativeTime(TEST_OPTION_EXPIRY[i]);
                SwaptionSensitivity            point      = SwaptionSensitivity.of(VOLS.Name, expiryTime, TEST_TENOR, TEST_STRIKE[i], TEST_FORWARD[i], GBP, TEST_SENSITIVITY[i]);
                CurrencyParameterSensitivities sensActual = VOLS.parameterSensitivity(point);
                CurrencyParameterSensitivity   sensi      = sensActual.getSensitivity(SURFACE.Name, GBP);
                DoubleArray computed = sensi.Sensitivity;

                IDictionary <DoublesPair, double> map = new Dictionary <DoublesPair, double>();
                for (int j = 0; j < nData; ++j)
                {
                    DoubleArray volDataUp            = VOL.subArray(0, nData).with(j, VOL.get(j) + eps);
                    DoubleArray volDataDw            = VOL.subArray(0, nData).with(j, VOL.get(j) - eps);
                    InterpolatedNodalSurface paramUp = InterpolatedNodalSurface.of(METADATA, TIME, SIMPLE_MONEYNESS, volDataUp, INTERPOLATOR_2D);
                    InterpolatedNodalSurface paramDw = InterpolatedNodalSurface.of(METADATA, TIME, SIMPLE_MONEYNESS, volDataDw, INTERPOLATOR_2D);
                    NormalSwaptionExpirySimpleMoneynessVolatilities provUp = NormalSwaptionExpirySimpleMoneynessVolatilities.of(CONVENTION, VAL_DATE_TIME, paramUp);
                    NormalSwaptionExpirySimpleMoneynessVolatilities provDw = NormalSwaptionExpirySimpleMoneynessVolatilities.of(CONVENTION, VAL_DATE_TIME, paramDw);
                    double volUp = provUp.volatility(TEST_OPTION_EXPIRY[i], TEST_TENOR, TEST_STRIKE[i], TEST_FORWARD[i]);
                    double volDw = provDw.volatility(TEST_OPTION_EXPIRY[i], TEST_TENOR, TEST_STRIKE[i], TEST_FORWARD[i]);
                    double fd    = 0.5 * (volUp - volDw) / eps;
                    map[DoublesPair.of(TIME.get(j), SIMPLE_MONEYNESS.get(j))] = fd;
                }
                IList <ParameterMetadata> list = sensi.ParameterMetadata;
                assertEquals(computed.size(), nData);
                for (int j = 0; j < list.Count; ++j)
                {
                    SwaptionSurfaceExpirySimpleMoneynessParameterMetadata metadata = (SwaptionSurfaceExpirySimpleMoneynessParameterMetadata)list[i];
                    double expected = map[DoublesPair.of(metadata.YearFraction, metadata.SimpleMoneyness)];
                    assertEquals(computed.get(i), expected, eps);
                }
            }
        }
Esempio n. 8
0
        public virtual void test_serialization()
        {
            SwaptionSurfaceExpirySimpleMoneynessParameterMetadata test = SwaptionSurfaceExpirySimpleMoneynessParameterMetadata.of(TIME_TO_EXPIRY, SIMPLE_MONEYNESS);

            assertSerialization(test);
        }