public void test_daily() { EtdVariant test = EtdVariant.ofDaily(24); assertEquals(test.getType(), EtdExpiryType.DAILY); assertEquals(test.getDateCode().getAsInt(), 24); assertEquals(test.getSettlementType().isPresent(), false); assertEquals(test.getOptionType().isPresent(), false); assertEquals(test.isFlex(), false); assertEquals(test.getCode(), "24"); }
public void test_flexFuture() { EtdVariant test = EtdVariant.ofFlexFuture(2, EtdSettlementType.CASH); assertEquals(test.getType(), EtdExpiryType.DAILY); assertEquals(test.getDateCode().getAsInt(), 2); assertEquals(test.getSettlementType().get(), EtdSettlementType.CASH); assertEquals(test.getOptionType().isPresent(), false); assertEquals(test.isFlex(), true); assertEquals(test.getCode(), "02C"); }
public void test_flexOption() { EtdVariant test = EtdVariant.ofFlexOption(24, EtdSettlementType.CASH, EtdOptionType.AMERICAN); assertEquals(test.getType(), EtdExpiryType.DAILY); assertEquals(test.getDateCode().getAsInt(), 24); assertEquals(test.getSettlementType().get(), EtdSettlementType.CASH); assertEquals(test.getOptionType().get(), EtdOptionType.AMERICAN); assertEquals(test.isFlex(), true); assertEquals(test.getCode(), "24CA"); }
public void test_weekly() { EtdVariant test = EtdVariant.ofWeekly(2); assertEquals(test.getType(), EtdExpiryType.WEEKLY); assertEquals(test.getDateCode().getAsInt(), 2); assertEquals(test.getSettlementType().isPresent(), false); assertEquals(test.getOptionType().isPresent(), false); assertEquals(test.isFlex(), false); assertEquals(test.getCode(), "W2"); }
if (day == 0) { if (week == 0) { return Pair.of(yearMonth, EtdVariant.ofMonthly()); } else { return Pair.of(yearMonth, EtdVariant.ofWeekly(week)); return Pair.of(yearMonth, EtdVariant.ofDaily(day)); } else { throw new IllegalArgumentException("ETD date columns conflict, cannot set both expiry day and expiry week"); return Pair.of(yearMonth, EtdVariant.ofFlexFuture(day, settleType.get())); } else { if (!optionType.isPresent()) { throw new IllegalArgumentException("ETD option type not found for Flex Option"); return Pair.of(yearMonth, EtdVariant.ofFlexOption(day, settleType.get(), optionType.get()));
public void test_monthly() { EtdVariant test = EtdVariant.ofMonthly(); assertEquals(test.getType(), EtdExpiryType.MONTHLY); assertEquals(test.getDateCode().isPresent(), false); assertEquals(test.getSettlementType().isPresent(), false); assertEquals(test.getOptionType().isPresent(), false); assertEquals(test.isFlex(), false); assertEquals(test.getCode(), ""); }
.build()) .security(EtdOptionSecurity.of( contract, YearMonth.of(2017, 6), EtdVariant.ofMonthly(), 0, PutCall.PUT, 3d, YearMonth.of(2017, 9))) .longQuantity(15d) .shortQuantity(2d) contract, YearMonth.of(2017, 6), EtdVariant.ofFlexOption(13, EtdSettlementType.CASH, EtdOptionType.AMERICAN), 0, PutCall.CALL, .id(StandardId.of("OG", "123433")) .build()) .security(EtdOptionSecurity.of(contract, YearMonth.of(2017, 6), EtdVariant.ofWeekly(2), 0, PutCall.PUT, 5.1d)) .longQuantity(0d) .shortQuantity(20d)
public void test_optionId_weekly() { SecurityId test = EtdIdUtils.optionId( ExchangeIds.ECAG, FGBS, YearMonth.of(2017, 6), EtdVariant.ofWeekly(3), 0, PutCall.CALL, -1.45); assertEquals(test.getStandardId(), StandardId.of("OG-ETD", "O-ECAG-FGBS-201706W3-CM1.45")); }
public void test_optionId_daily9_version() { SecurityId test = EtdIdUtils.optionId(ExchangeIds.ECAG, FGBS, YearMonth.of(2017, 6), EtdVariant.ofDaily(9), 3, PutCall.PUT, 12.34); assertEquals(test.getStandardId(), StandardId.of("OG-ETD", "O-ECAG-FGBS-20170609-V3-P12.34")); }
static EtdVariant sut2() { return EtdVariant.ofFlexOption(6, EtdSettlementType.CASH, EtdOptionType.EUROPEAN); }
/** * Summarizes this ETD future into string form. * * @return the summary description */ public String summaryDescription() { return variant.getCode() + expiry.format(YM_FORMAT); }
public void test_futureId_flex() { SecurityId test = EtdIdUtils.futureId( ExchangeIds.ECAG, FGBS, YearMonth.of(2017, 6), EtdVariant.ofFlexFuture(26, EtdSettlementType.DERIVATIVE)); assertEquals(test.getStandardId(), StandardId.of("OG-ETD", "F-ECAG-FGBS-20170626D")); }
@Override protected Object propertyGet(Bean bean, String propertyName, boolean quiet) { switch (propertyName.hashCode()) { case 3575610: // type return ((EtdVariant) bean).getType(); case 1792248507: // dateCode return ((EtdVariant) bean).dateCode; case -295448573: // settlementType return ((EtdVariant) bean).settlementType; case 1373587791: // optionType return ((EtdVariant) bean).optionType; } return super.propertyGet(bean, propertyName, quiet); }
/** * The standard monthly ETD. * * @param dayOfMonth the day-of-month * @param settlementType the settlement type * @return the variant */ public static EtdVariant ofFlexFuture(int dayOfMonth, EtdSettlementType settlementType) { return new EtdVariant(EtdExpiryType.DAILY, dayOfMonth, settlementType, null); }
.id(StandardId.of("OG", "123421")) .build()) .securityId(EtdIdUtils.futureId(ExchangeIds.ECAG, FGBL, YearMonth.of(2017, 6), EtdVariant.ofMonthly())) .longQuantity(15d) .shortQuantity(2d) .build()) .securityId(EtdIdUtils.futureId( ExchangeIds.ECAG, FGBL, YearMonth.of(2017, 6), EtdVariant.ofFlexFuture(13, EtdSettlementType.CASH))) .longQuantity(0d) .shortQuantity(13d) .id(StandardId.of("OG", "123423")) .build()) .securityId(EtdIdUtils.futureId(ExchangeIds.ECAG, FGBL, YearMonth.of(2017, 6), EtdVariant.ofWeekly(2))) .longQuantity(0d) .shortQuantity(20d) .id(StandardId.of("OG", "123424")) .build()) .securityId(EtdIdUtils.futureId(ExchangeIds.ECAG, FGBL, YearMonth.of(2017, 6), EtdVariant.ofDaily(3))) .longQuantity(30d) .shortQuantity(0d) .build()) .securityId(EtdIdUtils.optionId( ExchangeIds.ECAG, OGBL, YearMonth.of(2017, 6), EtdVariant.ofMonthly(), 0, PutCall.PUT, 3d, YearMonth.of(2017, 9))) .longQuantity(15d) .shortQuantity(2d)
public void test_futureId_weekly() { SecurityId test = EtdIdUtils.futureId(ExchangeIds.ECAG, FGBS, YearMonth.of(2017, 6), EtdVariant.ofWeekly(2)); assertEquals(test.getStandardId(), StandardId.of("OG-ETD", "F-ECAG-FGBS-201706W2")); }
public void test_futureId_daily() { SecurityId test = EtdIdUtils.futureId(ExchangeIds.ECAG, FGBS, YearMonth.of(2017, 6), EtdVariant.ofDaily(2)); assertEquals(test.getStandardId(), StandardId.of("OG-ETD", "F-ECAG-FGBS-20170602")); }
/** * Summarizes this ETD option into string form. * * @return the summary description */ public String summaryDescription() { String putCallStr = putCall == PutCall.PUT ? "P" : "C"; String versionCode = version > 0 ? "V" + version + " " : ""; NumberFormat f = NumberFormat.getIntegerInstance(Locale.ENGLISH); f.setGroupingUsed(false); f.setMaximumFractionDigits(8); String strikeStr = f.format(strikePrice).replace('-', 'M'); return expiry.format(YM_FORMAT) + variant.getCode() + " " + versionCode + putCallStr + strikeStr; }
/** * The standard weekly ETD. * * @param week the week number * @return the variant */ public static EtdVariant ofWeekly(int week) { return new EtdVariant(EtdExpiryType.WEEKLY, week, null, null); }
.id(StandardId.of("OG", "123421")) .build()) .security(EtdFutureSecurity.of(contract, YearMonth.of(2017, 6), EtdVariant.ofMonthly())) .longQuantity(15d) .shortQuantity(2d) .id(StandardId.of("OG", "123422")) .build()) .security(EtdFutureSecurity.of(contract, YearMonth.of(2017, 6), EtdVariant.ofFlexFuture(13, EtdSettlementType.CASH))) .longQuantity(0d) .shortQuantity(13d) .id(StandardId.of("OG", "123423")) .build()) .security(EtdFutureSecurity.of(contract, YearMonth.of(2017, 6), EtdVariant.ofWeekly(2))) .longQuantity(0d) .shortQuantity(20d) .id(StandardId.of("OG", "123424")) .build()) .security(EtdFutureSecurity.of(contract, YearMonth.of(2017, 6), EtdVariant.ofDaily(3))) .longQuantity(30d) .shortQuantity(0d)