Exemplo n.º 1
0
        SymbolData ParseData(string symbolStringData)
        {
            SymbolData symbolData = new SymbolData();

            if (symbolData != null)
            {
                dynamic json = JsonConvert.DeserializeObject(symbolStringData);

                int idx = 0;

                if (json != null && json.chart != null && json.chart.result != null && json.chart.result[0] != null && json.chart.result[0].indicators != null &&
                    json.chart.result[0].indicators.quote[0] != null && json.chart.result[0].indicators.quote[0].high != null)
                {
                    foreach (var item in json.chart.result[0].indicators.quote[0].high)
                    {
                        symbolData.allVolumeData.Add((double?)json.chart.result[0].indicators.quote[0].volume[idx]);

                        symbolData.allPriceData.Add((double?)json.chart.result[0].indicators.quote[0].high[idx]);
                        ++idx;
                    }
                }
            }


            return(symbolData);
        }
Exemplo n.º 2
0
        SymbolData ConsolidateData(SymbolData symbolData, int Interval)
        {
            symbolData.allVolumeData.RemoveAll(x => x == null);

            symbolData.allPriceData.RemoveAll(x => x == null);

            symbolData.Volume = symbolData.allVolumeData.Sum();

            double?temp = 0;

            int idx = 0;

            foreach (var item in symbolData.allPriceData)
            {
                if (idx == 0)
                {
                    temp = item;

                    symbolData.PriceData.Add(temp);

                    temp = 0;
                }
                else if (idx % Interval == 0)
                {
                    symbolData.PriceData.Add(temp / (Interval - 1));

                    temp = 0;
                }
                else
                {
                    temp += item;
                }
                ++idx;
            }
            if (temp != 0)
            {
                symbolData.PriceData.Add(temp / ((symbolData.allPriceData.Count % Interval != 0 ? symbolData.allPriceData.Count % Interval : Interval) - 1));
                temp = 0;
            }

            return(symbolData);
        }