コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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));
        }