コード例 #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);
        }
コード例 #2
0
        //-------------------------------------------------------------------------
        public virtual void test_builder()
        {
            BondFutureOptionSecurity test = sut();

            assertEquals(test.Info, INFO);
            assertEquals(test.SecurityId, PRODUCT.SecurityId);
            assertEquals(test.Currency, PRODUCT.Currency);
            assertEquals(test.UnderlyingIds, ImmutableSet.of(PRODUCT.UnderlyingFuture.SecurityId));
        }
コード例 #3
0
        public virtual void test_createProduct_wrongType()
        {
            BondFutureOptionSecurity test = sut();
            BondFuture      future        = PRODUCT.UnderlyingFuture;
            SecurityId      secId         = future.SecurityId;
            GenericSecurity sec           = GenericSecurity.of(INFO);
            ReferenceData   refData       = ImmutableReferenceData.of(secId, sec);

            assertThrows(() => test.createProduct(refData), typeof(System.InvalidCastException));
        }
コード例 #4
0
 public override bool Equals(object obj)
 {
     if (obj == this)
     {
         return(true);
     }
     if (obj != null && obj.GetType() == this.GetType())
     {
         BondFutureOptionSecurity other = (BondFutureOptionSecurity)obj;
         return(JodaBeanUtils.equal(info, other.info) && JodaBeanUtils.equal(currency, other.currency) && JodaBeanUtils.equal(putCall, other.putCall) && JodaBeanUtils.equal(strikePrice, other.strikePrice) && JodaBeanUtils.equal(expiryDate, other.expiryDate) && JodaBeanUtils.equal(expiryTime, other.expiryTime) && JodaBeanUtils.equal(expiryZone, other.expiryZone) && JodaBeanUtils.equal(premiumStyle, other.premiumStyle) && JodaBeanUtils.equal(rounding, other.rounding) && JodaBeanUtils.equal(underlyingFutureId, other.underlyingFutureId));
     }
     return(false);
 }
コード例 #5
0
 internal static BondFutureOptionSecurity sut2()
 {
     return(BondFutureOptionSecurity.builder().info(INFO2).currency(PRODUCT2.Currency).putCall(PUT).strikePrice(PRODUCT2.StrikePrice).expiryDate(PRODUCT2.ExpiryDate).expiryTime(PRODUCT2.ExpiryTime).expiryZone(PRODUCT2.ExpiryZone).premiumStyle(FutureOptionPremiumStyle.UPFRONT_PREMIUM).rounding(PRODUCT2.Rounding).underlyingFutureId(PRODUCT2.UnderlyingFuture.SecurityId).build());
 }
コード例 #6
0
 //-------------------------------------------------------------------------
 internal static BondFutureOptionSecurity sut()
 {
     return(BondFutureOptionSecurity.builder().info(INFO).currency(PRODUCT.Currency).putCall(CALL).strikePrice(PRODUCT.StrikePrice).expiryDate(PRODUCT.ExpiryDate).expiryTime(PRODUCT.ExpiryTime).expiryZone(PRODUCT.ExpiryZone).premiumStyle(FutureOptionPremiumStyle.DAILY_MARGIN).rounding(PRODUCT.Rounding).underlyingFutureId(PRODUCT.UnderlyingFuture.SecurityId).build());
 }