Beispiel #1
0
        //-------------------------------------------------------------------------
        public virtual void test_createProduct()
        {
            BondFutureOptionSecurity test            = sut();
            BondFuture         future                = PRODUCT.UnderlyingFuture;
            BondFutureSecurity futureSec             = BondFutureSecurityTest.sut();
            ImmutableList <FixedCouponBond> basket   = future.DeliveryBasket;
            FixedCouponBondSecurity         bondSec0 = FixedCouponBondSecurityTest.createSecurity(future.DeliveryBasket.get(0));
            FixedCouponBondSecurity         bondSec1 = FixedCouponBondSecurityTest.createSecurity(future.DeliveryBasket.get(1));
            ReferenceData    refData = ImmutableReferenceData.of(ImmutableMap.of(test.UnderlyingFutureId, futureSec, basket.get(0).SecurityId, bondSec0, basket.get(1).SecurityId, bondSec1));
            BondFutureOption product = test.createProduct(refData);

            assertEquals(product.UnderlyingFuture.DeliveryBasket.get(0), future.DeliveryBasket.get(0));
            assertEquals(product.UnderlyingFuture.DeliveryBasket.get(1), future.DeliveryBasket.get(1));
            TradeInfo             tradeInfo     = TradeInfo.of(date(2016, 6, 30));
            BondFutureOptionTrade expectedTrade = BondFutureOptionTrade.builder().info(tradeInfo).product(product).quantity(100).price(123.50).build();

            assertEquals(test.createTrade(tradeInfo, 100, 123.50, refData), expectedTrade);

            PositionInfo             positionInfo      = PositionInfo.empty();
            BondFutureOptionPosition expectedPosition1 = BondFutureOptionPosition.builder().info(positionInfo).product(product).longQuantity(100).build();

            TestHelper.assertEqualsBean(test.createPosition(positionInfo, 100, refData), expectedPosition1);
            BondFutureOptionPosition expectedPosition2 = BondFutureOptionPosition.builder().info(positionInfo).product(product).longQuantity(100).shortQuantity(50).build();

            assertEquals(test.createPosition(positionInfo, 100, 50, refData), expectedPosition2);
        }
Beispiel #2
0
        public virtual void test_createProduct_wrongType()
        {
            BondFutureSecurity test = sut();
            ImmutableList <FixedCouponBond> basket = PRODUCT.DeliveryBasket;
            SecurityId      secId   = basket.get(0).SecurityId;
            GenericSecurity sec     = GenericSecurity.of(INFO);
            ReferenceData   refData = ImmutableReferenceData.of(secId, sec);

            assertThrows(() => test.createProduct(refData), typeof(System.InvalidCastException));
        }
Beispiel #3
0
        //-------------------------------------------------------------------------
        public BondFutureOption createProduct(ReferenceData refData)
        {
            Security security = refData.getValue(underlyingFutureId);

            if (!(security is BondFutureSecurity))
            {
                throw new System.InvalidCastException(Messages.format("{} underlying future '{}' resolved to '{}' when '{}' was expected", typeof(BondFutureOptionSecurity).Name, underlyingFutureId, security.GetType().Name, typeof(BondFutureSecurity).Name));
            }
            BondFutureSecurity futureSec  = (BondFutureSecurity)security;
            BondFuture         underlying = futureSec.createProduct(refData);

            return(new BondFutureOption(SecurityId, putCall, strikePrice, expiryDate, expiryTime, expiryZone, premiumStyle, rounding, underlying));
        }
Beispiel #4
0
        //-------------------------------------------------------------------------
        public virtual void test_builder()
        {
            BondFutureSecurity test = sut();

            assertEquals(test.Info, INFO);
            assertEquals(test.SecurityId, PRODUCT.SecurityId);
            assertEquals(test.Currency, PRODUCT.Currency);
            assertEquals(test.FirstDeliveryDate, PRODUCT.FirstDeliveryDate);
            assertEquals(test.LastDeliveryDate, PRODUCT.LastDeliveryDate);
            ImmutableList <FixedCouponBond> basket = PRODUCT.DeliveryBasket;

            assertEquals(test.UnderlyingIds, ImmutableSet.of(basket.get(0).SecurityId, basket.get(1).SecurityId));
        }
Beispiel #5
0
        internal static BondFutureSecurity sut2()
        {
            ImmutableList <FixedCouponBond> basket = PRODUCT2.DeliveryBasket;

            return(BondFutureSecurity.builder().info(INFO2).currency(PRODUCT2.Currency).deliveryBasketIds(basket.get(0).SecurityId).conversionFactors(3d).firstNoticeDate(PRODUCT2.FirstNoticeDate).lastNoticeDate(PRODUCT2.LastNoticeDate).lastTradeDate(PRODUCT2.LastTradeDate).rounding(PRODUCT2.Rounding).build());
        }