//-------------------------------------------------------------------------
        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));
        }
Exemple #2
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()
        {
            // 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));
        }
Exemple #4
0
        //-------------------------------------------------------------------------
        public PortfolioItemSummary summarize()
        {
            // Pay USD 1mm @ GBP/USD 1.32 : Rec USD 1mm @ GBP/USD 1.35 : 21Jan18-21Apr18
            StringBuilder  buf      = new StringBuilder(96);
            CurrencyAmount base1    = product.NearLeg.BaseCurrencyAmount;
            CurrencyAmount counter1 = product.NearLeg.CounterCurrencyAmount;
            CurrencyAmount base2    = product.FarLeg.BaseCurrencyAmount;
            CurrencyAmount counter2 = product.FarLeg.CounterCurrencyAmount;

            buf.Append(SummarizerUtils.fx(base1, counter1));
            buf.Append(" / ");
            buf.Append(SummarizerUtils.fx(base2, counter2));
            buf.Append(" : ");
            buf.Append(SummarizerUtils.dateRange(product.NearLeg.PaymentDate, product.FarLeg.PaymentDate));
            CurrencyPair currencyPair = product.NearLeg.CurrencyPair;

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