public async Task <OpenOrdersResponse> GetOpenOrdersAsync(OpenOrdersContext context) { var api = ApiProviderPrivate.GetApi(context); var body = CreatePostBody(); body.Add("method", ApiMethodsConfig[ApiMethodNamesTiLiWe.ActiveOrders]); if (context.HasMarket) { body.Add("pair", context.Market.ToTicker(this).ToLower()); } var r = await api.GetActiveOrders(body).ConfigureAwait(false); CheckResponse(r); var orders = new List <TradeOrderStatus>(); if (r.return_ != null) { foreach (var order in r.return_) { orders.Add(ParseTradeOrderStatus(order.Key, order.Value)); } } return(new OpenOrdersResponse(orders)); }
public async Task <OpenOrdersResponse> GetOpenOrdersAsync(OpenOrdersContext context) { var api = ApiProvider.GetApi(context); var rRaw = context.HasMarket ? await api.GetOpenOrdersAsync(context.Market.ToTicker(this)).ConfigureAwait(false) : await api.GetOpenOrdersAsync().ConfigureAwait(false); CheckResponseErrors(rRaw); var rOrders = rRaw.GetContent(); var orders = new List <TradeOrderStatus>(); foreach (var rOrder in rOrders) { var isBuy = rOrder.side.Equals("BUY", StringComparison.OrdinalIgnoreCase); var isOpen = rOrder.status.Equals("NEW", StringComparison.OrdinalIgnoreCase) || rOrder.status.Equals("PARTIALLY_FILLED", StringComparison.OrdinalIgnoreCase); var isCancelRequested = rOrder.status.Equals("PENDING_CANCEL", StringComparison.OrdinalIgnoreCase); orders.Add(new TradeOrderStatus(Network, rOrder.orderId.ToString(), isBuy, isOpen, isCancelRequested) { AmountInitial = rOrder.origQty, Rate = rOrder.price, AmountRemaining = rOrder.origQty - rOrder.executedQty }); } return(new OpenOrdersResponse(orders) { ApiHitsCount = 1 }); }
public async Task <OpenOrdersResponse> GetOpenOrdersAsync(OpenOrdersContext context) { var api = ApiProvider.GetApi(context); var body = new BitfinexSchema.OpenOrdersRequest.Descriptor(); var rRaw = await api.GetActiveOrdersAsync(body).ConfigureAwait(false); CheckBitfinexResponseErrors(rRaw); var r = rRaw.GetContent(); var orders = new List <TradeOrderStatus>(); foreach (var rOrder in r) { var isBuy = rOrder.side.Equals("buy", StringComparison.OrdinalIgnoreCase); orders.Add(new TradeOrderStatus(Network, rOrder.id.ToString(), isBuy, rOrder.is_live, rOrder.is_cancelled) { Rate = rOrder.type.Equals("exchange limit", StringComparison.OrdinalIgnoreCase) ? rOrder.price : rOrder.avg_execution_price, Market = rOrder.symbol.ToAssetPair(this, 3), AmountInitial = rOrder.original_amount, AmountRemaining = rOrder.remaining_amount }); } return(new OpenOrdersResponse(orders)); }
public async Task <OpenOrdersResponse> GetOpenOrdersAsync(OpenOrdersContext context) { var rAllOrders = await GetBuysAndSellsAsync(context).ConfigureAwait(false); var allOrders = rAllOrders.Result; var orders = new List <TradeOrderStatus>(); foreach (var rOpenOrder in allOrders.Where(x => x.status.Equals("created", StringComparison.OrdinalIgnoreCase))) { var isBuy = rOpenOrder.resource.Equals("buy", StringComparison.OrdinalIgnoreCase); orders.Add(new TradeOrderStatus(Network, rOpenOrder.id, isBuy, true, false) { AmountInitial = rOpenOrder.amount.amount, Market = new AssetPair(rOpenOrder.amount.currency, rOpenOrder.total.currency, this), Rate = rOpenOrder.subtotal.amount / rOpenOrder.amount.amount }); } return(new OpenOrdersResponse(orders) { ApiHitsCount = rAllOrders.ApiHitsCount }); }
public async Task <OpenOrdersResponse> GetOpenOrdersAsync(OpenOrdersContext context) { var api = ApiProvider.GetApi(context); var rRaw = context.HasMarket ? await api.GetOpenOrdersAsync(context.Market.ToTicker(this).ToUpper()).ConfigureAwait(false) : await api.GetOpenOrdersAsync().ConfigureAwait(false); CheckResponseErrors(rRaw); var r = rRaw.GetContent(); var orders = new List <TradeOrderStatus>(); foreach (var rOrder in r) { var order = ParseOrderResponse(rOrder); if (context.HasMarket) { order.Market = context.Market; } orders.Add(order); } return(new OpenOrdersResponse(orders)); }
public async Task <OpenOrdersResponse> GetOpenOrdersAsync(OpenOrdersContext context) { var api = ApiProvider.GetApi(context); var rOpenOrdersRaw = await api.GetMarketOpenOrders().ConfigureAwait(false); CheckResponseErrors(rOpenOrdersRaw); var rOpenOrders = rOpenOrdersRaw.GetContent(); var orders = new List <TradeOrderStatus>(); orders.AddRange(GetTradeOrderStatusFromResponse(rOpenOrders.result.Select(x => x as BittrexSchema.OrderCommonBase).ToList(), true, order => ((BittrexSchema.OpenOrderEntry)order).CancelInitiated)); return(new OpenOrdersResponse(orders)); }
private void GetOpenOrdersTest(IOrderLimitProvider provider, AssetPair market = null) { var context = new OpenOrdersContext(UserContext.Testing) { Market = market }; OutputWriter.WriteLine("Open orders:\n"); var orders = AsyncContext.Run(() => provider.GetOpenOrdersAsync(context)).Orders.ToArray(); if (orders.Length == 0) { OutputWriter.WriteLine("No open orders returned"); } else { orders.ForEach(DisplayOrderStatusInfo); } }
public Task <OpenOrdersResponse> GetOpenOrdersAsync(OpenOrdersContext context) { throw new NotImplementedException(); }
public async Task <OpenOrdersResponse> GetOpenOrdersAsync(OpenOrdersContext context) { var orders = await GetOrdersAsync(context, true).ConfigureAwait(false); return(new OpenOrdersResponse(orders)); }
public async Task <OpenOrdersResponse> GetOpenOrdersAsync(OpenOrdersContext context) { var openOrders = await GetOpenOrders(context, context.Market).ConfigureAwait(false); return(new OpenOrdersResponse(openOrders)); }