コード例 #1
0
        public void PricePadding_GDAX_Buy_Types_Test()
        {
            // Arrange
            var settings  = _testObjects.GetBotSettings();
            var price     = 100.0M;
            var tradeType = TradeType.BUY;

            settings.exchange = Exchange.GDAX;
            _fileRepo.Setup(f => f.GetSettings()).Returns(settings);
            _fileRepo.Setup(f => f.GetConfig()).Returns(_testObjects.GetApiInfo());
            _tradeBuilder = new TradeBuilder(_fileRepo.Object, _exchangeBldr.Object);

            // Act
            var paddedPrice = _tradeBuilder.GetPricePadding(tradeType, price);

            // Assert
            Assert.True(paddedPrice == 99.99M);

            // Act
            tradeType   = TradeType.VOLUMEBUY;
            price       = 200.00M;
            paddedPrice = _tradeBuilder.GetPricePadding(tradeType, price);

            // Assert
            Assert.True(paddedPrice == 199.99M);

            // Act
            tradeType   = TradeType.VOLUMESELLBUYOFF;
            price       = 300.00M;
            paddedPrice = _tradeBuilder.GetPricePadding(tradeType, price);

            // Assert
            Assert.True(paddedPrice == 299.99M);
        }
コード例 #2
0
        public void CaptureTransaction_Live_Test()
        {
            // Arrange
            _fileRepoLive = new FileRepository();
            var price    = 500.0M;
            var quantity = 12.0M;
            var ts       = _dtHelper.UTCtoUnixTime();
            var tsDT     = _dtHelper.UnixTimeToUTC(ts);

            _tradeBuilder = new TradeBuilder(_fileRepoLive, _exchangeBldr.Object);

            // Act
            var response = _tradeBuilder.CaptureTransaction(price, quantity, ts, TradeType.BUY);

            // Assert
            Assert.True(response);

            // Act
            var lastTrade = _tradeBuilder.GetTradeHistory(1).FirstOrDefault();

            // Assert
            Assert.True(lastTrade.price == price);
            Assert.True(lastTrade.quantity == quantity);
            Assert.True(lastTrade.timestamp == tsDT);
        }
コード例 #3
0
        public SwitcheoTraderManager(IOrderBookTradeBuilder orderBookTradeBuilder,
                                     ITradeBuilder tradeBuilder,
                                     IVolumeTradeBuilder volumeTradeBuilder)
        {
            this._orderBookTradeBuilder = orderBookTradeBuilder;
            this._tradeBuilder          = tradeBuilder;
            this._volumeTradeBuilder    = volumeTradeBuilder;

            _botConfig = _tradeBuilder.GetBotConfig();
        }
コード例 #4
0
        public CoinBotManager(IBollingerBandTradeBuilder bollingerBuilder,
                              IVolumeTradeBuilderOG volumeBuilderOG,
                              IOrderBookTradeBuilder orderBookTradeBuilder,
                              ITradeBuilder tradeBuilder)
        {
            this._bollingerBuilder      = bollingerBuilder;
            this._volumeBuilderOG       = volumeBuilderOG;
            this._orderBookTradeBuilder = orderBookTradeBuilder;
            this._tradeBuilder          = tradeBuilder;

            _botConfig = _tradeBuilder.GetBotConfig();
        }
コード例 #5
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="repo">Repository interface</param>
 public VolumeTradeBuilder(ITradeBuilder trader
                           , BotSettings settings, decimal lastBuy = 0, decimal lastSell = 0, TradeType tradeType = TradeType.BUY)
 {
     _trader = trader;
     SetBotSettings(settings);
     if (lastBuy != 0)
     {
         _lastBuy = lastBuy;
     }
     if (lastSell != 0)
     {
         _lastSell = lastSell;
     }
     _tradeType = tradeType;
 }
コード例 #6
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="repo">Repository interface</param>
 public OrderBookTradeBuilder(ITradeBuilder trader
                              , BotSettings settings, decimal lastBuy = 0, decimal lastSell = 0, TradeType tradeType = TradeType.BUY)
 {
     _trader   = trader;
     _fileRepo = new FileRepository();
     SetBotSettings(settings);
     if (lastBuy != 0)
     {
         _lastBuy = lastBuy;
     }
     if (lastSell != 0)
     {
         _lastSell = lastSell;
     }
     _tradeType = tradeType;
 }
コード例 #7
0
        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);
        }
コード例 #8
0
 private void SetupBuilder()
 {
     _trader    = new TradeBuilder();
     _lastTrade = TradeType.NONE;
     SetBotSettings(_trader.GetBotSettings());
 }
コード例 #9
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="repo">Repository interface</param>
 public OrderBookTradeBuilder(ITradeBuilder trader)
 {
     _trader   = trader;
     _fileRepo = new FileRepository();
     SetupBuilder();
 }
コード例 #10
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="repo">Repository interface</param>
 public OrderBookTradeBuilder()
 {
     _trader   = new TradeBuilder();
     _fileRepo = new FileRepository();
     SetupBuilder();
 }
コード例 #11
0
 /// <summary>
 /// <see cref = "TradeBuilderPythonWrapper"/> constructor.
 /// Wraps the <see cref = "ITradeBuilder"/> object.
 /// </summary>
 /// <param name="tradeBuilder"><see cref = "ITradeBuilder"/> object to be wrapped</param>
 public TradeBuilderPythonWrapper(ITradeBuilder tradeBuilder)
 {
     _tradeBuilder = tradeBuilder;
 }
コード例 #12
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="repo">Repository interface</param>
 public VolumeTradeBuilder(ITradeBuilder trader)
 {
     _trader = trader;
     SetupBuilder();
 }
コード例 #13
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="repo">Repository interface</param>
 public VolumeTradeBuilder()
 {
     _trader = new TradeBuilder();
     SetupBuilder();
 }