/// <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);