public async Task BuyAsync(CandleModel candle) { if (candle != null) { if (_userBalanceService.HasOpenOrder) { return; } var buyPrice = !_userBalanceService.EnableRealtimeTrading ? candle.ClosePrice : _exchangeProvider.GetTicker(_tradingPair).Result.LowestAsk; _userBalanceService.SetBuyPrice(new CandleModel { ClosePrice = buyPrice, StartDateTime = DateTime.UtcNow }); if (_userBalanceService.EnableRealtimeTrading) { _userBalanceService.OpenOrderNumber = await _exchangeProvider.CreateOrderAsync(TradeType.Buy, _tradingPair, buyPrice, _userBalanceService.Rate); _userBalanceService.HasOpenOrder = true; await CheckOrderInvoked(_userBalanceService.OpenOrderNumber, TradeType.Buy); } var msg = $"Buy crypto currency. Date: {candle.StartDateTime}; Price: ${buyPrice}; Rate: {_userBalanceService.Rate}; OrderNumber: {_userBalanceService.OpenOrderNumber}\n"; Console.WriteLine(msg); _emailService.SendEmail(string.Format(_cryptoTradingOptions.EmailSubject, _tradingPair), msg); } }
public Task BuyAsync(CandleModel candle) { _hasOpenPosition = true; _userBalanceService.SetBuyPrice(candle); Console.WriteLine($"Buy crypto currency. Date: {candle.StartDateTime}; Price: ${candle.ClosePrice}; Rate: {_userBalanceService.Rate}\n"); return(Task.FromResult(0)); }