public async Task LoadChart() { var stockInfo = new StockInfoItem { Id = StockValueContext.Id, MarketType = StockValueContext.ExchangeTypeKey, Name = StockValueContext.Name }; StockChartModel chartModel = await _queryService.GetRealTimeTradeChartAsync(stockInfo); // Set the start and end value to y axis SetOpenCloseTimeToCharAxis(chartModel); // Set the top and bottom value for the chart SetUpDownLimitLineToChart(chartModel.StockMessage); // Draw the middle, up and down extra line for the chart DrawExtraLines(chartModel.StockMessage); // 設定股價座標顯示的區間次數 SetPriceTickInterval(Convert.ToDouble(chartModel.StockMessage.LimitUp), Convert.ToDouble(chartModel.StockMessage.LimitDown), 5); // Add stock point to chart foreach (var point in chartModel.ChartData) { DateTime xDateTime = DateTimeUtils.UnixTimeStampToDateTime(Convert.ToDouble(point.Timestemp)); var axisPoint = DateTimeAxis.CreateDataPoint(xDateTime, Convert.ToDouble(point.Value)); ChartDataCollection.Add(axisPoint); } }
public IEnumerable <StockChartModel> First([FromBody] IEnumerable <QueryModel> value) { string condField = HttpContext.Request.Query["field"]; string[] condValues = JsonConvert.DeserializeObject <string[]>(HttpContext.Request.Query["value"]); List <string> items = _member.GetStockedModel(value.ElementAt(0).field, condField, condValues); List <StockChartModel> retData = new List <StockChartModel>(); foreach (string element in items) { StockChartModel tmpData = new StockChartModel(); List <QueryModel> queryData = new List <QueryModel>(); queryData.Add(new QueryModel { field = value.ElementAt(0).field, value = element }); queryData.Add(value.ElementAt(1)); tmpData.Name = element; tmpData.Data = _member.GetChartModelByGroupInfo(queryData, condField, condValues); retData.Add(tmpData); } return(retData); }
private void SetOpenCloseTimeToCharAxis(StockChartModel chartModel) { // set the start and end y axis if (chartModel.ChartData.Count > 0) { DateTime op = DateTimeUtils.UnixTimeStampToDateTime(Convert.ToDouble(chartModel.ChartData[0].Timestemp)); DateTime clo = new DateTime(op.Year, op.Month, op.Day, 13, 30, 0); OpeningTimeAxis = DateTimeAxis.ToDouble(op); ClosingTimeAxis = DateTimeAxis.ToDouble(clo); } }
internal StockChartModel ConvertToModel() { StockChartModel chartModel = new StockChartModel(); chartModel.StockId = StockId; if (StockMessage.Count > 0) { chartModel.StockMessage = StockMessage[0].Convert(); } chartModel.ChartData = new List <ChartPointModel>(); foreach (var point in ChartData) { chartModel.ChartData.Add(point.Convert()); } return(chartModel); }