private async Task TradeHistoryAsync(CancellationToken cancellationToken) { // look up documentation to get all available filters var request = new TradeHistoryRequest(MarginAccountId, symbol: "XBTUSD"); var trades = await _restClient.TradeHistoryAsync(request, cancellationToken) .ConfigureAwait(false); var toPrint = string.Join("\n", trades.Select(p => p.ToString())); _logger.LogInformation($"Trades history: {toPrint}"); }
public async Task Test_TradeHistory() { var request = new TradeHistoryRequest(MarginAccountId) { // TradeId = "177ed192-03e8-4f7c-9f69-bbfc32101cab", // ClOrdId = "KwdVbYloR", // Symbol = "XBTUSD", // From = DateTime.Parse("2019-08-02T08:04:42Z").ToUniversalTime(), // To = DateTime.Parse("2019-08-02T08:04:44Z").ToUniversalTime(), // PageNumber = 2, // Limit = 2, }; var trades = await _restClient.TradeHistoryAsync(request, _token).ConfigureAwait(false); trades.Should().NotBeNull(); trades.Should().NotBeNull(); trades.Length.Should().BeGreaterThan(0); }
/// <inheritdoc /> public async Task <ExecutionReport[]> TradeHistoryAsync( TradeHistoryRequest request, CancellationToken cancellationToken = default) { var path = string.Format(TradeHistoryPathTemplate, request.Account); var parameters = new List <string>(); if (!string.IsNullOrWhiteSpace(request.TradeId)) { parameters.Add("trade_id=" + request.TradeId); } if (!string.IsNullOrWhiteSpace(request.ClOrdId)) { parameters.Add("client_order_id=" + request.ClOrdId); } if (!string.IsNullOrWhiteSpace(request.Symbol)) { parameters.Add("symbol=" + request.Symbol); } if (request.From.HasValue) { parameters.Add("from=" + request.From.Value.ToUnixNano()); } if (request.To.HasValue) { parameters.Add("to=" + request.To.Value.ToUnixNano()); } if (request.PageNumber.HasValue) { parameters.Add("page=" + request.PageNumber); } if (request.Limit.HasValue) { parameters.Add("limit=" + request.Limit); } var query = parameters.Count == 0 ? null : string.Join("&", parameters); return(await SendAsync <ExecutionReport[]>( path, HttpMethod.Get, query : query, cancellationToken : cancellationToken).ConfigureAwait(false)); }
public async Task <TradeHistoryResponse> GetTradeHistory(TradeHistoryRequest request) { return(await GetResult <TradeHistoryResponse, TradeHistoryRequest>(PrivateApiCall.GetTradeHistory, request)); }