/// <inheritdoc />
 public async Task <IPortfolioHistory> GetPortfolioHistoryAsync(
     PortfolioHistoryRequest request,
     CancellationToken cancellationToken = default) =>
 await _httpClient.GetAsync <IPortfolioHistory, JsonPortfolioHistory>(
     await request.EnsureNotNull(nameof(request))
     .GetUriBuilderAsync(_httpClient).ConfigureAwait(false),
     cancellationToken).ConfigureAwait(false);
        /// <summary>
        /// Gets portfolio equity history from Alpaca REST API endpoint.
        /// </summary>
        /// <param name="request">Portfolio history request parameters.</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 portfolio history information object.</returns>
        public Task <IPortfolioHistory> GetPortfolioHistoryAsync(
            PortfolioHistoryRequest request,
            CancellationToken cancellationToken = default)
        {
            request.EnsureNotNull(nameof(request));

            var builder = new UriBuilder(_httpClient.BaseAddress)
            {
                Path  = _httpClient.BaseAddress.AbsolutePath + "account/portfolio/history",
                Query = new QueryBuilder()
                        .AddParameter("start_date", request.TimeInterval?.From, DateTimeHelper.DateFormat)
                        .AddParameter("end_date", request.TimeInterval?.Into, DateTimeHelper.DateFormat)
                        .AddParameter("period", request.Period?.ToString())
                        .AddParameter("timeframe", request.TimeFrame)
                        .AddParameter("extended_hours", request.ExtendedHours)
            };

            return(_httpClient.GetSingleObjectAsync <IPortfolioHistory, JsonPortfolioHistory>(
                       _alpacaRestApiThrottler, builder, cancellationToken));
        }
 /// <inheritdoc />
 public Task <IPortfolioHistory> GetPortfolioHistoryAsync(
     PortfolioHistoryRequest request,
     CancellationToken cancellationToken = default) =>
 _httpClient.GetAsync <IPortfolioHistory, JsonPortfolioHistory>(
     request.EnsureNotNull(nameof(request)).GetUriBuilder(_httpClient),
     cancellationToken, _alpacaRestApiThrottler);