private void ProcessRtvTicked(string value) { var newRtv = new RTVolume(value); var pos = 0; RTVolume rtv = null; while (pos < _rtvList.Count) { rtv = _rtvList[pos]; if (newRtv.Price < rtv.Price) { break; } else if (rtv.Price == newRtv.Price) { rtv.PrevUnixTime = rtv.UnixTime; rtv.UnixTime = newRtv.UnixTime; rtv.Size += newRtv.TickSize; rtv.TickSize = newRtv.TickSize; break; } pos++; } if (rtv != null && rtv.Price == newRtv.Price) { rtv.PrevPrice = _prevPrice; OnRtvTicked(rtv); } else { _rtvList.Insert(pos, newRtv); newRtv.PrevPrice = _prevPrice; OnRtvTicked(newRtv); } _prevPrice = newRtv.Price; }
public RtvTickedEventArgs(RTVolume rtv) { this.Rtv = rtv; }
protected void OnRtvTicked(RTVolume rtv) { RtvTicked?.Invoke(this, new RtvTickedEventArgs(rtv)); }