/** * Restricted copy constructor. * @param beanToCopy the bean to copy from, not null */ private Builder(EtdFutureTrade beanToCopy) { this.info = beanToCopy.getInfo(); this.security = beanToCopy.getSecurity(); this.quantity = beanToCopy.getQuantity(); this.price = beanToCopy.getPrice(); }
@Override public EtdFutureTrade withQuantity(double quantity) { return new EtdFutureTrade(info, security, quantity, price); }
public void test_of() { EtdFutureTrade test = EtdFutureTrade.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() { // F-ECAG-FGBS-201706 x 200, Jun17 String future = security.summaryDescription(); String description = getSecurityId().getStandardId().getValue() + " x " + SummarizerUtils.value(getQuantity()) + ", " + future; return SummarizerUtils.summary(this, ProductType.ETD_FUTURE, description, getCurrency()); }
@Override public EtdFutureTrade createTrade(TradeInfo tradeInfo, double quantity, double tradePrice, ReferenceData refData) { return EtdFutureTrade.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() { EtdFutureSecurity test = sut(); assertEquals(test.getVariant(), EtdVariant.MONTHLY); assertEquals(test.getType(), EtdType.FUTURE); 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()), EtdFutureTrade.of(TradeInfo.empty(), test, 1, 2)); assertEquals( test.createPosition(PositionInfo.empty(), 1, ReferenceData.empty()), EtdFuturePosition.ofNet(PositionInfo.empty(), test, 1)); assertEquals( test.createPosition(PositionInfo.empty(), 1, 2, ReferenceData.empty()), EtdFuturePosition.ofLongShort(PositionInfo.empty(), test, 1, 2)); }
static EtdFutureTrade sut2() { return EtdFutureTrade.builder() .security(EtdFutureSecurityTest.sut2()) .quantity(4000) .price(30) .build(); }
@Override protected Object propertyGet(Bean bean, String propertyName, boolean quiet) { switch (propertyName.hashCode()) { case 3237038: // info return ((EtdFutureTrade) bean).getInfo(); case 949122880: // security return ((EtdFutureTrade) bean).getSecurity(); case -1285004149: // quantity return ((EtdFutureTrade) bean).getQuantity(); case 106934601: // price return ((EtdFutureTrade) bean).getPrice(); } return super.propertyGet(bean, propertyName, quiet); }
static EtdFutureTrade sut() { return EtdFutureTrade.builder() .info(TRADE_INFO) .security(SECURITY) .quantity(3000) .price(20) .build(); }
@Override public EtdFutureTrade withPrice(double price) { return new EtdFutureTrade(info, security, quantity, price); }
@Override public EtdFutureTrade build() { return new EtdFutureTrade( info, security, quantity, price); }
@Override public EtdFutureTrade withInfo(TradeInfo info) { return new EtdFutureTrade(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 EtdFutureTrade of( TradeInfo tradeInfo, EtdFutureSecurity security, double quantity, double price) { return new EtdFutureTrade(tradeInfo, security, quantity, price); }