/** * Restricted copy constructor. * @param beanToCopy the bean to copy from, not null */ private Builder(EtdOptionTrade beanToCopy) { this.info = beanToCopy.getInfo(); this.security = beanToCopy.getSecurity(); this.quantity = beanToCopy.getQuantity(); this.price = beanToCopy.getPrice(); }
@Override public EtdOptionTrade build() { return new EtdOptionTrade( info, security, quantity, price); }
public void test_of() { EtdOptionTrade test = EtdOptionTrade.of(TRADE_INFO, SECURITY, 1000, 20); assertEquals(test.getSecurity(), SECURITY); assertEquals(test.getQuantity(), 1000d, 0d); assertEquals(test.getPrice(), 20d, 0d); assertEquals(test.getSecurityId(), SECURITY.getSecurityId()); assertEquals(test.getCurrency(), SECURITY.getCurrency()); assertEquals(test.withInfo(TRADE_INFO).getInfo(), TRADE_INFO); assertEquals(test.withQuantity(129).getQuantity(), 129d, 0d); assertEquals(test.withPrice(129).getPrice(), 129d, 0d); }
@Override public PortfolioItemSummary summarize() { // O-ECAG-OGBS-201706-P1.50 x 200, Jun17 P1.50 String option = security.summaryDescription(); String description = getSecurityId().getStandardId().getValue() + " x " + SummarizerUtils.value(getQuantity()) + ", " + option; return SummarizerUtils.summary(this, ProductType.ETD_OPTION, description, getCurrency()); }
@Override public EtdOptionTrade createTrade(TradeInfo tradeInfo, double quantity, double tradePrice, ReferenceData refData) { return EtdOptionTrade.builder() .info(tradeInfo) .quantity(quantity) .price(tradePrice) .security(this) .build(); }
public void test_resolveTarget() { GenericSecurity security = GenericSecurity.of(SECURITY.getInfo()); Trade test = sut().resolveTarget(ImmutableReferenceData.of(SECURITY.getSecurityId(), security)); GenericSecurityTrade expected = GenericSecurityTrade.of(TRADE_INFO, security, 3000, 20); assertEquals(test, expected); }
public void test() { EtdOptionSecurity test = sut(); assertEquals(test.getVariant(), EtdVariant.MONTHLY); assertEquals(test.getType(), EtdType.OPTION); assertEquals(test.getCurrency(), Currency.GBP); assertEquals(test.getUnderlyingIds(), ImmutableSet.of()); assertEquals(test.createProduct(REF_DATA), test); assertEquals( test.createTrade(TradeInfo.empty(), 1, 2, ReferenceData.empty()), EtdOptionTrade.of(TradeInfo.empty(), test, 1, 2)); assertEquals( test.createPosition(PositionInfo.empty(), 1, ReferenceData.empty()), EtdOptionPosition.ofNet(PositionInfo.empty(), test, 1)); assertEquals( test.createPosition(PositionInfo.empty(), 1, 2, ReferenceData.empty()), EtdOptionPosition.ofLongShort(PositionInfo.empty(), test, 1, 2)); }
static EtdOptionTrade sut2() { return EtdOptionTrade.builder() .security(EtdOptionSecurityTest.sut2()) .quantity(4000) .price(30) .build(); }
@Override protected Object propertyGet(Bean bean, String propertyName, boolean quiet) { switch (propertyName.hashCode()) { case 3237038: // info return ((EtdOptionTrade) bean).getInfo(); case 949122880: // security return ((EtdOptionTrade) bean).getSecurity(); case -1285004149: // quantity return ((EtdOptionTrade) bean).getQuantity(); case 106934601: // price return ((EtdOptionTrade) bean).getPrice(); } return super.propertyGet(bean, propertyName, quiet); }
static EtdOptionTrade sut() { return EtdOptionTrade.builder() .info(TRADE_INFO) .security(SECURITY) .quantity(3000) .price(20) .build(); }
@Override public EtdOptionTrade withInfo(TradeInfo info) { return new EtdOptionTrade(info, security, quantity, price); }
@Override public EtdOptionTrade withQuantity(double quantity) { return new EtdOptionTrade(info, security, quantity, price); }
@Override public EtdOptionTrade withPrice(double price) { return new EtdOptionTrade(info, security, quantity, price); }
/** * Obtains an instance from trade information, security, quantity and price. * * @param tradeInfo the trade information * @param security the security that was traded * @param quantity the quantity that was traded * @param price the price that was traded * @return the trade */ public static EtdOptionTrade of( TradeInfo tradeInfo, EtdOptionSecurity security, double quantity, double price) { return new EtdOptionTrade(tradeInfo, security, quantity, price); }