public async Task <bool> MirrorTrades(string userId) { var userSecret = _exchangeSecretRepository.GetByUserAndExchange(userId, _exchangeName); var opened = await _poloniexWrapper.GetOpenedTrades(userSecret.ApiKey, userSecret.ApiSecret); var openedTrades = _tradeRepository.GetByUserId(userId).Where(o => o.Strategy.TradingMode == TradingMode.Real && ( o.TradeState == TradeState.New || o.TradeState == TradeState.PartialyFulfilled) && o.Exchange == _exchangeName); foreach (var t in openedTrades.Where(o => !opened.Any(p => o.ExchangeUuid == p))) { _tradeFinalizationService.ExecuteTrade(t, t.Price); } return(true); }