//------------------------------------------------------------------------- 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); }
//------------------------------------------------------------------------- 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)); }
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)); }
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); }
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()); }
//------------------------------------------------------------------------- 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()); }