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

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

            Messages.Server msgCode = _enc.DecodeServerMessage();

            switch (msgCode)
            {
            case Messages.Server.SET_SERVER_LOGLEVEL: ProcessSetServerLogLevel(); break;

            case Messages.Server.REQ_ACCOUNT_DATA: ProcessAccountDataRequest(); break;

            case Messages.Server.REQ_CONTRACT_DATA: ProcessContractDataRequest(); break;

            case Messages.Server.REQ_CURRENT_TIME: ProcessCurrentTimeRequest(); break;

            case Messages.Server.REQ_MKT_DATA: ProcessMarketDataRequest(); break;

            case Messages.Server.CANCEL_MKT_DATA: ProcessMarketDataCancel(); break;

            case Messages.Server.REQ_MKT_DEPTH: ProcessMarketDepthRequest(); break;

            case Messages.Server.CANCEL_MKT_DEPTH: ProcessMarketDepthCancel(); break;

            case Messages.Server.REQ_REAL_TIME_BARS: ProcessRealTimeBarsRequest(); break;

            case Messages.Server.CANCEL_REAL_TIME_BARS: ProcessRealTimeBarsCancel(); break;

            case Messages.Server.REQ_AUTO_OPEN_ORDERS: ProcessAutoOpenOrdersRequest(); break;

            case Messages.Server.REQ_ALL_OPEN_ORDERS: ProcessAllOpenOrdersRequest(); break;

            case Messages.Server.REQ_HISTORICAL_DATA: ProcessHistoricalDataRequest(); break;

            case Messages.Server.CANCEL_HISTORICAL_DATA: ProcessHistoricalDataCancel(); break;

            case Messages.Server.REQ_EXECUTIONS: ProcessExecutionsRequest(); break;

            case Messages.Server.PLACE_ORDER: ProcessPlaceOrder(); break;

            case Messages.Server.CANCEL_ORDER: ProcessCancelOrder(); break;
            }
            return(true);
        }