Пример #1
0
        public bool ProcessSingleMessage()
        {
            // If the client status is unknown, it means it is still trying to login...
            if (Status == TWSClientStatus.Unknown)
            {
                ProcessLogin();
                return(true);
            }

            if (Status != TWSClientStatus.Connected)
            {
                return(false);
            }

            var msgCode = _enc.DecodeEnum <ServerMessage>();

            switch (msgCode)
            {
            case ServerMessage.SetServerLogLevel:
                ProcessSetServerLogLevel();
                break;

            case ServerMessage.RequestAccountData:
                ProcessAccountDataRequest();
                break;

            case ServerMessage.RequestContractData:
                ProcessContractDataRequest();
                break;

            case ServerMessage.RequestCurrentTime:
                ProcessCurrentTimeRequest();
                break;

            case ServerMessage.RequestMarketData:
                ProcessMarketDataRequest();
                break;

            case ServerMessage.CancelMarketData:
                ProcessMarketDataCancel();
                break;

            case ServerMessage.RequestMarketDepth:
                ProcessMarketDepthRequest();
                break;

            case ServerMessage.CancelMarketDepth:
                ProcessMarketDepthCancel();
                break;

            case ServerMessage.RequestRealTimeBars:
                ProcessRealTimeBarsRequest();
                break;

            case ServerMessage.CancelRealTimeBars:
                ProcessRealTimeBarsCancel();
                break;

            case ServerMessage.RequestAutoOpenOrders:
                ProcessAutoOpenOrdersRequest();
                break;

            case ServerMessage.RequestAllOpenOrders:
                ProcessAllOpenOrdersRequest();
                break;

            case ServerMessage.RequestHistoricalData:
                ProcessHistoricalDataRequest();
                break;

            case ServerMessage.CancelHistoricalData:
                ProcessHistoricalDataCancel();
                break;

            case ServerMessage.RequestExecutions:
                ProcessExecutionsRequest();
                break;

            case ServerMessage.PlaceOrder:
                ProcessPlaceOrder();
                break;

            case ServerMessage.CancelOrder:
                ProcessCancelOrder();
                break;
            }
            return(true);
        }