public async Task <Result> MirrorRealTrades(Strategy strategy)
        {
            var openedTrades = _tradeRepository.GetByStrategyId(strategy.Id)
                               .Where(o => o.TradeState == TradeState.New || o.TradeState == TradeState.PartialyFulfilled)
                               .GroupBy(o => o.Exchange);

            foreach (var exchange in openedTrades)
            {
                var orders = await _exchangeFactory.GetExchange(exchange.Key).MirrorTrades(strategy.UserId);
            }
            return(new Result(true, ""));
        }
        public IActionResult GetTrades(string strategyId)
        {
            var strategy = _strategyRepository.GetById(strategyId);

            if (strategy == null)
            {
                return(BadRequest("Strategy not found"));
            }
            if (strategy.TradingMode == TradingMode.Real)
            {
                _tradeService.MirrorRealTrades(strategy);
            }
            return(Ok(_tradeRepository.GetByStrategyId(strategyId)));
        }
예제 #3
0
        public IActionResult GetStrategyTrades(string strategyId, int page = 0, int perPage = 15)
        {
            var userId = HttpContext.User.GetUserId();

            if (string.IsNullOrEmpty(userId))
            {
                return(BadRequest("User not found"));
            }

            var allTrades = _tradeRepository.GetByStrategyId(strategyId);
            var trades    = allTrades.OrderBy(o => o.Opened)
                            .Skip(page * perPage).Take(perPage);

            return(Ok(new
            {
                trades = trades.Select(_mapper.Map <JsonTradeModel>),
                page,
                perPage,
                count = allTrades.Count()
            }));
        }