/// <summary> /// 秒表事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void timer_Tick(object sender, EventArgs e) { SecurityLatestData newData = new SecurityLatestData(); SecurityService.GetLatestData(securityCode, ref newData); if (!newData.equal(lastData)) { lastData = newData; Invalidate(); } }
/// <summary> /// 秒表事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void thisTimer_Tick(object sender, EventArgs e) { if (minuteMode) { if (minuteDatasPos < minuteDatas.Count) { minuteDatasPos++; UpdateDataToGraphMinute(minuteDatas, false); Invalidate(); } } else { SecurityLatestData newData = new SecurityLatestData(); SecurityService.GetLatestData(currentCode, ref newData); if (!newData.equal(lastData) && newData.m_volume > 0) { double close = newData.m_close; double dVolume = 0; if (lastData.m_code.Length > 0) { dVolume = newData.m_volume - lastData.m_volume; } SecurityData securityData = new SecurityData(); securityData.date = (double)((long)newData.m_date / (cycle * 60) * (cycle * 60)); if (cycle != 1440) { securityData.date += (cycle * 60); } securityData.close = close; if (DataSource.RowsCount > 0) { if (DataSource.GetXValue(DataSource.RowsCount - 1) == securityData.date) { if (securityData.close > DataSource.Get2(DataSource.RowsCount - 1, COLUMN_HIGH)) { securityData.high = close; } else { securityData.high = DataSource.Get2(DataSource.RowsCount - 1, COLUMN_HIGH); } if (securityData.close < DataSource.Get2(DataSource.RowsCount - 1, COLUMN_LOW)) { securityData.low = close; } else { securityData.low = DataSource.Get2(DataSource.RowsCount - 1, COLUMN_LOW); } securityData.open = DataSource.Get2(DataSource.RowsCount - 1, COLUMN_OPEN); double oldVolume = DataSource.Get2(DataSource.RowsCount - 1, COLUMN_VOLUME); oldVolume += dVolume; securityData.volume = oldVolume; } else { securityData.high = close; securityData.low = close; securityData.open = close; securityData.volume = dVolume; } } else { securityData.high = close; securityData.low = close; securityData.open = close; securityData.volume = dVolume; } List <SecurityData> datas = new List <SecurityData>(); datas.Add(securityData); UpdateDataToGraph(datas, false); datas.Clear(); lastData = newData; } } }