private Task OnNewTrade(TradeDto[] arg) { if (arg == null || !arg.Any()) { return(Task.CompletedTask); } var last = arg.Last(); var timePeriods = Enum.GetValues(typeof(TimePeriod)).Cast <TimePeriod>().ToArray(); foreach (var period in timePeriods) { var key = ExchangeUtils.GetCandleDataKey(last.ExchangeName, last.Instrument, period); if (!_exchangeCandles.ContainsKey(key)) { continue; } _exchangeCandles[key].UpdateCurrentCandle(last.Price, arg.Length, arg.Sum(x => x.Size)); } return(Task.CompletedTask); }
private ExchangeCandles GetData(string exchangeName, Instrument instrument, TimePeriod period) { var key = ExchangeUtils.GetCandleDataKey(exchangeName, instrument, period); return(_exchangeCandles.ContainsKey(key) ? _exchangeCandles[key] : null); }
private async Task OnNewCandle(CandleDto[] arg) { if (arg == null || !arg.Any()) { return; } var last = arg.Last(); var key = ExchangeUtils.GetCandleDataKey(last.ExchangeName, last.Instrument, last.Period); if (!_exchangeCandles.ContainsKey(key)) { return; } await _exchangeCandles[key].InsertCandlesAsync(arg); }