示例#1
0
        //-------------------------------------------------------------------------
        public virtual void test_getters()
        {
            ResolvedBondFutureOptionTrade test  = sut();
            BondFutureOptionTrade         @base = BondFutureOptionTradeTest.sut();

            assertEquals(test.TradedPrice.get(), TradedPrice.of(@base.Info.TradeDate.get(), @base.Price));
        }
            public override Builder set(string propertyName, object newValue)
            {
                switch (propertyName.GetHashCode())
                {
                case 3237038:         // info
                    this.info_Renamed = (PortfolioItemInfo)newValue;
                    break;

                case -309474065:         // product
                    this.product_Renamed = (ResolvedBondFutureOption)newValue;
                    break;

                case -1285004149:         // quantity
                    this.quantity_Renamed = (double?)newValue.Value;
                    break;

                case -1873824343:         // tradedPrice
                    this.tradedPrice_Renamed = (TradedPrice)newValue;
                    break;

                default:
                    throw new NoSuchElementException("Unknown property: " + propertyName);
                }
                return(this);
            }
 /// <summary>
 /// Restricted copy constructor. </summary>
 /// <param name="beanToCopy">  the bean to copy from, not null </param>
 internal Builder(ResolvedBondFutureOptionTrade beanToCopy)
 {
     this.info_Renamed        = beanToCopy.Info;
     this.product_Renamed     = beanToCopy.Product;
     this.quantity_Renamed    = beanToCopy.Quantity;
     this.tradedPrice_Renamed = beanToCopy.tradedPrice;
 }
示例#4
0
        //-------------------------------------------------------------------------
        public virtual void test_builder()
        {
            ResolvedIborFutureTrade test = sut();

            assertEquals(test.Info, TRADE_INFO);
            assertEquals(test.Product, PRODUCT);
            assertEquals(test.Quantity, QUANTITY);
            assertEquals(test.TradedPrice, TradedPrice.of(TRADE_DATE, PRICE));
        }
示例#5
0
        //-------------------------------------------------------------------------
        public virtual void test_builder()
        {
            ResolvedOvernightFutureTrade test = ResolvedOvernightFutureTrade.builder().info(TRADE_INFO).product(PRODUCT).quantity(QUANTITY).tradedPrice(TradedPrice.of(TRADE_DATE, PRICE)).build();

            assertEquals(test.Info, TRADE_INFO);
            assertEquals(test.Product, PRODUCT);
            assertEquals(test.Quantity, QUANTITY);
            assertEquals(test.TradedPrice, TradedPrice.of(TRADE_DATE, PRICE));
        }
 /// <summary>
 /// Creates an instance. </summary>
 /// <param name="info">  the value of the property, not null </param>
 /// <param name="product">  the value of the property, not null </param>
 /// <param name="quantity">  the value of the property </param>
 /// <param name="tradedPrice">  the value of the property </param>
 internal ResolvedBondFutureOptionTrade(PortfolioItemInfo info, ResolvedBondFutureOption product, double quantity, TradedPrice tradedPrice)
 {
     JodaBeanUtils.notNull(info, "info");
     JodaBeanUtils.notNull(product, "product");
     this.info        = info;
     this.product     = product;
     this.quantity    = quantity;
     this.tradedPrice = tradedPrice;
 }
示例#7
0
        //-------------------------------------------------------------------------
        public virtual void test_resolve()
        {
            IborFutureTrade         test     = sut();
            ResolvedIborFutureTrade resolved = test.resolve(REF_DATA);

            assertEquals(resolved.Info, TRADE_INFO);
            assertEquals(resolved.Product, PRODUCT.resolve(REF_DATA));
            assertEquals(resolved.Quantity, QUANTITY);
            assertEquals(resolved.TradedPrice, TradedPrice.of(TRADE_DATE, PRICE));
        }
        //-------------------------------------------------------------------------
        public virtual void test_resolve()
        {
            OvernightFutureTrade         test     = OvernightFutureTrade.builder().info(TRADE_INFO).product(PRODUCT).quantity(QUANTITY).price(PRICE).build();
            ResolvedOvernightFutureTrade resolved = test.resolve(REF_DATA);

            assertEquals(resolved.Info, TRADE_INFO);
            assertEquals(resolved.Product, PRODUCT.resolve(REF_DATA));
            assertEquals(resolved.Quantity, QUANTITY);
            assertEquals(resolved.TradedPrice, TradedPrice.of(TRADE_DATE, PRICE));
        }
        public ResolvedOvernightFutureTrade resolve(ReferenceData refData)
        {
            if (!info.TradeDate.Present)
            {
                throw new System.ArgumentException("Trade date on TradeInfo must be present");
            }
            ResolvedOvernightFuture resolved    = Product.resolve(refData);
            TradedPrice             tradedPrice = TradedPrice.of(info.TradeDate.get(), price);

            return(new ResolvedOvernightFutureTrade(info, resolved, quantity, tradedPrice));
        }
