/// <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); }
/// <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); } }