public IList <string> GetColumns(string ticker) { IList <string> columns = null; IndicatorData indData = null; if (Indicators.TryGetValue(ticker, out indData)) { columns = new List <string>(indData.Series.Keys); } return(columns); }
public IDictionary <DateTime, decimal> GetTimeseriesData(string ticker, string timeseries) { IDictionary <DateTime, decimal> values = null; IndicatorData indData = null; IndicatorSeriesData indSeriesData = null; if (Indicators.TryGetValue(ticker, out indData) && indData.Series.TryGetValue(timeseries, out indSeriesData)) { values = new Dictionary <DateTime, decimal>(indSeriesData.Values); } return(values); }
public EErrorCodes GetTimeSeriesInfo(string country, string ticker) { EErrorCodes result = EErrorCodes.GeneralError; try { if (Client != null && SessionToken != null) { GetTimeSeriesInfo reqGetTSInfo = new GetTimeSeriesInfo(); reqGetTSInfo.SessionToken = SessionToken; reqGetTSInfo.Ticker = ticker; reqGetTSInfo.CountryCode = country; GetTimeSeriesInfoResponse resGetTSInfo = Post <GetTimeSeriesInfo, GetTimeSeriesInfoResponse>("/api/timeseries/GetTimeSeriesInfo", reqGetTSInfo); if (resGetTSInfo.Success) { IndicatorData indData = null; if (!Indicators.TryGetValue(ticker, out indData)) { indData = new IndicatorData(); indData.Name = resGetTSInfo.Payload.Name; indData.Code = resGetTSInfo.Payload.Ticker; Indicators.Add(ticker, indData); } indData.SetColumns(resGetTSInfo.Payload.Columns); result = EErrorCodes.Success; } else { result = resGetTSInfo.Errors[0].Code; } } else { return(EErrorCodes.SessionClosed); } } catch (Exception ex) { _lastError = ex; result = EErrorCodes.GeneralError; } return(result); }
public decimal GetDateValue(string ticker, string timeseries, DateTime dt) { decimal result = Decimal.MinValue; IndicatorData indData = null; IndicatorSeriesData indSeriesData = null; if (Indicators.TryGetValue(ticker, out indData) && indData.Series.TryGetValue(timeseries, out indSeriesData)) { DateTime k = indSeriesData.Values.Keys.LastOrDefault(x => x <= dt); if (k != DateTime.MinValue) { result = indSeriesData.Values[k]; } } return(result); }
public EErrorCodes GetTimeSeries(string country, string ticker, ETimeFrame timeframe, DateTime periodStart, DateTime periodEnd) { EErrorCodes result = EErrorCodes.GeneralError; try { if (SessionToken != null) { GetTimeSeries reqGetTs = new GetTimeSeries(); reqGetTs.Ticker = ticker; reqGetTs.CountryCode = country; reqGetTs.SessionToken = SessionToken; reqGetTs.PeriodStart = periodStart != DateTime.MinValue ? periodStart : DateTime.Parse("01/01/1970"); reqGetTs.PeriodEnd = periodEnd != DateTime.MinValue ? periodEnd : DateTime.Now; reqGetTs.TimeFrame = timeframe; GetTimeSeriesResponse resGetTs = Post <GetTimeSeries, GetTimeSeriesResponse>("/api/timeseries/GetTimeSeries", reqGetTs); if (resGetTs.Success) { // creating new records if needed IndicatorData indData = null; if (Indicators.TryGetValue(ticker, out indData)) { for (int i = 0; i < resGetTs.Payload.Values.Quotes.Count; ++i) { QuoteRecord rec = resGetTs.Payload.Values.Quotes[i]; for (int v = 0; v < rec.Values.Count; ++v) { String sTsName = indData.SeriesNames[v]; IndicatorSeriesData indTsData = null; if (indData.Series.TryGetValue(sTsName, out indTsData)) { indTsData.Values.Add( rec.Time, rec.Values[v] ); } } } result = EErrorCodes.Success; } else { result = EErrorCodes.TickerNotFound; } } else { _lastError = new Exception(resGetTs.Errors[0].Message); result = resGetTs.Errors[0].Code; } } else { return(EErrorCodes.SessionClosed); } } catch (Exception ex) { _lastError = ex; result = EErrorCodes.GeneralError; } return(result); }