示例#1
0
        public async Task <IDataResult <string> > GetKlinesAsync(string symbol, KLineIntervalEnum interval, DateTime?startTime = null, DateTime?endTime = null, int limit = 500, CancellationToken ct = default)
        {
            try
            {
                var parameters = new Dictionary <string, string>
                {
                    { "symbol", symbol },
                    { "limit", limit.ToString() },
                    { "interval", interval.GetDisplayName() },
                };

                if (startTime.HasValue && endTime.HasValue)
                {
                    parameters["startTime"] = BinanceTrHelper.GetTimestamp(startTime.Value).ToString();
                    parameters["endTime"]   = BinanceTrHelper.GetTimestamp(endTime.Value).ToString();
                }

                var result = await SendRequestWithoutAuth("/klines", parameters, ct : ct).ConfigureAwait(false);

                var data = CheckResult(result);
                if (!BinanceTrHelper.IsJson(data))
                {
                    return(new ErrorDataResult <string>(data));
                }

                return(new SuccessDataResult <string>(data));
            }
            catch (Exception ex)
            {
                return(new ErrorDataResult <string>(ex.Message));
            }
        }
示例#2
0
        public async Task <IDataResult <List <AggregateTradesModel> > > GetAggregateTradesAsync(string symbol, DateTime?startTime = null, DateTime?endTime = null, int limit = 500, CancellationToken ct = default)
        {
            try
            {
                var parameters = new Dictionary <string, string>
                {
                    { "symbol", symbol },
                    { "limit", limit.ToString() }
                };

                if (startTime.HasValue && endTime.HasValue)
                {
                    parameters["startTime"] = BinanceTrHelper.GetTimestamp(startTime.Value).ToString();
                    parameters["endTime"]   = BinanceTrHelper.GetTimestamp(endTime.Value).ToString();
                }

                var result = await SendRequestWithoutAuth("/aggTrades", parameters, ct : ct).ConfigureAwait(false);

                var data = CheckResult(result);
                if (!BinanceTrHelper.IsJson(data))
                {
                    return(new ErrorDataResult <List <AggregateTradesModel> >(data));
                }

                var model = JsonSerializer.Deserialize <List <AggregateTradesModel> >(result);
                return(new SuccessDataResult <List <AggregateTradesModel> >(model));
            }
            catch (Exception ex)
            {
                return(new ErrorDataResult <List <AggregateTradesModel> >(ex.Message));
            }
        }