private void GetCandles(CandleSeries series) { Security security = series.Security; TimeFrame tf = series.TimeFrame; string needPeriodId = GetNeedIdPeriod(tf, out var newTf, out var oldTf); string cmd = "<command id=\"gethistorydata\">"; cmd += "<security>"; cmd += "<board>" + security.NameClass + "</board>"; cmd += "<seccode>" + security.Name + "</seccode>"; cmd += "</security>"; cmd += "<period>" + needPeriodId + "</period>"; cmd += "<count>" + 1000 + "</count>"; cmd += "<reset>" + "true" + "</reset>"; cmd += "</command>"; // sending command / отправка команды string res = _client.ConnectorSendCommand(cmd); if (res != "<result success=\"true\"/>") { SendLogMessage(res, LogMessageType.Error); return; } var startLoadingTime = DateTime.Now; while (startLoadingTime.AddSeconds(10) > DateTime.Now) { var candles = _allCandleSeries.Find(s => s.Seccode == security.Name && s.Period == needPeriodId); if (candles != null) { //series.CandlesAll?.Clear(); var donorCandles = ParseCandles(candles); if ((tf == TimeFrame.Min1 && needPeriodId == "1") || (tf == TimeFrame.Min5 && needPeriodId == "2") || (tf == TimeFrame.Min15 && needPeriodId == "3") || (tf == TimeFrame.Hour1 && needPeriodId == "4")) { series.CandlesAll = donorCandles; } else { series.CandlesAll = BuildCandles(donorCandles, newTf, oldTf); } series.UpdateAllCandles(); series.IsStarted = true; return; } Thread.Sleep(1000); } SendLogMessage(OsLocalization.Market.Message95 + security.Name, LogMessageType.Error); }