コード例 #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);
        }
コード例 #2
0
        public GetOrderBookResponse GetOrderBook(string market, OrderBookType type, int depth = 20)
        {
            if (type == OrderBookType.Both)
            {
                return(this.Call <GetOrderBookResponse>(ApiCallGetOrderBook,
                                                        Tuple.Create("market", GetMarketName(market)),
                                                        Tuple.Create("type", type.ToString().ToLower()),
                                                        Tuple.Create("depth", depth.ToString())));
            }
            else
            {
                var results = this.Call <List <OrderEntry> >(ApiCallGetOrderBook,
                                                             Tuple.Create("market", GetMarketName(market)),
                                                             Tuple.Create("type", type.ToString().ToLower()),
                                                             Tuple.Create("depth", depth.ToString()));

                if (type == OrderBookType.Buy)
                {
                    return(new GetOrderBookResponse {
                        buy = results
                    });
                }
                else
                {
                    return(new GetOrderBookResponse {
                        sell = results
                    });
                }
            }
        }
コード例 #3
0
        //public/getorderbook
        public OrderBook GetOrderBook(string pair, OrderBookType type)
        {
            string json = "";

            if (type == OrderBookType.Buy)
            {
                json = getPublicRequest("/public/getorderbook", "?market=" + pair, "&type=buy");
            }
            if (type == OrderBookType.Sell)
            {
                json = getPublicRequest("/public/getorderbook", "?market=" + pair, "&type=sell");
            }
            if (type == OrderBookType.Both)
            {
                json = getPublicRequest("/public/getorderbook", "?market=" + pair, "&type=both");
            }
            OrderBookRequest obr = JsonConvert.DeserializeObject <OrderBookRequest>(json);

            if (obr.success)
            {
                return(obr.result);
            }
            Exception e = new Exception(obr.message);

            throw e;
        }
コード例 #4
0
ファイル: PushMessage.cs プロジェクト: thewindev/CryBot
 public PushMessage(string message, string currency = "", OrderBookType orderType = OrderBookType.Both)
 {
     Message   = message;
     Currency  = currency;
     OrderType = orderType;
     Timestamp = DateTime.UtcNow.ToString("F");
 }
コード例 #5
0
        public OrderBook OrderBook(Pair pair, int depth = 10, OrderBookType orderBookType = OrderBookType.Both)
        {
            var result = new OrderBook(pair);

            var rnd        = new Random();
            var startPrice = rnd.NextDouble();

            var asks = new List <OrderBookPart>();

            for (var i = 0; i < depth; i++)
            {
                var step = rnd.NextDouble();
                asks.Add(new OrderBookPart(startPrice + step, rnd.NextDouble()));
            }

            var bids = new List <OrderBookPart>();

            for (var i = 0; i < depth; i++)
            {
                var step = rnd.NextDouble();
                bids.Add(new OrderBookPart(startPrice - step, rnd.NextDouble()));
            }

            result.ReplaceAsk(asks);
            result.ReplaceBids(bids);

            return(result);
        }
コード例 #6
0
        public async Task <GetOrderBookResponse> GetOrderBook(string market, OrderBookType type, int depth = 20)
        {
            if (type == OrderBookType.Both)
            {
                return(await this.Call <GetOrderBookResponse>(ApiCallGetOrderBook,
                                                              ("market", GetMarketName(market)),
                                                              ("type", type.ToString().ToLower()),
                                                              ("depth", depth.ToString())));
            }
            else
            {
                var results = await this.Call <List <OrderEntry> >(ApiCallGetOrderBook,
                                                                   ("market", GetMarketName(market)),
                                                                   ("type", type.ToString().ToLower()),
                                                                   ("depth", depth.ToString()));

                if (type == OrderBookType.Buy)
                {
                    return(new GetOrderBookResponse {
                        Buy = results
                    });
                }
                else
                {
                    return(new GetOrderBookResponse {
                        Sell = results
                    });
                }
            }
        }
コード例 #7
0
        public static string AsString(this OrderBookType orderBookType)
        {
            switch (orderBookType)
            {
            case OrderBookType.Buy:
                return("buy");

            case OrderBookType.Sell:
                return("sell");

            case OrderBookType.Both:
                return("both");

            default:
                throw new ArgumentOutOfRangeException(nameof(orderBookType), orderBookType, null);
            }
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        public static OrderBook ToOrderBook(this BittrexOrderBookOneSideDataType orderBookDataType, Pair pair, OrderBookType orderBookType)
        {
            var result = new OrderBook(pair);

            var prices = orderBookDataType.Prices.Select(price => new OrderBookPart(price.Price, price.Quantity));

            if (orderBookType == OrderBookType.Sell)
            {
                result.ReplaceAsk(prices);
            }
            else
            {
                result.ReplaceBids(prices);
            }

            return(result);
        }
コード例 #10
0
 public OrderBookUpdaterParameters(int depth, OrderBookType orderBookType)
 {
     Depth         = depth;
     OrderBookType = orderBookType;
 }
コード例 #11
0
        public async Task <Data.Response <Data.Stock.OrderBook> > GetOrderBookAsync(string sMarket, OrderBookType book, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken))
        {
            string sMethodUrl  = GetMethodUrl(Properties.Settings.Default.MethodGetOrderBook);
            string sRequestUrl = $"{sMethodUrl}?market={HttpUtility.UrlEncode(sMarket)}&type={book}";
            string sResponse   = await SendRequestAsync(sRequestUrl, false, cancellationToken);

            return(Newtonsoft.Json.JsonConvert.DeserializeObject <Data.Response <Data.Stock.OrderBook> >(sResponse));
        }