Example #1
0
            protected override void ProcessResponse(ETradeResponse response)
            {
                var request = response.Request as ETradeGetOrderListRequest;

                if (request != null && request.IsDone && response.Exception == null)
                {
                    var params1 = _paramsDict[request.PortfolioName];

                    if (request.FoundOldestIncompleteOrderPosition < 0)
                    {
                        Client.AddDebugLog("Auto-updates for portfolio '{0}' were stopped.", request.PortfolioName);
                        params1.NumOrdersToRequest      = 0;
                        params1.OldestIncompleteOrderId = 0;
                    }
                    else
                    {
                        params1.NumOrdersToRequest = request.FoundOldestIncompleteOrderPosition >= ETradeGetOrderListRequest.MaxAllowedOrderCount ?
                                                     ETradeGetOrderListRequest.MaxAllowedOrderCount : request.FoundOldestIncompleteOrderPosition + 1;
                        params1.OldestIncompleteOrderId = request.FoundOldestIncompleteOrderId;

                        Client.AddDebugLog("Auto-updates for portfolio '{0}': NumOrdersToRequest={1}, OldestIncompleteOrderId={2}",
                                           request.PortfolioName, params1.NumOrdersToRequest, params1.OldestIncompleteOrderId);
                    }
                }

                base.ProcessResponse(response);
            }
Example #2
0
        protected override ETradeResponse ExecuteNextPartInternal(ETradeApi api)
        {
            Exception ex;

            var result = PerformApiRequest(() => api.GetRateLimitStatus(_moduleName), out ex);

            return(ETradeResponse.Create(this, result, ex));
        }
        protected override ETradeResponse ExecuteNextPartInternal(ETradeApi api)
        {
            Exception ex;

            var result = PerformApiRequest(() => api.ProductLookup(_criteria), out ex);

            return(ETradeResponse.Create(this, result, ex));
        }
Example #4
0
        protected override ETradeResponse ExecuteNextPartInternal(ETradeApi api)
        {
            Exception ex;

            var result = PerformApiRequest(() => api.SendOrderChange(_oldOrderId, _newOrder), out ex);

            return(ETradeResponse.Create(this, result, ex));
        }
Example #5
0
        protected override ETradeResponse ExecuteNextPartInternal(ETradeApi api)
        {
            Exception ex;

            var result = PerformApiRequest(() => api.CancelOrder(_orderId, _portfolioName), out ex);

            return(ETradeResponse.Create(this, result, ex));
        }
        protected override ETradeResponse ExecuteNextPartInternal(ETradeApi api)
        {
            Exception ex;

            var result = PerformApiRequest(api.GetAccounts, out ex);

            return(ETradeResponse.Create(this, result, ex));
        }
        protected override ETradeResponse ExecuteNextPartInternal(ETradeApi api)
        {
            Exception ex;

            var result = PerformApiRequest(() => api.GetPositions(PortfolioName, ref _marker), out ex);

            if (result == null)
            {
                result = new List <PositionInfo>();
            }

            return(ETradeResponse.Create(this, result, ex));
        }
Example #8
0
        protected override ETradeResponse ExecuteNextPartInternal(ETradeApi api)
        {
            Exception ex;

            var result = PerformApiRequest(() =>
                                           api.GetOrderList(PortfolioName, _orderCounter == 0 ? _firstRequestCount : MaxAllowedOrderCount, ref _marker),
                                           out ex);

            if (_marker.IsEmpty())
            {
                _done = true;
            }

            if (ex == null)
            {
                for (var i = 0; i < result.Count; ++i)
                {
                    var nativeOrder = result[i];
                    if (nativeOrder == null)
                    {
                        continue;
                    }

                    if (!ETradeUtil.IsOrderInFinalState(nativeOrder))
                    {
                        FoundOldestIncompleteOrderPosition = _orderCounter + i;
                        FoundOldestIncompleteOrderId       = nativeOrder.orderId;
                    }

                    if (nativeOrder.orderId == _oldestIncompleteOrderId)
                    {
                        _done = true;
                        break;
                    }
                }

                _orderCounter += result.Count;
            }

            if (result != null)
            {
                result.RemoveAll(o => o == null);
            }
            else
            {
                result = new List <Order>();
            }

            return(ETradeResponse.Create(this, result, ex));
        }
            private void GetAccountsResponseHanlder(ETradeResponse <List <AccountInfo> > response)
            {
                Client.AccountsData.SafeInvoke(response.Data, response.Exception);

                var isNew = false;

                foreach (var name in response.Data.Select(info => info.accountId.ToString(CultureInfo.InvariantCulture)).Where(name => !Client._portfolioNames.Contains(name)))
                {
                    Client._portfolioNames.Add(name);
                    isNew = true;
                }

                if (isNew)
                {
                    Client._marketModule.Wakeup();
                    Client._orderModule.Wakeup();
                }
            }
 protected virtual void ProcessResponse(ETradeResponse response)
 {
     response.Process();
 }
Example #11
0
            private void GetOrderListResponseHandler(ETradeResponse <List <Order> > response)
            {
                var portfName = ((ETradeGetOrderListRequest)response.Request).PortfolioName;

                Client.OrdersData.SafeInvoke(portfName, response.Data, response.Exception);
            }
            private void GetPositionsResponseHandler(ETradeResponse <List <PositionInfo> > response)
            {
                var portfName = ((ETradeGetPositionsRequest)response.Request).PortfolioName;

                Client.PositionsData.SafeInvoke(portfName, response.Data, response.Exception);
            }