Matcher m = tradeRegex.matcher(delimitedTrade);
if( !m.matches() )
throw new TranslateException("Failed to translate trade.", delimitedTrade);
TradeType buyOrSell = parseTradeTypeFrom(m.group(TRADE_TYPE));
Rate tradeRate = parseTradeRateFrom(m.group(RATE));
TradeMultiplier multiplier = parseTradeMultiplierFrom(m.group(MULTIPLIER));
Amount tradeAmount = parseTradeAmountFrom(m.group(AMOUNT), multiplier, tradeRate);
Trade trade = new Trade(buyOrSell, tradeAmount, tradeRate);