private void NewTickTimer(object sender, ElapsedEventArgs e)
 {
     _timer.Stop();
     foreach (var security in Generators)
     {
         NewTick?.Invoke(security.Value.GenerateNewTick());
     }
     _timer.Start();
 }
        private void Api_OnTickerUpdate(object sender, Quote e)
        {
            if (NewTick == null)
            {
                return;
            }

            _securitiesById.TryGetValue(e.Id, out var instrument);
            if (instrument == null)
            {
                Logger.Warning($"TickerUpdate: available {Name} instruments list does not contain {e.Id}", null);
                return;
            }

            var time     = DateTime.UtcNow;
            var prevTime = DateTime.MinValue;

            if (!_tickTimestamps.TryGetValue(instrument.Symbol, out prevTime) || prevTime < time)
            {
                _tickTimestamps[instrument.Symbol] = time;
                NewTick?.Invoke(GetCombinedTick(instrument, e, time));
            }
        }
Example #3
0
 private void OnNewTick(ModelEventArgs args) => NewTick?.Invoke(this, args);
Example #4
0
 private void OnNewTick(Tick tick) => NewTick?.Invoke(this, tick);