private TechIndicatorDataPoint ComposeDataPoint(Dictionary <string, string> dataPointContent)
        {
            var isAdjusted = dataPointContent.Count > 6;

            var dataPoint = new TechIndicatorDataPoint();

            dataPoint.Time  = DateTime.Parse(dataPointContent[TimeStampKey]);
            dataPoint.Value = Decimal.Parse(dataPointContent[_function.ToString()], CultureInfo.InvariantCulture);

            return(dataPoint);
        }
        private static List <TechIndicatorDataPoint> GetDataPoints(JsonDocument jsonDocument)
        {
            var result = new List <TechIndicatorDataPoint>();

            var dataPointsJsonElement = jsonDocument.RootElement.EnumerateObject().Last().Value;

            foreach (var dataPointJson in dataPointsJsonElement.EnumerateObject())
            {
                var dataPointFieldsJson = dataPointJson.Value;

                var dataPoint = new TechIndicatorDataPoint
                {
                    Time       = dataPointJson.Name.ParseToDateTime(),
                    Parameters = GetParameters(dataPointFieldsJson)
                };

                result.Add(dataPoint);
            }

            return(result);
        }
示例#3
0
 private static bool IsDataPointValid(TechIndicatorDataPoint dp, int expectedParamsCount)
 {
     return(dp.Time != default &&
            dp.Parameters.Count == expectedParamsCount &&
            dp.Parameters.All(IsParameterValid));
 }