//------------------------------------------------------------------------- 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)); }