Esempio n. 1
0
        private void AfterSuccessLogin(InitialAppDataResponseData data = null)
        {
            m_state = ConnectionStateEnum.Connected;
            m_NTconnection.ProcessEventArgs(new ConnectionStatusEventArgs(m_NTconnection, ErrorCode.NoError, "", ConnectionStatus.Connected, ConnectionStatus.Connected));

            if (m_firstConnect)
            {
                m_firstConnect = false;
                m_NTconnection.AccountItems = new AccountItem[] { AccountItem.CashValue, AccountItem.RealizedProfitLoss };

                m_NTconnection.Actions         = new OrderAction[] { OrderAction.Buy, OrderAction.BuyToCover, OrderAction.Sell, OrderAction.SellShort };
                m_NTconnection.Currencies      = new NinjaTrader.Cbi.Currency[] { NinjaTrader.Cbi.Currency.Unknown, NinjaTrader.Cbi.Currency.UsDollar };
                m_NTconnection.Exchanges       = new Exchange[] { Exchange.Default };
                m_NTconnection.Features        = new Feature[] { Feature.SynchronousInstrumentLookup, Feature.MarketData, Feature.Order, Feature.OrderChange };
                m_NTconnection.InstrumentTypes = new[] { InstrumentType.Currency, InstrumentType.Stock, InstrumentType.Index, InstrumentType.Future };
                m_NTconnection.MarketDataTypes = new MarketDataType[] { MarketDataType.Ask, MarketDataType.Bid, MarketDataType.DailyHigh, MarketDataType.DailyLow, MarketDataType.Last, MarketDataType.Opening };
                m_NTconnection.MarketPositions = new MarketPosition[] { MarketPosition.Flat, MarketPosition.Long, MarketPosition.Short };
                m_NTconnection.OrderStates     = new OrderState[] { OrderState.Cancelled, OrderState.Filled, OrderState.Working };
                m_NTconnection.OrderTypes      = new OrderType[] { OrderType.Limit, OrderType.Market };
                m_NTconnection.TimeInForces    = new TimeInForce[] { TimeInForce.Gtc };
            }

            // After we reported about the login update the accounts
            if (m_userInfo.Accounts.Count > 0 && !string.IsNullOrEmpty(m_userInfo.Accounts[0].GUID))
            {
                m_NTconnection.ProcessEventArgs(new AccountEventArgs(m_NTconnection, ErrorCode.NoError, "", m_userInfo.Accounts[0].GUID, Mode.Live));
                UpdateAccountStatus(m_userInfo.Accounts[0]);
            }

            UpdatePositionsUpdate(data.Positions, data.Orders);
            UpdateMarketData(data.Quotes, data.Assets);
        }
Esempio n. 2
0
        private void GetInitialAppData(bool isLogin = true)
        {
            m_pxConnector.Send(TradingApp.GetInitialAppData(m_token, m_userInfo.GUID), res => {
                if (isLogin && res.Error != null && !string.IsNullOrEmpty(res.Error.Code))
                {
                    m_NTconnection.ProcessEventArgs(new ConnectionStatusEventArgs(m_NTconnection, ErrorCode.LoginFailed, res.Error.Message, ConnectionStatus.Disconnected, ConnectionStatus.Disconnected));
                    return;
                }

                InitialAppDataResponseData data = res.Data as InitialAppDataResponseData;
                if (isLogin && data == null)
                {
                    m_NTconnection.ProcessEventArgs(new ConnectionStatusEventArgs(m_NTconnection, ErrorCode.LoginFailed, "Failed fetching InitialAppData", ConnectionStatus.Disconnected, ConnectionStatus.Disconnected));
                    return;
                }

                if (isLogin)
                {
                    AfterSuccessLogin(data);
                }
            });
        }