public void ReadContractFields()
        {
            if (msgVersion >= 17)
            {
                contract.ConId = eDecoder.ReadInt();
            }

            contract.Symbol  = eDecoder.ReadString();
            contract.SecType = (SecType)Enum.Parse(typeof(SecType), eDecoder.ReadString());;
            contract.LastTradeDateOrContractMonth = eDecoder.ReadString();
            contract.Strike = eDecoder.ReadDouble();
            contract.Right  = eDecoder.ReadEnumSafe <OptionType>();
            if (msgVersion >= 32)
            {
                contract.Multiplier = eDecoder.ReadString();
            }

            contract.Exchange = (ExchangeType)Enum.Parse(typeof(ExchangeType), eDecoder.ReadString());
            contract.Currency = eDecoder.ReadString();
            if (msgVersion >= 2)
            {
                contract.LocalSymbol = eDecoder.ReadString();
            }

            if (msgVersion >= 32)
            {
                contract.TradingClass = eDecoder.ReadString();
            }
        }