private void loadStockChart(string stockId, bool getRealTimeData) { List <Classes.StockPrice> stockPriceList = model.GetStockPriceData(new string[] { stockId }).First().Value.OrderByDescending(x => x.Date).Take(100).OrderBy(x => x.Date).ToList(); // List<MyStockAnalyzer.Classes.StockPrice> result = stockHelper.GetStockRealTimePrice if (getRealTimeData) { List <Classes.StockPrice> realTimePrice = stockHelper.GetStockRealTimePrice(new List <Classes.StockData>() { model.GetStockDataById(stockId) }, DateTime.Now.Date); if (realTimePrice.Count > 0) { stockPriceList.Add(realTimePrice.First()); } } List <StockChartData> chartData = StockAnalysisHelper.StockPriceDataToChart(stockPriceList); chartKBar.Series.Clear(); chartKBar.Series.Add("KChart"); chartKBar.Series[0].ChartType = SeriesChartType.Candlestick; chartKBar.Series[0]["PriceUpColor"] = "Red"; chartKBar.Series[0]["PriceDownColor"] = "LimeGreen"; foreach (StockChartData data in chartData) { chartKBar.Series[0].Points.AddXY(data.PriceToday.Date.ToString("yyyy/MM/dd"), (double)data.PriceToday.High, (double)data.PriceToday.Low, (double)data.PriceToday.Open, (double)data.PriceToday.Close); chartKBar.Series[0].Points.Last().Color = Color.Black; } chartKBar.ChartAreas[0].AxisY.Minimum = Math.Floor((double)(chartData.Select(x => x.PriceToday.Low).Min() * 0.98m)); chartKBar.ChartAreas[0].AxisY.Maximum = Math.Ceiling((double)(chartData.Select(x => x.PriceToday.High).Max() * 1.02m)); }