public IEnumerable <Order> OpenedOrders(Market market) { // todo: test it var result = new List <Order>(); var apiKeys = market.ApiKeys(ApiKeyRole.Trade); var parameters = new Tuple <string, string> [2]; parameters[0] = Tuple.Create(EndPoints.CommandTag, EndPoints.GetBalances); parameters[1] = Tuple.Create("currencyPair", "all"); var query = Connection.PrivateGetQuery <Dictionary <string, List <PoloniexOpenedOrdersDataType> > >( EndPoints.GetOpenedOrders, apiKeys, PostParameters(apiKeys.PublicKey, parameters)); foreach (var key in query.Keys) { Pair pair; if (!PoloniexPairs.TryParsePair(key, out pair)) { continue; } var orders = query[key]; result.AddRange(orders.Select(order => order.ToOrder(market, pair))); } return(result); }
public Tick Tick(Pair pair) { var parameters = new Tuple <string, string> [1]; parameters[0] = new Tuple <string, string>(EndPoints.CommandTag, EndPoints.GetTicker); var query = Connection.PublicGetQuery <Dictionary <string, PoloniexTickerDataType> >(EndPoints.Public, parameters); var key = PoloniexPairs.AsString(pair); return(query.ContainsKey(key) ? query[key].ToTick() : null); }
public static Pair24HoursStatistic ToPairsStatistic(this PoloniexTickerDataType tickerDataType, string pairName) { Pair pair; if (!PoloniexPairs.TryParsePair(pairName, out pair)) { return(null); } var summary = new Pair24HoursStatistic(pair, tickerDataType.High24Hr, tickerDataType.Low24Hr, tickerDataType.BaseVolume, tickerDataType.QuoteVolume, tickerDataType.Last, tickerDataType.DailyChange); return(summary); }
public IEnumerable <HistoryPrice> MarketHistoryData(Pair pair, TimeframeType timeframe, TimeRange timeRange) { var start = _timeCorrector.ToMarketTime(timeRange.Start); var finish = _timeCorrector.ToMarketTime(timeRange.Finish); var parameters = new Tuple <string, string> [5]; parameters[0] = new Tuple <string, string>(EndPoints.CommandTag, EndPoints.GetHistoryData); parameters[1] = new Tuple <string, string>("currencyPair", PoloniexPairs.AsString(pair)); parameters[2] = new Tuple <string, string>("start", PoloniexTools.DateTimeToUnixTimeStamp(start).ToString()); parameters[3] = new Tuple <string, string>("end", PoloniexTools.DateTimeToUnixTimeStamp(finish).ToString()); parameters[4] = new Tuple <string, string>("period", PoloniexTools.TimeFrameToSeconds(timeframe).ToString()); var query = Connection.PublicGetQuery <List <PoloniexHistoryDataType> >(EndPoints.Public, parameters); return(query.Select(item => item.ToHistory(pair))); }
public IEnumerable <Order> OpenedOrders(Market market, Pair pair) { // todo: test it var result = new List <Order>(); var apiKeys = market.ApiKeys(ApiKeyRole.Trade); var parameters = new Tuple <string, string> [2]; parameters[0] = Tuple.Create(EndPoints.CommandTag, EndPoints.GetBalances); parameters[1] = Tuple.Create("currencyPair", PoloniexPairs.AsString(pair)); var query = Connection.PrivateGetQuery <List <PoloniexOpenedOrdersDataType> >( EndPoints.GetOpenedOrders, apiKeys, PostParameters(apiKeys.PublicKey, parameters)); result.AddRange(query.Select(order => order.ToOrder(market, pair))); return(result); }
public IEnumerable <MarketHistory> MarketTradeHistory(Pair pair, TimeRange timeRange) { var paramsCount = timeRange != null ? 4 : 2; var parameters = new Tuple <string, string> [paramsCount]; parameters[0] = new Tuple <string, string>(EndPoints.CommandTag, EndPoints.GetMarketHistory); parameters[1] = new Tuple <string, string>("currencyPair", PoloniexPairs.AsString(pair)); if (timeRange != null) { var start = _timeCorrector.ToMarketTime(timeRange.Start); var finish = _timeCorrector.ToMarketTime(timeRange.Finish); parameters[2] = new Tuple <string, string>("start", PoloniexTools.DateTimeToUnixTimeStamp(start).ToString()); parameters[3] = new Tuple <string, string>("end", PoloniexTools.DateTimeToUnixTimeStamp(finish).ToString()); } var query = Connection.PublicGetQuery <List <PoloniexTradeHistoryDataType> >(EndPoints.Public, parameters); return(query.Select(item => item.ToHistory(pair))); }
public OrderBook OrderBook(Pair pair, int depth, OrderBookType orderBookType) { var parameters = new Tuple <string, string> [3]; parameters[0] = new Tuple <string, string>(EndPoints.CommandTag, EndPoints.GetOrderBook); parameters[1] = new Tuple <string, string>("currencyPair", PoloniexPairs.AsString(pair)); parameters[2] = new Tuple <string, string>("depth", depth.ToString()); var query = Connection.PublicGetQuery <PoloniexOrderBookDataType>(EndPoints.Public, parameters); var result = query.ToOrderBook(pair); if (orderBookType == OrderBookType.Buy) { result.ReplaceBids(null); } if (orderBookType == OrderBookType.Sell) { result.ReplaceAsk(null); } return(result); }
public static PairOfMarket ToPair(this PoloniexTickerDataType pairDataType, string pairName, Market market) { Pair pair; return(PoloniexPairs.TryParsePair(pairName, out pair) ? new PairOfMarket(pair, market, !pairDataType.IsFrozen) : null); }