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