/// <summary>
 /// Read from reader
 /// </summary>
 /// <param name="reader">Reader</param>
 public void FromBinary(BinaryReader reader)
 {
     Bid    = (decimal)reader.ReadDouble();
     Ask    = (decimal)reader.ReadDouble();
     Last   = (decimal)reader.ReadDouble();
     Volume = (Volume ?? new ExchangeVolume());
     Volume.FromBinary(reader);
 }
        private ExchangeVolume ParseVolume(JToken token)
        {
            ExchangeVolume vol = new ExchangeVolume();

            JProperty[] props = token.Children <JProperty>().ToArray();
            if (props.Length == 3)
            {
                vol.BaseSymbol      = props[0].Name;
                vol.BaseVolume      = props[0].Value.ConvertInvariant <decimal>();
                vol.ConvertedSymbol = props[1].Name;
                vol.ConvertedVolume = props[1].Value.ConvertInvariant <decimal>();
                vol.Timestamp       = CryptoUtility.UnixTimeStampToDateTimeMilliseconds(props[2].Value.ConvertInvariant <long>());
            }

            return(vol);
        }