Beispiel #1
0
        public SwitcheoTraderManager(IOrderBookTradeBuilder orderBookTradeBuilder,
                                     ITradeBuilder tradeBuilder,
                                     IVolumeTradeBuilder volumeTradeBuilder)
        {
            this._orderBookTradeBuilder = orderBookTradeBuilder;
            this._tradeBuilder          = tradeBuilder;
            this._volumeTradeBuilder    = volumeTradeBuilder;

            _botConfig = _tradeBuilder.GetBotConfig();
        }
        public void BuyPercentReached_False_Current_GT_LastSell_Test()
        {
            decimal price = 0.00002M;

            _bldr = new VolumeTradeBuilder(_tradeBldr.Object, _settings, 0.00001M, 0.000015M);

            var result = _bldr.BuyPercentReached(price);

            Assert.False(result);
        }
        public void BuyPercentReached_True_PercentLow_Test()
        {
            decimal price = 0.00001M;

            _bldr = new VolumeTradeBuilder(_tradeBldr.Object, _settings, 0.00001M, 0.000015M);

            var result = _bldr.BuyPercentReached(price);

            Assert.True(result);
        }
        public void SellPercentReached_False_Equal_Test()
        {
            decimal price = 0.00001M;

            _bldr = new VolumeTradeBuilder(_tradeBldr.Object, _settings, price, price);

            var result = _bldr.SellPercentReached(price);

            Assert.False(result);
        }
        public void MooningAndTankingCheck_Tanking_Test()
        {
            var interval = Interval.OneM;

            _settings.chartInterval      = interval;
            _settings.mooningTankingTime = 1;
            decimal lastPrice       = 0.00001M;
            var     tankingList     = _testObjs.GetTankingList();
            var     candlestickList = _testObjs.GetBotSticks();
            var     csI             = new BotStick[1] {
                tankingList[0]
            };
            var csII = new BotStick[1] {
                tankingList[1]
            };
            var csIII = new BotStick[1] {
                tankingList[2]
            };
            var csIV = new BotStick[1] {
                tankingList[3]
            };
            var csV = new BotStick[1] {
                tankingList[4]
            };
            var csVI = new BotStick[1] {
                tankingList[5]
            };
            var csVII = new BotStick[1] {
                tankingList[6]
            };

            _tradeBldr.SetupSequence(f => f.GetCandlesticks(It.IsAny <string>(), It.IsAny <Interval>(), It.IsAny <int>()))
            .Returns(csI)
            .Returns(csII)
            .Returns(csIII)
            .Returns(csIV)
            .Returns(csV)
            .Returns(csVI)
            .Returns(csVII);

            _bldr = new VolumeTradeBuilder(_tradeBldr.Object, _settings, lastPrice, lastPrice, TradeType.SELL);

            var result = _bldr.MooningAndTankingCheck(candlestickList[0], candlestickList[1], TradeType.SELL);

            Assert.True(result == TradeType.SELL);
        }
        public void RunBot_3Cycles_Test()
        {
            var interval         = Interval.OneM;
            var candlestickArray = _testObjs.GetBotSticks().ToArray();

            _settings.chartInterval = interval;
            _tradeBldr.Setup(f => f.SetupRepository()).Returns(true);
            var csOne = new BotStick[1] {
                candlestickArray[0]
            };
            var csTwo = new BotStick[1] {
                candlestickArray[1]
            };
            var csThree = new BotStick[1] {
                candlestickArray[2]
            };

            _tradeBldr.SetupSequence(f => f.GetCandlesticks(It.IsAny <string>(), It.IsAny <Interval>(), It.IsAny <int>()))
            .Returns(csOne)
            .Returns(csTwo)
            .Returns(csThree);
            _tradeBldr.SetupSequence(t => t.StoppedOutCheck(It.IsAny <decimal>()))
            .Returns(null)
            .Returns(null)
            .Returns(null);
            _tradeBldr.SetupSequence(f => f.BuyCrypto(It.IsAny <decimal>(), It.IsAny <TradeType>(), It.IsAny <bool>(), It.IsAny <bool>()))
            .Returns(true)
            .Returns(true);
            _tradeBldr.Setup(f => f.SellCrypto(It.IsAny <decimal>(), It.IsAny <TradeType>(), It.IsAny <bool>()))
            .Equals(true);

            _bldr = new VolumeTradeBuilder(_tradeBldr.Object, _settings);
            //_bldr.SetBotSettings(_settings);

            var result = _bldr.RunBot(interval, 3, true);

            Assert.True(result);
        }