/// <summary> /// Fetch candlestick data for an instrument. /// </summary> /// <param name="pairs">The instrument pair value</param> /// <param name="queryNVC"></param> /// <returns></returns> public async Task <CandlestickResponse> GetInstrumentCandles( InstrumentName instrument, DateTime from, DateTime to, CandlestickGranularity granularity = null, int count = 500, WeeklyAlignment weeklyAlignment = null, string price = "M", bool smooth = false, bool includeFirst = true, int dailyAlignment = 17, string alignmentTimezone = "America/New_York" ) { #region QueryNVC NameValueCollection queryNVC = new NameValueCollection() { { "count", count.ToString() }, { "price", price }, { "smooth", smooth.ToString() }, { "includeFirst", includeFirst.ToString() }, { "dailyAlignment", dailyAlignment.ToString() }, { "alignmentTimeZone", alignmentTimezone } }; if (from != null) { queryNVC.Add("from", from.ToUniversalTime().ToString()); } if (to != null) { queryNVC.Add("to", to.ToUniversalTime().ToString()); } if (granularity != null) { queryNVC.Add("granularity", granularity.ToString()); } if (weeklyAlignment != null) { queryNVC.Add("weeklyAlignment", weeklyAlignment.ToString()); } #endregion string path = string.Format("instruments/{0}/candles", instrument); string query = QueryFromNVC(queryNVC); using (HttpResponseMessage response = await RequestAsync(EHostAPIType.REST, HttpMethod.Get, path, query)) { if (response.StatusCode != HttpStatusCode.OK) { throw new HttpRequestException(JObject.Parse(await response.Content.ReadAsStringAsync())["errorMessage"].ToString()); } using (Stream stream = await response.Content.ReadAsStreamAsync()) { string jsonString = await new StreamReader(stream).ReadToEndAsync(); return(JsonConvert.DeserializeObject <CandlestickResponse>(jsonString, ErrorHandlingSetting)); } } }
public async Task <CandlestickResponse> GetInstrumentCandles( InstrumentName instrument, DateTime from, DateTime to, CandlestickGranularity granularity = null, int count = 500, WeeklyAlignment weeklyAlignment = null ) { return(await GetInstrumentCandles(instrument, from, to, granularity, count, weeklyAlignment)); }