예제 #1
0
        //-------------------------------------------------------------------------
        public virtual void coverage()
        {
            RawOptionData test = sut();

            coverImmutableBean(test);
            RawOptionData test2 = sut2();

            coverBeanEquals(test, test2);
        }
예제 #2
0
        //-------------------------------------------------------------------------
        public virtual void of()
        {
            RawOptionData test = sut();

            assertEquals(test.Strikes, MONEYNESS);
            assertEquals(test.StrikeType, ValueType.SIMPLE_MONEYNESS);
            assertEquals(test.Data, DATA_FULL);
            assertEquals(test.DataType, ValueType.NORMAL_VOLATILITY);
        }
        /// <summary>
        /// Gets the raw option data for a given tenor.
        /// </summary>
        /// <param name="tenor">  the tenor to retrieve </param>
        /// <returns> the raw option data </returns>
        public RawOptionData getData(Tenor tenor)
        {
            RawOptionData result = data.get(tenor);

            if (result == null)
            {
                throw new System.ArgumentException("No data found for tenor " + tenor);
            }
            return(result);
        }
예제 #4
0
        internal static RawOptionData sut2()
        {
            IList <Period> expiries2 = new List <Period>();

            expiries2.Add(Period.ofMonths(3));
            expiries2.Add(Period.ofYears(1));
            expiries2.Add(Period.ofYears(5));
            RawOptionData test2 = RawOptionData.of(expiries2, STRIKES, ValueType.STRIKE, DATA_SPARSE, ERROR, ValueType.BLACK_VOLATILITY);

            return(test2);
        }
예제 #5
0
        public virtual void ofBlackVolatility()
        {
            double        shift = 0.0075;
            RawOptionData test  = RawOptionData.ofBlackVolatility(EXPIRIES, STRIKES, ValueType.STRIKE, DATA_SPARSE, shift);

            assertEquals(test.Strikes, STRIKES);
            assertEquals(test.StrikeType, ValueType.STRIKE);
            assertEquals(test.Data, DATA_SPARSE);
            assertEquals(test.DataType, ValueType.BLACK_VOLATILITY);
            assertEquals(test.Shift, double?.of(shift));
            assertFalse(test.Error.Present);
        }
예제 #6
0
 //-----------------------------------------------------------------------
 public override bool Equals(object obj)
 {
     if (obj == this)
     {
         return(true);
     }
     if (obj != null && obj.GetType() == this.GetType())
     {
         RawOptionData other = (RawOptionData)obj;
         return(JodaBeanUtils.equal(expiries, other.expiries) && JodaBeanUtils.equal(strikes, other.strikes) && JodaBeanUtils.equal(strikeType, other.strikeType) && JodaBeanUtils.equal(data, other.data) && JodaBeanUtils.equal(error, other.error) && JodaBeanUtils.equal(dataType, other.dataType) && JodaBeanUtils.equal(shift, other.shift));
     }
     return(false);
 }
예제 #7
0
        public virtual void available_smile_at_expiry()
        {
            double        shift = 0.0075;
            RawOptionData test  = RawOptionData.ofBlackVolatility(EXPIRIES, STRIKES, ValueType.STRIKE, DATA_SPARSE, shift);

            DoubleArray[] strikesAvailable = new DoubleArray[3];
            strikesAvailable[0] = DoubleArray.EMPTY;
            strikesAvailable[1] = DoubleArray.of(0.0050, 0.0150, 0.0250);
            strikesAvailable[2] = DoubleArray.of(-0.0050, 0.0050, 0.0150, 0.0250);
            DoubleArray[] volAvailable = new DoubleArray[3];
            volAvailable[0] = DoubleArray.EMPTY;
            volAvailable[1] = DoubleArray.of(0.10, 0.11, 0.12);
            volAvailable[2] = DoubleArray.of(0.10, 0.11, 0.12, 0.13);
            for (int i = 0; i < DATA_SPARSE.rowCount(); i++)
            {
                Pair <DoubleArray, DoubleArray> smile = test.availableSmileAtExpiry(EXPIRIES[i]);
                assertEquals(smile.First, strikesAvailable[i]);
            }
        }
예제 #8
0
 internal static RawOptionData sut3()
 {
     return(RawOptionData.of(EXPIRIES, MONEYNESS, ValueType.SIMPLE_MONEYNESS, DATA_FULL, ERROR, ValueType.NORMAL_VOLATILITY));
 }
예제 #9
0
        public virtual void test_serialization()
        {
            RawOptionData test = RawOptionData.of(EXPIRIES, MONEYNESS, ValueType.SIMPLE_MONEYNESS, DATA_FULL, ValueType.BLACK_VOLATILITY);

            assertSerialization(test);
        }