/// <summary> /// Gets list of available orders from Alpaca REST API endpoint. /// </summary> /// <param name="orderStatusFilter">Order status for filtering.</param> /// <param name="untilDateTime">Returns only orders untill specified date.</param> /// <param name="limitOrderNumber">Maximal number of orders in response.</param> /// <returns>Read-only list of order information objects.</returns> public Task <IEnumerable <IOrder> > ListOrdersAsync( OrderStatusFilter?orderStatusFilter = null, DateTime?untilDateTime = null, Int64?limitOrderNumber = null) { var builder = new UriBuilder(_alpacaHttpClient.BaseAddress) { Path = "v1/orders", Query = new QueryBuilder() .AddParameter("status", orderStatusFilter) .AddParameter("until", untilDateTime) .AddParameter("limit", limitOrderNumber) }; return(getObjectsListAsync <IOrder, JsonOrder>(_alpacaHttpClient, builder)); }
public Task <IReadOnlyList <IOrder> > ListOrdersAsync( OrderStatusFilter?orderStatusFilter = null, SortDirection?orderListSorting = null, DateTime?untilDateTimeExclusive = null, DateTime?afterDateTimeExclusive = null, Int64?limitOrderNumber = null, CancellationToken cancellationToken = default) => ListOrdersAsync( new ListOrdersRequest { LimitOrderNumber = limitOrderNumber, OrderListSorting = orderListSorting, OrderStatusFilter = orderStatusFilter } .SetExclusiveTimeIntervalWithNulls(afterDateTimeExclusive, untilDateTimeExclusive), cancellationToken);
/// <summary> /// Gets list of available orders from Alpaca REST API endpoint. /// </summary> /// <param name="orderStatusFilter">Order status for filtering.</param> /// <param name="orderListSorting">The chronological order of response based on the submission time.</param> /// <param name="untilDateTimeExclusive">Returns only orders until specified timestamp (exclusive).</param> /// <param name="afterDateTimeExclusive">Returns only orders after specified timestamp (exclusive).</param> /// <param name="limitOrderNumber">Maximal number of orders in response.</param> /// <returns>Read-only list of order information objects.</returns> public Task <IEnumerable <IOrder> > ListOrdersAsync( OrderStatusFilter?orderStatusFilter = null, OrderListSorting?orderListSorting = null, DateTime?untilDateTimeExclusive = null, DateTime?afterDateTimeExclusive = null, Int64?limitOrderNumber = null) { var builder = new UriBuilder(_alpacaHttpClient.BaseAddress) { Path = _alpacaHttpClient.BaseAddress.AbsolutePath + "orders", Query = new QueryBuilder() .AddParameter("status", orderStatusFilter) .AddParameter("direction", orderListSorting) .AddParameter("until", untilDateTimeExclusive, "O") .AddParameter("after", afterDateTimeExclusive, "O") .AddParameter("limit", limitOrderNumber) }; return(getObjectsListAsync <IOrder, JsonOrder>( _alpacaHttpClient, _alpacaRestApiThrottler, builder)); }
/// <summary> /// Gets list of available orders from Alpaca REST API endpoint. /// </summary> /// <param name="orderStatusFilter">Order status for filtering.</param> /// <param name="orderListSorting">The chronological order of response based on the submission time.</param> /// <param name="untilDateTimeExclusive">Returns only orders until specified timestamp (exclusive).</param> /// <param name="afterDateTimeExclusive">Returns only orders after specified timestamp (exclusive).</param> /// <param name="limitOrderNumber">Maximal number of orders in response.</param> /// <param name="cancellationToken">A cancellation token that can be used by other objects or threads to receive notice of cancellation.</param> /// <returns>Read-only list of order information objects.</returns> public Task <IReadOnlyList <IOrder> > ListOrdersAsync( OrderStatusFilter?orderStatusFilter = null, SortDirection?orderListSorting = null, DateTime?untilDateTimeExclusive = null, DateTime?afterDateTimeExclusive = null, Int64?limitOrderNumber = null, CancellationToken cancellationToken = default) { var builder = new UriBuilder(_httpClient.BaseAddress) { Path = _httpClient.BaseAddress.AbsolutePath + "orders", Query = new QueryBuilder() .AddParameter("status", orderStatusFilter) .AddParameter("direction", orderListSorting) .AddParameter("until", untilDateTimeExclusive, "O") .AddParameter("after", afterDateTimeExclusive, "O") .AddParameter("limit", limitOrderNumber) }; return(_httpClient.GetObjectsListAsync <IOrder, JsonOrder>( _alpacaRestApiThrottler, builder, cancellationToken)); }
/// <summary> /// Get a detailed review of your orders for requested currency pair. You can optionally limit return of orders of a certain type (return only open or only closed orders) /// </summary> /// <param name="symbol">Identifier of currency pair. If undefined, all pairs will be returned.</param> /// <param name="openClosed">Order type filter. Default value: All</param> /// <param name="issuedFrom">Start date</param> /// <param name="issuedTo">End date</param> /// <param name="startRow">Sequence number of the first record</param> /// <param name="endRow">Sequence number of the last record</param> /// <param name="ct">Cancellation token</param> /// <returns>Detailed review of your orders</returns> public WebCallResult <LiveCoinClientOrders> GetClientOrders(string?symbol = null, OrderStatusFilter?openClosed = null, DateTime?issuedFrom = null, DateTime?issuedTo = null, long?startRow = null, long?endRow = null, CancellationToken ct = default) => GetClientOrdersAsync(symbol, openClosed, issuedFrom, issuedTo, startRow, endRow, ct).Result;
/// <summary> /// Get a detailed review of your orders for requested currency pair. You can optionally limit return of orders of a certain type (return only open or only closed orders) /// </summary> /// <param name="symbol">Identifier of currency pair. If undefined, all pairs will be returned.</param> /// <param name="openClosed">Order type filter. Default value: All</param> /// <param name="issuedFrom">Start date</param> /// <param name="issuedTo">End date</param> /// <param name="startRow">Sequence number of the first record</param> /// <param name="endRow">Sequence number of the last record</param> /// <param name="ct">Cancellation token</param> /// <returns>Detailed review of your orders</returns> public async Task <WebCallResult <LiveCoinClientOrders> > GetClientOrdersAsync(string?symbol = null, OrderStatusFilter?openClosed = null, DateTime?issuedFrom = null, DateTime?issuedTo = null, long?startRow = null, long?endRow = null, CancellationToken ct = default) { symbol?.ValidateLiveCoinSymbol(); var parameters = new Dictionary <string, object>(); parameters.AddOptionalParameter("currencyPair", symbol); parameters.AddOptionalParameter("openClosed", openClosed == null ? null : JsonConvert.SerializeObject(openClosed, new OrderStatusFilterConverter(false))); parameters.AddOptionalParameter("issuedFrom", issuedFrom?.ToUnixMilliseconds()); parameters.AddOptionalParameter("issuedTo", issuedTo?.ToUnixMilliseconds()); parameters.AddOptionalParameter("startRow", startRow); parameters.AddOptionalParameter("endRow", endRow); return(await SendRequest <LiveCoinClientOrders>(GetUrl(ExchangeClientOrdersEndpoint), HttpMethod.Get, ct, parameters, true).ConfigureAwait(false)); }