private void ProcessContractDataRequest() { try { // send req mkt data msg var reqVersion = _enc.DecodeInt(); var contract = new IBContract(); contract.Symbol = _enc.DecodeString(); contract.SecType = _enc.DecodeSecType(); contract.Expiry = _enc.DecodeExpiryDate(); contract.Strike = _enc.DecodeDouble(); contract.Right = _enc.DecodeString(); if (ServerInfo.Version >= 15) { contract.Multiplier = _enc.DecodeInt(); } contract.Exchange = _enc.DecodeString(); contract.Currency = _enc.DecodeString(); contract.LocalSymbol = _enc.DecodeString(); if (ServerInfo.Version >= 31) { contract.IncludeExpired = _enc.DecodeBool(); } OnContractDataRequest(contract); } catch (Exception e) { OnError(TWSErrors.FAIL_SEND_REQCONTRACT); OnError(e.Message); Disconnect(); } }