private IEnumerable <ExchangeCoin> BalanceCollectionToExchangeCoins(IEnumerable <Balance> balances, Exchange exchange)
        {
            var exCoinList = new List <ExchangeCoin>();

            foreach (var balance in balances)
            {
                var exCoin = BalanceToExchangeCoin(balance, exchange);

                exCoinList.Add(exCoin);
            }

            return(exCoinList);
        }
Exemplo n.º 2
0
        public async Task <IEnumerable <CoinBuy> > GetLatest(string symbol, decimal quantity, Exchange exchange)
        {
            var relevantBuys = await this.GetRelevantCoinBuys(symbol, quantity, exchange);

            var coinBuys = await this.Get(symbol, exchange);

            var exchangeList = relevantBuys.OrderByDescending(b => b.ClosedDate).ToList();
            var dbList       = coinBuys.OrderByDescending(b => b.ClosedDate).ToList();

            return(await OnGetLastest(exchangeList, dbList));
        }
        public async Task <IEnumerable <ExchangeCoin> > Get(string symbol, Exchange exchange)
        {
            var entities = await _ecRepo.Get(e => e.Symbol.Equals(symbol) && e.Exchange == exchange);

            return(EntitiesToContracts(entities));
        }
Exemplo n.º 4
0
        private IEnumerable <CoinBuy> ExchangeOrderCollectionToCoinBuys(IEnumerable <ExchangeOrder> orders, Exchange exchange)
        {
            var coinBuys = new List <CoinBuy>();

            foreach (var order in orders)
            {
                var coinBuy = ExchangeOrderToCoinBuy(order, exchange);
                coinBuys.Add(coinBuy);
            }

            return(coinBuys);
        }
Exemplo n.º 5
0
        public async Task <IEnumerable <CoinBuy> > Get(string symbol, Exchange exchange)
        {
            var entities = await _cbRepo.Get(c => c.Pair.StartsWith(symbol) && c.Exchange == exchange);

            return(EntitiesToContracts(entities));
        }
Exemplo n.º 6
0
        private IEnumerable <HistoricalPrice> TickerCollectionToHistoricalPrices(IEnumerable <Ticker> tickers, Exchange exchange)
        {
            var hpList = new List <HistoricalPrice>();

            foreach (var ticker in tickers)
            {
                var hp = TickerToHistoricalPrice(ticker, exchange);

                hpList.Add(hp);
            }

            return(hpList);
        }
Exemplo n.º 7
0
        public async Task <IEnumerable <CoinBuy> > GetRelevantCoinBuys(string symbol, decimal quantity, Exchange exchange)
        {
            var pairs = await _hubBldr.GetMarketsForACoin(symbol);

            var orders = await _hubBldr.GetExchangeOrders(pairs, exchange);

            var coinBuyList = new List <CoinBuy>();

            foreach (var order in orders)
            {
                var quantityApplied = quantity >= order.FilledQuantity
                    ? order.FilledQuantity
                    : quantity;

                quantity -= order.FilledQuantity;

                var coinBuy = ExchangeOrderToCoinBuy(order, exchange, quantityApplied);
                coinBuyList.Add(coinBuy);

                if (quantity <= 0)
                {
                    break;
                }
            }

            return(coinBuyList);
        }
Exemplo n.º 8
0
        /// <summary>
        /// Convert an OrderResponse to an ExchangeOrder
        /// </summary>
        /// <param name="orderResponse">OrderResponse to convert</param>
        /// <returns>new ExchangeOrder object</returns>
        public ExchangeOrder OrderResponseToExchangeOrder(OrderResponse orderResponse, Exchange exchange)
        {
            var exchangeOrder = new ExchangeOrder
            {
                Exchange       = exchange,
                FilledQuantity = orderResponse.FilledQuantity,
                OrderId        = orderResponse.OrderId,
                Pair           = orderResponse.Pair,
                PlaceDate      = orderResponse.TransactTime,
                Price          = orderResponse.Price,
                Quantity       = orderResponse.OrderQuantity,
                Side           = (Side)orderResponse.Side
            };

            return(exchangeOrder);
        }
Exemplo n.º 9
0
        private IEnumerable <ExchangeOrder> OrderResponseCollectionToExchangeOrders(IEnumerable <OrderResponse> orders, Exchange exchange)
        {
            var exchangeOrders = new List <ExchangeOrder>();

            foreach (var order in orders)
            {
                var exchangeOrder = OrderResponseToExchangeOrder(order, exchange);
                exchangeOrders.Add(exchangeOrder);
            }

            return(exchangeOrders);
        }
Exemplo n.º 10
0
        private IEnumerable <CoinBuy> OrderResponseCollectionToCoinBuys(IEnumerable <OrderResponse> orders, Exchange exchange)
        {
            var coinBuys = new List <CoinBuy>();

            foreach (var order in orders)
            {
                var coinBuy = OrderResponseToCoinBuy(order, exchange);
                coinBuys.Add(coinBuy);
            }

            return(coinBuys);
        }
Exemplo n.º 11
0
        public async Task <IEnumerable <ExchangeOrder> > GetExchangeOpenOrdersByPairs(IEnumerable <string> pairs, Exchange exchange)
        {
            var hub = _exchangeHubs.Where(e => e.GetExchange() == exchange.ToString()).FirstOrDefault();

            var exchangeOrders = new List <ExchangeOrder>();

            foreach (var pair in pairs)
            {
                var pairOrders = await hub.GetOpenOrders(pair);

                exchangeOrders.AddRange(OrderResponseCollectionToExchangeOrders(pairOrders, IHelper.StringToExchange(hub.GetExchange())));
            }

            return(exchangeOrders);
        }
Exemplo n.º 12
0
        public async Task <IEnumerable <ExchangeOrder> > GetExchangeOpenOrders(string pair, Exchange exchange)
        {
            var hub = _exchangeHubs.Where(e => e.GetExchange() == exchange.ToString()).FirstOrDefault();

            var orders = await hub.GetOpenOrders(pair);

            var exchangeOrders = OrderResponseCollectionToExchangeOrders(orders, IHelper.StringToExchange(hub.GetExchange()));

            return(exchangeOrders);
        }