public async Task Test_TradeHistoryAsync()
        {
            const string symbol  = "XBTUSD";
            var          request = new TradeHistoryMdRequest(symbol)
            {
//                From = Functions.FromUnixNano(1574162455620117000),
//                To = Functions.FromUnixNano(1574162518887000000),
                PageNumber = 2,
                Limit      = 10,
            };
            var mdRefresh = await _restClient.TradeHistoryAsync(request, _token).ConfigureAwait(false);

            mdRefresh.Symbol.Should().Be(symbol);
            mdRefresh.MDEntry.Should().HaveCountGreaterThan(0);

            var entry = mdRefresh.MDEntry[0];

            entry.MDEntryType.Should().Be("2");
            entry.TradeId.Should().NotBeNullOrWhiteSpace();
            entry.TransactTime.Should().BeGreaterThan(0);
            entry.MDEntryPx.Should().NotBeNullOrWhiteSpace().And.NotBe("0");
            entry.MDEntrySize.Should().NotBeNullOrWhiteSpace().And.NotBe("0");

            Assert.Fail(mdRefresh.ToString());
        }
Esempio n. 2
0
        private async Task TestTradeHistoryAsync(CancellationToken cancellationToken)
        {
            const string symbol  = "XBTUSD";
            var          request = new TradeHistoryMdRequest(symbol)
            {
                // From = Functions.FromUnixNano(1574162455620117000),
                // To = Functions.FromUnixNano(1574162518887000000),
                PageNumber = 2,
                Limit      = 10,
            };
            var mdRefresh = await _restClient.TradeHistoryAsync(request, cancellationToken).ConfigureAwait(false);

            _logger.LogInformation($"Trade history response: {mdRefresh}");
        }
        public async Task <MarketDataRefresh> TradeHistoryAsync(TradeHistoryMdRequest request, CancellationToken cancellationToken = default)
        {
            Validator.NotNull(nameof(request), request);
            Validator.NotNullOrEmpty(nameof(request.Symbol), request.Symbol);

            var path       = $"{TradesBasePath}/{request.Symbol}";
            var parameters = new List <string>();

            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}");
            }

            string query = null;

            if (parameters.Count > 0)
            {
                query = string.Join("&", parameters);
            }

            return(await GetAsync <MarketDataRefresh>(
                       path,
                       query : query,
                       cancellationToken : cancellationToken).ConfigureAwait(false));
        }