/// <summary> /// Parses from the CSV row. /// </summary> /// <param name="row"> the CSV row </param> /// <param name="info"> the trade info </param> /// <param name="resolver"> the resolver used to parse additional information </param> /// <returns> the parsed trade </returns> internal static SwapTrade parse(CsvRow row, IList <CsvRow> variableRows, TradeInfo info, TradeCsvInfoResolver resolver) { SwapTrade trade = parseRow(row, info, resolver); trade = parseVariableNotional(trade, variableRows); trade = parseVariableRates(trade, variableRows); return(resolver.completeTrade(row, trade)); }
// parses a trade from the CSV row internal static SecurityQuantityTrade parseTrade(CsvRow row, TradeInfo info, TradeCsvInfoResolver resolver) { SecurityTrade trade = parseSecurityTrade(row, info, resolver); SecurityTrade @base = resolver.completeTrade(row, trade); double?tickSizeOpt = row.findValue(TICK_SIZE).map(str => LoaderUtils.parseDouble(str)); Optional <Currency> currencyOpt = row.findValue(CURRENCY).map(str => Currency.of(str)); double?tickValueOpt = row.findValue(TICK_VALUE).map(str => LoaderUtils.parseDouble(str)); double contractSize = row.findValue(CONTRACT_SIZE).map(str => LoaderUtils.parseDouble(str)).orElse(1d); if (tickSizeOpt.HasValue && currencyOpt.Present && tickValueOpt.HasValue) { SecurityPriceInfo priceInfo = SecurityPriceInfo.of(tickSizeOpt.Value, CurrencyAmount.of(currencyOpt.get(), tickValueOpt.Value), contractSize); GenericSecurity sec = GenericSecurity.of(SecurityInfo.of(@base.SecurityId, priceInfo)); return(GenericSecurityTrade.of(@base.Info, sec, @base.Quantity, @base.Price)); } return(@base); }
/// <summary> /// Parses the data from a CSV row. /// </summary> /// <param name="row"> the CSV row object </param> /// <param name="info"> the trade info object </param> /// <param name="resolver"> the resolver used to parse additional information. This is not currently used in this method. </param> /// <returns> the parsed trade, as an instance of <seealso cref="FxSingleTrade"/> </returns> internal static FxSingleTrade parse(CsvRow row, TradeInfo info, TradeCsvInfoResolver resolver) { FxSingleTrade trade = parseRow(row, info); return(resolver.completeTrade(row, trade)); }
/// <summary> /// Parses from the CSV row. /// </summary> /// <param name="row"> the CSV row </param> /// <param name="info"> the trade info </param> /// <param name="resolver"> the resolver used to parse additional information </param> /// <returns> the parsed trade </returns> internal static TermDepositTrade parse(CsvRow row, TradeInfo info, TradeCsvInfoResolver resolver) { TermDepositTrade trade = parseRow(row, info, resolver); return(resolver.completeTrade(row, trade)); }