示例#1
0
        private void UpdateUI(IBMessage message)
        {
            switch (message.Type)
            {
            case MessageType.ConnectionStatus:
            {
                ConnectionStatusMessage statusMessage = (ConnectionStatusMessage)message;
                if (statusMessage.IsConnected)
                {
                    btn_connect_light.BackColor = Color.LightGreen;
                    btn_connect_light.Text      = "ON";
                    accountManager.RequestAccountSummary();

                    grid_order_summary.Rows.Clear();
                    ibClient.ClientSocket.reqExecutions(1, new ExecutionFilter());
                    ibClient.ClientSocket.reqCurrentTime();
                    //grid_open_order.Rows.Clear();
                    //ibClient.ClientSocket.reqAllOpenOrders();
                }
                else
                {
                    btn_connect_light.BackColor = Color.Red;
                    btn_connect_light.Text      = "OFF";
                }
                break;
            }

            case MessageType.ManagedAccounts:
            {
                accountManager.ManagedAccounts = ((ManagedAccountsMessage)message).ManagedAccounts;
                accountManager.SubscribeAccountUpdates();
                break;
            }

            case MessageType.AccountValue:
            {
                accountManager.UpdateUI(message);
                break;
            }

            case MessageType.TickOptionComputation:
            case MessageType.TickPrice:
            case MessageType.TickSize:
            {
                HandleTickMessage((MarketDataMessage)message);
                break;
            }

            case MessageType.RealTimeBars:
            {
                realTimeBarManager.UpdateUI(message);
                break;
            }

            case MessageType.HistoricalData:
            case MessageType.HistoricalDataEnd:
            {
                IAppMDManager appMDMManager = appStrategyManager.getAppMDManager();
                //2015-10-27
                if (isHistDataRequested(message))
                {
                    appMDMManager.updateHistDataAdHoc((HistoricalDataMessage)message);
                }
                else
                {
                    historicalDataManager.UpdateUI(message);
                }

                //historicalDataManager.UpdateUI(message);
                break;
            }

            case MessageType.PortfolioValue:
            {
                accountManager.UpdateUI(message);
                break;
            }

            case MessageType.OpenOrder:
            case MessageType.OpenOrderEnd:
            case MessageType.OrderStatus:
            case MessageType.ExecutionData:
            case MessageType.CommissionsReport:
            {
                if (message.Type == MessageType.ExecutionData)
                {
                    orderManager.processExecution((ExecutionMessage)message);
                }
                //HandleExecutionMessage((ExecutionMessage)message);

                orderManager.UpdateUI(message);
                break;
            }

            case MessageType.ServerTime:
            {
                ServerTimeMessage tm = (ServerTimeMessage)message;
                appStrategyManager.calculateTimeDiffServer(tm.Time);
                //strategyManager.calculateTimeDiffServer(tm.Time);
                break;
            }

            case MessageType.Error:
            {
                ErrorMessage error = (ErrorMessage)message;
                ShowMessageOnPanel("Request " + error.RequestId + ", Code: " + error.ErrorCode + " - " + error.Message + "\r\n");
                HandleErrorMessage(error);
                break;
            }
            }
        }