Beispiel #1
0
        public OrderBook OrderBook(Pair pair, int depth, OrderBookType orderBookType)
        {
            OrderBook result = null;

            var parameters = new Tuple <string, string> [3];

            parameters[0] = new Tuple <string, string>("market", BittrexPairs.AsString(pair));
            parameters[1] = new Tuple <string, string>("type", orderBookType.AsString());
            parameters[2] = new Tuple <string, string>("depth", depth.ToString());

            if (orderBookType == OrderBookType.Both)
            {
                var query = Connection.PublicGetQuery <BittrexOrderBookDataType>(EndPoints.GetOrderBook, parameters);
                if (query.Success)
                {
                    result = query.ToOrderBook(pair);
                }
            }
            else
            {
                var query = Connection.PublicGetQuery <BittrexOrderBookOneSideDataType>(EndPoints.GetOrderBook, parameters);
                if (query.Success)
                {
                    result = query.ToOrderBook(pair, orderBookType);
                }
            }

            return(result);
        }
        public OrderId SellLimit(PairOfMarket pair, double quantity, double rate, out string errorMessage)
        {
            var apiKeys = pair.Market.ApiKeys(ApiKeyRole.TradeLimit);

            OrderId result = null;

            errorMessage = string.Empty;

            var parameters = new List <Tuple <string, string> >
            {
                Tuple.Create("market", BittrexPairs.AsString(pair)),
                Tuple.Create("quantity", quantity.ToString(Nfi)),
                Tuple.Create("rate", rate.ToString(Nfi))
            };

            var query = Connection.PrivateGetQuery <BittrexLimitOrderDataType>(
                EndPoints.SellLimit, apiKeys, GetParameters(apiKeys.PublicKey, parameters));

            if (query.Success && query.Order != null)
            {
                result = new OrderId(query.Order.Id);
            }
            else
            {
                errorMessage = query.Message;
            }

            return(result);
        }
Beispiel #3
0
        public Pair24HoursStatistic Pair24HoursStatistic(Pair pair)
        {
            Pair24HoursStatistic result = null;

            var query = Connection.PublicGetQuery <BittrexMarketSummaries>(
                EndPoints.GetMarketSummary, new Tuple <string, string>("market", BittrexPairs.AsString(pair)));

            if (query.Success && query.MarketSummaries != null)
            {
                result = query.MarketSummaries[0].ToMarketSummary();
            }

            return(result);
        }
Beispiel #4
0
        public Tick Tick(Pair pair)
        {
            Tick result = null;

            var query = Connection.PublicGetQuery <BittrexTickerDataType>(
                EndPoints.GetTicker, new Tuple <string, string>("market", BittrexPairs.AsString(pair)));

            if (query.Success && query.Ticker != null)
            {
                result = query.Ticker.ToTick();
            }

            return(result);
        }
Beispiel #5
0
        public IEnumerable <MarketHistory> MarketTradeHistory(Pair pair, TimeRange timeRange)
        {
            var result = new List <MarketHistory>();

            var parameters = new Tuple <string, string> [1];

            parameters[0] = new Tuple <string, string>("market", BittrexPairs.AsString(pair));

            var query = Connection.PublicGetQuery <BittrexMarketHistoryDataType>(EndPoints.GetMarketHistory, parameters);

            if (query.Success && query.Items != null)
            {
                result.AddRange(query.Items.Select(item => item.ToHistory(pair)));
            }

            return(result);
        }
        public IEnumerable <Order> OpenedOrders(Market market, Pair pair)
        {
            var result  = new List <Order>();
            var apiKeys = market.ApiKeys(ApiKeyRole.Info);

            var parameters = pair == null ? null : new List <Tuple <string, string> > {
                Tuple.Create("market", BittrexPairs.AsString(pair))
            };

            var query = Connection.PrivateGetQuery <BittrexOpenedOrdersDataType>(
                EndPoints.GetOpenedOrders, apiKeys, GetParameters(apiKeys.PublicKey, parameters));

            if (query.Success && query.Orders != null)
            {
                result.AddRange(query.Orders.Select(order => order.ToOrder(market)));
            }

            return(result);
        }
Beispiel #7
0
        public static Pair24HoursStatistic ToMarketSummary(this BittrexMarketSummary marketSummaryDataType)
        {
            Pair pair;

            if (!BittrexPairs.TryParsePair(marketSummaryDataType.MarketName, out pair))
            {
                return(null);
            }

            DateTime parsedTimeStamp;
            var      timeStamp = DateTime.TryParse(marketSummaryDataType.TimeStamp, out parsedTimeStamp) ? parsedTimeStamp : (DateTime?)null;

            var summary = new Pair24HoursStatistic(pair,
                                                   marketSummaryDataType.High, marketSummaryDataType.Low,
                                                   marketSummaryDataType.BaseVolume, marketSummaryDataType.QuoteVolume,
                                                   marketSummaryDataType.Last, marketSummaryDataType.PrevDay,
                                                   marketSummaryDataType.CountOpenBuyOrders, marketSummaryDataType.CountOpenSellOrders,
                                                   timeStamp);

            return(summary);
        }
Beispiel #8
0
        public static Order ToOrder(this BittrexOpenedLimitOrderItemDataType openedLimitOrder, Market market)
        {
            Pair pair;

            if (!BittrexPairs.TryParsePair(openedLimitOrder.Pair, out pair))
            {
                return(null);
            }

            DateTime timeStamp;
            DateTime?opened = null;

            if (DateTime.TryParse(openedLimitOrder.Opened, out timeStamp))
            {
                opened = timeStamp;
            }
            var order = new Order(
                new OrderId(openedLimitOrder.Id), market, pair,
                openedLimitOrder.Quantity, openedLimitOrder.Limit, PositionFromString(openedLimitOrder.OrderType), opened);

            return(order);
        }