public GetEcoIndexDataResponse GetEcoIndexData(GetEcoIndexDataRequest request) { RestRequest restRequest = new RestRequest(request.PatterName + "/_search", Method.POST); ElasticSingleRequest searchRequest = new ElasticSingleRequest { query = new ElasticEcoQuery { @bool = new ElasticBool { filter = new ElasticFilter { term = new ElasticTermId { Id = request.EcoIndexNr } }, must = new ElasticMustFilter { term = new ElasticMustName { Name = request.PairName } }, should = new ElasticShouldFilter() { range = new ElasticRange { Time = new ElasticRangeParameter { gte = request.From.ToString("yyyy-MM-dd"), lte = request.To.ToString("yyyy-MM-dd") } } } } }, size = request.size, sort = new List <ElasticSort> { new ElasticSort { Time = new ElasticTimeSort() } } }; restRequest.AddJsonBody(searchRequest); IRestResponse <GetEcoIndexDataResponse> response = _client.Execute <GetEcoIndexDataResponse>(restRequest); return(response.Data); }
private Dictionary <int, List <EcoIndex> > GetAllExchangeEcoIndexValues() { Dictionary <int, List <EcoIndex> > allIndexes = new Dictionary <int, List <EcoIndex> > { { 1, new List <EcoIndex>() }, { 2, new List <EcoIndex>() }, }; List <string> allCurrencies = new List <string> { "btc_usd", "eth_usd", "eth_btc", "eth_eur", "btc_eur" }; List <int> allEcoIndexes = new List <int> { (int)EcoIndexEnum.RSI, (int)EcoIndexEnum.EMA, (int)EcoIndexEnum.ForceIndex }; foreach (var currIndex in allIndexes) { foreach (string currencyPair in allCurrencies) { foreach (int ecoIndex in allEcoIndexes) { GetEcoIndexDataRequest ecoIndexDataRequest = new GetEcoIndexDataRequest { PatterName = currIndex.Key == 1 ? "cex_eco_index" : "poloniex_eco_index", From = DateTime.Now.AddMinutes(-2), To = DateTime.Now, EcoIndexNr = ecoIndex, size = 1, PairName = currencyPair }; GetEcoIndexDataResponse ecoIndexDataResponse = _elasticClient.GetEcoIndexData(ecoIndexDataRequest); EcoIndex newEcoIndex = ecoIndexDataResponse.hits.hits.FirstOrDefault()?._source; if (newEcoIndex != null) { currIndex.Value.Add(newEcoIndex); } } } } return(allIndexes); }
public GetChartDataResponse GetChartData(GetChartDataRequest request) { GetFormattedDataRequest formattedDataRequest = new GetFormattedDataRequest { PatterName = request.ExchangeType == 1 ? "cex_formatted" : "poloniex_formatted", From = DateTime.Now.AddMinutes(-25), To = DateTime.Now, ExchangeType = request.ExchangeType, size = 300, PairType = (int)ResolvePairTypeEnum(request.Symbol1, request.Symbol2) }; GetFormattedDataResponse formattedDataResponse = _elasticClient.GetFormattedTickers(formattedDataRequest); List <TickerFormattedDto> tickers = formattedDataResponse.hits.hits.Select(r => r._source).ToList(); GetChartDataResponse response = new GetChartDataResponse { Success = true, Error = "", ChartPoints = new List <ChartPoint>(), EcoPoints = new Dictionary <int, List <EcoPoint> > { { 1, new List <EcoPoint>() }, { 2, new List <EcoPoint>() }, { 3, new List <EcoPoint>() } } }; foreach (TickerFormattedDto corTicker in tickers) { response.ChartPoints.Add(new ChartPoint { High = corTicker.High, Last = corTicker.Last, Low = corTicker.Low, Time = corTicker.Time, Volume = corTicker.Volume }); } string pairName = request.Symbol1.ToLower() + "_" + request.Symbol2.ToLower(); if (pairName == "btc_eth") { pairName = "eth_btc"; } if (request.ShowRSI) { GetEcoIndexDataRequest ecoIndexDataRequest = new GetEcoIndexDataRequest { PatterName = request.ExchangeType == 1 ? "cex_eco_index" : "poloniex_eco_index", From = DateTime.Now.AddMinutes(-25), To = DateTime.Now, EcoIndexNr = (int)EcoIndexEnum.RSI, size = 300, PairName = pairName }; GetEcoIndexDataResponse ecoIndexDataResponse = _elasticClient.GetEcoIndexData(ecoIndexDataRequest); List <EcoIndex> ecoIndexDtos = ecoIndexDataResponse.hits.hits.Select(r => r._source).ToList(); List <EcoPoint> rsiPoints = response.EcoPoints.FirstOrDefault(k => k.Key == (int)EcoIndexEnum.RSI).Value; foreach (var ecoIndex in ecoIndexDtos) { rsiPoints.Add(new EcoPoint { Id = (int)EcoIndexEnum.RSI, Time = ecoIndex.Time, Value = ecoIndex.Value }); } } if (request.ShowEMA) { GetEcoIndexDataRequest ecoIndexDataRequest = new GetEcoIndexDataRequest { PatterName = request.ExchangeType == 1 ? "cex_eco_index" : "poloniex_eco_index", From = DateTime.Now.AddMinutes(-25), To = DateTime.Now, EcoIndexNr = (int)EcoIndexEnum.EMA, size = 300, PairName = pairName }; GetEcoIndexDataResponse ecoIndexDataResponse = _elasticClient.GetEcoIndexData(ecoIndexDataRequest); List <EcoIndex> ecoIndexDtos = ecoIndexDataResponse.hits.hits.Select(r => r._source).ToList(); List <EcoPoint> emaPoints = response.EcoPoints.FirstOrDefault(k => k.Key == (int)EcoIndexEnum.EMA).Value; foreach (var ecoIndex in ecoIndexDtos) { emaPoints.Add(new EcoPoint { Id = (int)EcoIndexEnum.EMA, Time = ecoIndex.Time, Value = ecoIndex.Value }); } } if (request.ShowFI) { GetEcoIndexDataRequest ecoIndexDataRequest = new GetEcoIndexDataRequest { PatterName = request.ExchangeType == 1 ? "cex_eco_index" : "poloniex_eco_index", From = DateTime.Now.AddMinutes(-25), To = DateTime.Now, EcoIndexNr = (int)EcoIndexEnum.ForceIndex, size = 300, PairName = pairName }; GetEcoIndexDataResponse ecoIndexDataResponse = _elasticClient.GetEcoIndexData(ecoIndexDataRequest); List <EcoIndex> ecoIndexDtos = ecoIndexDataResponse.hits.hits.Select(r => r._source).ToList(); List <EcoPoint> emaPoints = response.EcoPoints.FirstOrDefault(k => k.Key == (int)EcoIndexEnum.ForceIndex).Value; foreach (var ecoIndex in ecoIndexDtos) { emaPoints.Add(new EcoPoint { Id = (int)EcoIndexEnum.ForceIndex, Time = ecoIndex.Time, Value = ecoIndex.Value }); } } return(response); }