@Override public IborFutureOptionTrade createTrade( TradeInfo info, double quantity, double tradePrice, ReferenceData refData) { return new IborFutureOptionTrade(info, createProduct(refData), quantity, tradePrice); }
@Override public IborFutureOptionPosition createPosition( PositionInfo positionInfo, double longQuantity, double shortQuantity, ReferenceData refData) { return IborFutureOptionPosition.ofLongShort(positionInfo, createProduct(refData), longQuantity, shortQuantity); }
public void test_createProduct_wrongType() { IborFutureOptionSecurity test = sut(); IborFuture future = OPTION.getUnderlyingFuture(); SecurityId secId = future.getSecurityId(); GenericSecurity sec = GenericSecurity.of(INFO); ReferenceData refData = ImmutableReferenceData.of(secId, sec); assertThrows(() -> test.createProduct(refData), ClassCastException.class); }
public void test_createProduct() { IborFutureOptionSecurity test = sut(); ReferenceData refData = ImmutableReferenceData.of(FUTURE_ID, FUTURE_SECURITY); assertEquals(test.createProduct(refData), OPTION); TradeInfo tradeInfo = TradeInfo.of(date(2016, 6, 30)); IborFutureOptionTrade expectedTrade = IborFutureOptionTrade.builder() .info(tradeInfo) .product(OPTION) .quantity(100) .price(123.50) .build(); assertEquals(test.createTrade(tradeInfo, 100, 123.50, refData), expectedTrade); PositionInfo positionInfo = PositionInfo.empty(); IborFutureOptionPosition expectedPosition1 = IborFutureOptionPosition.builder() .info(positionInfo) .product(OPTION) .longQuantity(100) .build(); TestHelper.assertEqualsBean(test.createPosition(positionInfo, 100, refData), expectedPosition1); IborFutureOptionPosition expectedPosition2 = IborFutureOptionPosition.builder() .info(positionInfo) .product(OPTION) .longQuantity(100) .shortQuantity(50) .build(); assertEquals(test.createPosition(positionInfo, 100, 50, refData), expectedPosition2); }