Ejemplo n.º 1
0
        /// <summary>
        /// Get price and place a buy order
        /// </summary>
        /// <returns>Boolean when complete</returns>
        private bool BuyCryptoCheck()
        {
            var price = OrderBookBuyPrice();

            price = _trader.OrderBookBuyCheck(price);

            if (price != 0.00000000M &&
                ((!_botSettings.tradingCompetition && price <= _lastSell) || _botSettings.tradingCompetition))
            {
                _trader.BuyCrypto(price, TradeType.BUY, false, false);
                _tradeType = TradeType.SELL;
                _lastBuy   = price;
                var signal = new TradeSignal
                {
                    lastBuy         = _lastBuy,
                    lastSell        = _lastSell,
                    pair            = _symbol,
                    price           = price,
                    signal          = SignalType.OrderBook,
                    tradeType       = TradeType.ORDERBOOKBUY,
                    transactionDate = DateTime.UtcNow
                };
                _fileRepo.LogSignal(signal);
            }
            return(true);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Check if buying coins or not
        /// </summary>
        /// <param name="candleStick">current Candlestick object</param>
        /// <param name="previousStick">previous Candlestick object</param>
        /// <returns>Boolean if trade made</returns>
        private bool BuyCryptoCheck(Candlstick candleStick, Candlstick previousStick)
        {
            var tradeType = TankingCheck(candleStick, TradeType.BUY);

            if (tradeType != TradeType.NONE || _tradeNumber == 0)
            {
                //if (_tradeNumber == 0)
                //    tradeType = TradeType.BUY;

                var buyStatus = _trader.BuyCrypto(_moonTankPrice, tradeType);

                _lastBuy = _moonTankPrice;
                if (buyStatus)
                {
                    _lastBuy   = _moonTankPrice;
                    _tradeType = TradeType.SELL;
                    _lastTrade = tradeType;
                    _tradeNumber++;
                }
                return(buyStatus);
            }
            else
            {
                return(false);
            }
        }
        public void BuyCrypto_Success_Test()
        {
            // Arrange
            var orderPrice = 0.101M;

            _exchangeBldr.Setup(b => b.PlaceTrade(It.IsAny <TradeParams>())).Returns(_testObjects.GetTradeResponse());
            _exchangeBldr.Setup(b => b.GetOrderDetail(It.IsAny <TradeResponse>(), It.IsAny <string>())).Returns(_testObjects.GetOrderResponse());
            _exchangeBldr.Setup(b => b.PlaceTrade(It.IsAny <TradeParams>())).Returns(_testObjects.GetTradeResponse());
            _exchangeBldr.Setup(b => b.GetBalance(It.IsAny <string>(), It.IsAny <string>())).Returns(_testObjects.GetBalanceList());
            _fileRepo.Setup(f => f.LogTransaction(It.IsAny <TradeInformation>(), It.IsAny <bool>())).Returns(true);
            _fileRepo.Setup(f => f.GetSettings()).Returns(_testObjects.GetBotSettings());

            _tradeBuilder = new TradeBuilder(_fileRepo.Object, _exchangeBldr.Object, _testObjects.GetBotBalanceList());

            // Act
            var response = _tradeBuilder.BuyCrypto(orderPrice, TradeType.BUY);

            // Assert
            Assert.True(response);
        }
        /// <summary>
        /// Check if buying coins or not
        /// </summary>
        /// <param name="candleStick">current Candlestick object</param>
        /// <param name="previousStick">previous Candlestick object</param>
        /// <returns>Boolean if trade made</returns>
        private bool BuyCryptoCheck(BotStick candleStick, BotStick previousStick)
        {
            var tradeType = MooningAndTankingCheck(candleStick, TradeType.BUY);

            if (tradeType != TradeType.NONE || _tradeNumber == 0)
            {
                if (_tradeNumber == 0)
                {
                    tradeType = TradeType.BUY;
                }

                _trader.BuyCrypto(candleStick.close, tradeType);
                _lastBuy   = candleStick.close;
                _tradeType = TradeType.SELL;
                _lastTrade = tradeType;
                _tradeNumber++;
                return(true);
            }
            else
            {
                return(false);
            }
        }