Esempio n. 1
0
        /// <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);
Esempio n. 3
0
        /// <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));
        }
Esempio n. 5
0
 /// <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;
Esempio n. 6
0
        /// <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));
        }