示例#10
0
 internal static ResolvedIborFutureTrade sut2()
 {
     return(ResolvedIborFutureTrade.builder().info(TRADE_INFO2).product(PRODUCT2).quantity(QUANTITY2).tradedPrice(TradedPrice.of(TRADE_DATE, PRICE2)).build());
 }
 //-------------------------------------------------------------------------
 internal static ResolvedDsfTrade sut()
 {
     return(ResolvedDsfTrade.builder().info(TRADE_INFO).product(PRODUCT).quantity(QUANTITY).tradedPrice(TradedPrice.of(TRADE_DATE, PRICE)).build());
 }
示例#12
0
        //-------------------------------------------------------------------------
        public virtual void test_resolve()
        {
            ResolvedBondFutureOptionTrade expected = ResolvedBondFutureOptionTrade.builder().info(TRADE_INFO).product(OPTION_PRODUCT.resolve(REF_DATA)).quantity(QUANTITY).tradedPrice(TradedPrice.of(TRADE_INFO.TradeDate.get(), PRICE.Value)).build();

            assertEquals(sut().resolve(REF_DATA), expected);
        }
        //-------------------------------------------------------------------------
        public virtual void test_resolve()
        {
            DsfTrade         test     = sut();
            ResolvedDsfTrade expected = ResolvedDsfTrade.builder().info(TRADE_INFO).product(PRODUCT.resolve(REF_DATA)).quantity(QUANTITY).tradedPrice(TradedPrice.of(TRADE_DATE, PRICE)).build();

            assertEquals(test.resolve(REF_DATA), expected);
        }
示例#14
0
        public virtual void test_serialization()
        {
            ResolvedOvernightFutureTrade test = ResolvedOvernightFutureTrade.builder().info(TRADE_INFO).product(PRODUCT).quantity(QUANTITY).tradedPrice(TradedPrice.of(TRADE_DATE, PRICE)).build();

            assertSerialization(test);
        }
示例#15
0
        //-------------------------------------------------------------------------
        public virtual void coverage()
        {
            ResolvedOvernightFutureTrade test1 = ResolvedOvernightFutureTrade.builder().info(TRADE_INFO).product(PRODUCT).quantity(QUANTITY).tradedPrice(TradedPrice.of(TRADE_DATE, PRICE)).build();

            coverImmutableBean(test1);
            ResolvedOvernightFutureTrade test2 = ResolvedOvernightFutureTrade.builder().info(TradeInfo.empty()).product(PRODUCT2).quantity(QUANTITY2).tradedPrice(TradedPrice.of(TRADE_DATE, PRICE2)).build();

            coverBeanEquals(test1, test2);
        }
 /// <summary>
 /// Sets the price that was traded, together with the trade date, optional.
 /// <para>
 /// This is the price agreed when the trade occurred, in decimal form.
 /// Strata uses <i>decimal prices</i> for bond futures options in the trade model, pricers and market data.
 /// This is coherent with the pricing of <seealso cref="BondFuture"/>.
 /// </para>
 /// <para>
 /// This is optional to allow the class to be used to price both trades and positions.
 /// When the instance represents a trade, the traded price should be present.
 /// When the instance represents a position, the traded price should be empty.
 /// </para>
 /// </summary>
 /// <param name="tradedPrice">  the new value </param>
 /// <returns> this, for chaining, not null </returns>
 public Builder tradedPrice(TradedPrice tradedPrice)
 {
     this.tradedPrice_Renamed = tradedPrice;
     return(this);
 }