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); }
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); }
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); }
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); }
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); }
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); }