Exemple #1
0
        //-------------------------------------------------------------------------
        public PortfolioItemSummary summarize()
        {
            // Pay USD 1mm @ GBP/USD 1.32 : 21Jan18
            StringBuilder  buf     = new StringBuilder(64);
            CurrencyAmount @base   = product.BaseCurrencyAmount;
            CurrencyAmount counter = product.CounterCurrencyAmount;

            buf.Append(SummarizerUtils.fx(@base, counter));
            buf.Append(" : ");
            buf.Append(SummarizerUtils.date(product.PaymentDate));
            return(SummarizerUtils.summary(this, ProductType.FX_SINGLE, buf.ToString(), @base.Currency, counter.Currency));
        }
        //-------------------------------------------------------------------------
        public PortfolioItemSummary summarize()
        {
            // Pay USD 1mm @ USD/CNY 6.62 NDF : 21Jan18
            StringBuilder  buf      = new StringBuilder(64);
            CurrencyAmount notional = product.SettlementCurrencyNotional;
            CurrencyAmount counter  = notional.convertedTo(product.NonDeliverableCurrency, product.AgreedFxRate);

            buf.Append(SummarizerUtils.fx(notional, counter));
            buf.Append(" NDF : ");
            buf.Append(SummarizerUtils.date(product.PaymentDate));
            return(SummarizerUtils.summary(this, ProductType.FX_NDF, buf.ToString(), product.SettlementCurrency, product.NonDeliverableCurrency));
        }
        //-------------------------------------------------------------------------
        public PortfolioItemSummary summarize()
        {
            // Pay USD 2mm : 21Jan18
            StringBuilder buf = new StringBuilder(64);

            buf.Append(product.PayReceive);
            buf.Append(' ');
            buf.Append(SummarizerUtils.amount(product.Value));
            buf.Append(" : ");
            buf.Append(SummarizerUtils.date(product.Date.Unadjusted));
            return(SummarizerUtils.summary(this, ProductType.BULLET_PAYMENT, buf.ToString(), product.Currency));
        }
        //-------------------------------------------------------------------------
        public PortfolioItemSummary summarize()
        {
            // Long 5Y USD 2mm Rec USD-LIBOR-6M / Pay 1% : 21Jan18
            string swapDesc = product.Underlying.summaryDescription();

            swapDesc = swapDesc.Contains(":") ? swapDesc.Substring(0, swapDesc.LastIndexOf(':')).Trim() : swapDesc;
            StringBuilder buf = new StringBuilder(96);

            buf.Append(product.LongShort);
            buf.Append(' ');
            buf.Append(swapDesc);
            buf.Append(" : ");
            buf.Append(SummarizerUtils.date(product.ExpiryDate.Unadjusted));
            return(SummarizerUtils.summary(this, ProductType.SWAPTION, buf.ToString(), product.Currency));
        }
        //-------------------------------------------------------------------------
        public PortfolioItemSummary summarize()
        {
            // Long Barrier Pay USD 1mm Premium USD 100k @ GBP/USD 1.32 : 21Jan18
            StringBuilder  buf     = new StringBuilder(96);
            CurrencyAmount @base   = product.UnderlyingOption.Underlying.BaseCurrencyAmount;
            CurrencyAmount counter = product.UnderlyingOption.Underlying.CounterCurrencyAmount;

            buf.Append(product.UnderlyingOption.LongShort);
            buf.Append(" Barrier ");
            buf.Append(SummarizerUtils.fx(@base, counter));
            buf.Append(" Premium ");
            buf.Append(SummarizerUtils.amount(premium.Value.mapAmount(v => Math.Abs(v))));
            buf.Append(" : ");
            buf.Append(SummarizerUtils.date(product.UnderlyingOption.ExpiryDate));
            CurrencyPair currencyPair = product.CurrencyPair;

            return(SummarizerUtils.summary(this, ProductType.FX_SINGLE_BARRIER_OPTION, buf.ToString(), currencyPair.Base, currencyPair.Counter));
        }