private void ProcessMarketDepthRequest() { try { var reqVersion = _enc.DecodeInt(); var reqId = _enc.DecodeInt(); int numRows = 0; 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 >= 19) { numRows = _enc.DecodeInt(); } OnMarketDepthRequest(reqId, contract, numRows); } catch (Exception e) { OnError(TWSErrors.FAIL_SEND_REQMKTDEPTH); OnError(e.Message); Disconnect(); } }
private static DateTime? DecodeIBExpiry(ITWSEncoding enc) { var v = enc.DecodeString(); return String.IsNullOrEmpty(v) ? (DateTime?) null : DateTime.ParseExact(v, IB_EXPIRY_DATE_FORMAT, CultureInfo.InvariantCulture); }