private void GetHistoryCandle() { try { var klineString = kline.GetHistory(); var klines = JConverter.JsonConver <List <object[]> >(klineString); foreach (var k in klines) { var ohlcPoint = new OhlcPoint() { Open = Convert.ToDouble(k[1], new CultureInfo("en-US")), High = Convert.ToDouble(k[2], new CultureInfo("en-US")), Low = Convert.ToDouble(k[3], new CultureInfo("en-US")), Close = Convert.ToDouble(k[4], new CultureInfo("en-US")) }; OhclValues.Add(ohlcPoint); LabelsX.Add(Convert.ToInt64(k[0]).UnixToDateTime().ToString(formatX)); } } catch (Exception ex) { // запись логов в БД } }
private void Kline_MessageEvent(object sender, KlineEventArgs e) { try { Candle candle = JConverter.JsonConver <Candle>(e.Message); var ohlcPoint = new OhlcPoint() { Open = candle.k.o, High = candle.k.h, Low = candle.k.l, Close = candle.k.c }; var firstCandle = OhclValues.FirstOrDefault(); if (isClose) { OhclValues.Add(ohlcPoint); OhclValues.Remove(firstCandle); LabelsX.Add(candle.k.t.UnixToDateTime().ToString(formatX)); isClose = false; } else { if (OhclValues.Count > 0) { var lastOhlc = OhclValues.Last(); lastOhlc.Open = ohlcPoint.Open; lastOhlc.High = ohlcPoint.High; lastOhlc.Low = ohlcPoint.Low; lastOhlc.Close = ohlcPoint.Close; } else { OhclValues.Add(ohlcPoint); LabelsX.Add(candle.k.t.UnixToDateTime().ToString(formatX)); } } if (candle.k.x) // проверка должна быть после добавления, иначе добавим закрытую свечу { isClose = true; } } catch (Exception ex) { //TODO: запись логов в БД } //CreateChartValuesLines(); }