Esempio n. 1
0
        /// <summary>
        /// Generates a Bill trade instance where the price is computed from the traded yield.
        /// </summary>
        /// <param name="info">  the additional trade information </param>
        /// <param name="product">  the bill that was traded </param>
        /// <param name="quantity">  the quantity that was traded </param>
        /// <param name="yield">  the yield at which the bill was traded </param>
        /// <returns>  the instance </returns>
        public static BillTrade ofYield(TradeInfo info, Bill product, double quantity, double yield)
        {
            ArgChecker.isTrue(info.SettlementDate.Present, "Bill trades from yield need a settlement date");
            LocalDate settlementDate = info.SettlementDate.get();
            double    price          = product.priceFromYield(yield, settlementDate);

            return(BillTrade.builder().info(info).product(product).quantity(quantity).price(price).build());
        }
Esempio n. 2
0
        public virtual void test_withPrice()
        {
            BillTrade @base    = sut_yield();
            double    price    = 135d;
            BillTrade computed = @base.withPrice(price);
            BillTrade expected = BillTrade.builder().info(TRADE_INFO).product(PRODUCT).quantity(QUANTITY).price(price).build();

            assertEquals(computed, expected);
        }
Esempio n. 3
0
        //-------------------------------------------------------------------------
        public virtual void test_withQuantity()
        {
            BillTrade @base    = sut_price();
            double    quantity = 75343d;
            BillTrade computed = @base.withQuantity(quantity);
            BillTrade expected = BillTrade.builder().info(TRADE_INFO).product(PRODUCT).quantity(quantity).price(PRICE).build();

            assertEquals(computed, expected);
        }
        //-------------------------------------------------------------------------
        public virtual void test_createProduct()
        {
            BillSecurity @base           = BillSecurity.builder().dayCount(DAY_COUNT).info(INFO).legalEntityId(LEGAL_ENTITY).notional(NOTIONAL).settlementDateOffset(SETTLE).yieldConvention(YIELD_CONVENTION).build();
            Bill         expectedProduct = Bill.builder().dayCount(DAY_COUNT).securityId(SECURITY_ID).dayCount(DAY_COUNT).legalEntityId(LEGAL_ENTITY).notional(NOTIONAL).settlementDateOffset(SETTLE).yieldConvention(YIELD_CONVENTION).build();

            assertEquals(@base.createProduct(ReferenceData.empty()), expectedProduct);
            TradeInfo tradeInfo     = TradeInfo.of(date(2016, 6, 30));
            BillTrade expectedTrade = BillTrade.builder().info(tradeInfo).product(expectedProduct).quantity(100).price(1.235).build();

            assertEquals(@base.createTrade(tradeInfo, 100, 1.235, ReferenceData.empty()), expectedTrade);
        }
Esempio n. 5
0
 public virtual void test_settle_or_trade()
 {
     assertThrows(() => BillTrade.builder().info(TradeInfo.empty()).product(PRODUCT).quantity(QUANTITY).price(PRICE).build(), typeof(System.ArgumentException));
 }
Esempio n. 6
0
 public virtual void test_price()
 {
     assertThrows(() => BillTrade.builder().info(TRADE_INFO).product(PRODUCT).quantity(QUANTITY).build(), typeof(System.ArgumentException));
 }
Esempio n. 7
0
 internal static BillTrade sut2()
 {
     return(BillTrade.builder().info(TRADE_INFO2).product(PRODUCT2).quantity(100L).price(PRICE2).build());
 }
Esempio n. 8
0
 /// <summary>
 /// Generates a Bill trade instance from the price.
 /// </summary>
 /// <param name="info">  the additional trade information </param>
 /// <param name="product">  the bill that was traded </param>
 /// <param name="quantity">  the quantity that was traded </param>
 /// <param name="price">  the price at which the bill was traded </param>
 /// <returns>  the instance </returns>
 public static BillTrade ofPrice(TradeInfo info, Bill product, double quantity, double price)
 {
     return(BillTrade.builder().info(info).product(product).quantity(quantity).price(price).build());
 }