Esempio n. 1
0
        public void MapOrderTypeToBitfinexTest()
        {
            _algo.Setup(a => a.BrokerageModel.AccountType).Returns(AccountType.Cash);
            _unit = new BitfinexBrokerage("http://localhost", _wss.Object, _rest.Object, "abc", "123", _algo.Object);

            var expected = GetDescriptionFromEnumValue(BitfinexOrderType.exchangeMarket);
            var actual   = _unit.MapOrderType(OrderType.Market);

            Assert.AreEqual(expected, actual);

            expected = GetDescriptionFromEnumValue(BitfinexOrderType.exchangeLimit);
            actual   = _unit.MapOrderType(OrderType.Limit);
            Assert.AreEqual(expected, actual);

            expected = GetDescriptionFromEnumValue(BitfinexOrderType.exchangeStop);
            actual   = _unit.MapOrderType(OrderType.StopMarket);
            Assert.AreEqual(expected, actual);

            Assert.Throws <Exception>(() => _unit.MapOrderType(OrderType.StopLimit));

            _algo.Setup(a => a.BrokerageModel.AccountType).Returns(AccountType.Margin);
            _unit = new BitfinexBrokerage("http://localhost", _wss.Object, _rest.Object, "abc", "123", _algo.Object);

            expected = GetDescriptionFromEnumValue(BitfinexOrderType.market);
            actual   = _unit.MapOrderType(OrderType.Market);
            Assert.AreEqual(expected, actual);

            expected = GetDescriptionFromEnumValue(BitfinexOrderType.limit);
            actual   = _unit.MapOrderType(OrderType.Limit);
            Assert.AreEqual(expected, actual);

            expected = GetDescriptionFromEnumValue(BitfinexOrderType.stop);
            actual   = _unit.MapOrderType(OrderType.StopMarket);
            Assert.AreEqual(expected, actual);
        }
Esempio n. 2
0
 public void Setup()
 {
     _algo = new Mock <IAlgorithm>();
     _algo.Setup(a => a.BrokerageModel.AccountType).Returns(_accountType);
     _unit   = new BitfinexBrokerage("http://localhost", _wss.Object, _rest.Object, "abc", "123", _algo.Object);
     _rest   = new Mock <IRestClient>();
     _symbol = Symbol.Create("BTCUSD", SecurityType.Crypto, Market.Bitfinex);
 }
Esempio n. 3
0
        public void MapOrderStatusTest()
        {
            var response = new OrderStatusResponse
            {
                IsCancelled = true,
                IsLive      = true
            };

            var expected = OrderStatus.Canceled;
            var actual   = BitfinexBrokerage.MapOrderStatus(response);

            Assert.AreEqual(expected, actual);

            response.IsCancelled = false;
            expected             = OrderStatus.Submitted;
            actual = BitfinexBrokerage.MapOrderStatus(response);
            Assert.AreEqual(expected, actual);

            response.RemainingAmount = "1";
            response.ExecutedAmount  = "0";
            expected = OrderStatus.Submitted;
            actual   = BitfinexBrokerage.MapOrderStatus(response);
            Assert.AreEqual(expected, actual);

            response.RemainingAmount = "1";
            response.ExecutedAmount  = "1";
            expected = OrderStatus.PartiallyFilled;
            actual   = BitfinexBrokerage.MapOrderStatus(response);
            Assert.AreEqual(expected, actual);

            response.RemainingAmount = "0";
            response.ExecutedAmount  = "1";
            expected = OrderStatus.Submitted;
            actual   = BitfinexBrokerage.MapOrderStatus(response);
            Assert.AreEqual(expected, actual);

            response.RemainingAmount = "0";
            response.ExecutedAmount  = "0";
            response.IsLive          = false;
            expected = OrderStatus.Invalid;
            actual   = BitfinexBrokerage.MapOrderStatus(response);
            Assert.AreEqual(expected, actual);

            response.RemainingAmount = "";
            response.ExecutedAmount  = "";
            response.IsLive          = false;
            expected = OrderStatus.Invalid;
            actual   = BitfinexBrokerage.MapOrderStatus(response);
            Assert.AreEqual(expected, actual);

            response.RemainingAmount = null;
            response.ExecutedAmount  = null;
            response.IsLive          = false;
            expected = OrderStatus.Invalid;
            actual   = BitfinexBrokerage.MapOrderStatus(response);
            Assert.AreEqual(expected, actual);
        }
Esempio n. 4
0
        public void Setup()
        {
            _algo.Setup(a => a.BrokerageModel.AccountType).Returns(_accountType);

            _unit   = new BitfinexBrokerage("http://localhost", _wss.Object, _rest.Object, ApiKey, "123", _algo.Object);
            _rest   = new Mock <IRestClient>();
            _symbol = Symbol.Create("BTCUSD", SecurityType.Crypto, Market.Bitfinex);

            _wss.Setup(m => m.Connect()).Verifiable();
            _wss.Setup(m => m.Close()).Verifiable();
        }
Esempio n. 5
0
        public static void AddOrder(BitfinexBrokerage unit, int id, string brokerId, int quantity)
        {
            var order = new Orders.MarketOrder {
                BrokerId = new List <string> {
                    brokerId
                }, Quantity = quantity, Id = id, Symbol = GetSecurity().Symbol
            };

            unit.CachedOrderIDs.TryAdd(1, order);
            unit.FillSplit.TryAdd(id, new BitfinexFill(order));
        }
        public void Setup()
        {
            var priceProvider = new Mock<IPriceProvider>();
            priceProvider.Setup(x => x.GetLastPrice(It.IsAny<Symbol>())).Returns(1.234m);
            var aggregator = new Mock<IDataAggregator>();

            _brokerage = new BitfinexBrokerage(
                _webSocket.Object,
                _restClient.Object,
                "apikey",
                "apisecret",
                _algorithm,
                priceProvider.Object,
                aggregator.Object);

            _algorithm.SetBrokerageModel(new BitfinexBrokerageModel());
        }
Esempio n. 7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="BitfinexDataDownloader"/> class
 /// </summary>
 public BitfinexDataDownloader()
 {
     _brokerage = new BitfinexBrokerage(_wss, _rest, null, null, null, null);
     _brokerage.Connect();
 }