private void BooksRunner(object _object) { string _pair = _object.ToString(); string _url = $"/api/spot/v3/instruments/{_pair}/book?size=10"; this.Books[_pair, MarketSide.Ask] = new BookItems(MarketSide.Ask); this.Books[_pair, MarketSide.Bid] = new BookItems(MarketSide.Bid); string _result = ""; while (this.Running) { Thread.Sleep(1000); try { WebClientPlus _client = new WebClientPlus(10000); _result = _client.DownloadString($"{this.HttpUrl}{_url}"); _client.Dispose(); JObject _json = JObject.Parse(_result); BookItems _asks = new BookItems(MarketSide.Ask); BookItems _bids = new BookItems(MarketSide.Bid); this.Books.Timestamp = DateTimePlus.DateTime2JSTime(DateTime.UtcNow); foreach (var _item in _json["asks"]) { decimal _price = decimal.Parse(_item[0].Value <string>(), System.Globalization.NumberStyles.Float); decimal _amount = decimal.Parse(_item[1].Value <string>(), System.Globalization.NumberStyles.Float); _asks.Insert(_price.ToString(), Math.Abs(_price), _amount); } foreach (var _item in _json["bids"]) { decimal _price = decimal.Parse(_item[0].Value <string>(), System.Globalization.NumberStyles.Float); decimal _amount = decimal.Parse(_item[1].Value <string>(), System.Globalization.NumberStyles.Float); _bids.Insert(_price.ToString(), Math.Abs(_price), _amount); } BookItems _asksLimit = new BookItems(MarketSide.Ask); BookItems _bidsLimit = new BookItems(MarketSide.Bid); foreach (var _item in _asks.OrderBy(b => b.Value.Price).Take(10)) { decimal _price = _item.Value.Price; decimal _amount = _item.Value.Amount; _asksLimit.Insert(_price.ToString(), Math.Abs(_price), _amount); } foreach (var _item in _bids.OrderByDescending(b => b.Value.Price).Take(10)) { decimal _price = _item.Value.Price; decimal _amount = _item.Value.Amount; _bidsLimit.Insert(_price.ToString(), Math.Abs(_price), _amount); } this.Books[_pair, MarketSide.Ask] = _asksLimit; this.Books[_pair, MarketSide.Bid] = _bidsLimit; } catch (Exception _ex) { this.OnLog($"GetBooks Error:{_result}"); this.OnLog($"GetBooks Error:{_ex.ToString()}"); } } }
private void BooksRunner(object _object) { string _pair = _object.ToString(); string _url = $"/{_pair}/depth"; this.Books[_pair, MarketSide.Ask] = new BookItems(MarketSide.Ask); this.Books[_pair, MarketSide.Bid] = new BookItems(MarketSide.Bid); string _result = ""; while (this.Running) { Thread.Sleep(1000); try { WebClientPlus _client = new WebClientPlus(5000); _result = _client.DownloadString($"{this.UrlPublic}{_url}"); _client.Dispose(); JObject _json = JObject.Parse(_result); BookItems _asks = new BookItems(MarketSide.Ask); BookItems _bids = new BookItems(MarketSide.Bid); this.Books.Timestamp = _json["data"]["timestamp"].Value <long>(); foreach (var _item in _json["data"]["asks"]) { decimal _price = _item[0].Value <decimal>(); decimal _amount = _item[1].Value <decimal>(); _asks.Insert(_price.ToString(), Math.Abs(_price), _amount); } foreach (var _item in _json["data"]["bids"]) { decimal _price = _item[0].Value <decimal>(); decimal _amount = _item[1].Value <decimal>(); _bids.Insert(_price.ToString(), Math.Abs(_price), _amount); } BookItems _asksLimit = new BookItems(MarketSide.Ask); BookItems _bidsLimit = new BookItems(MarketSide.Bid); foreach (var _item in _asks.OrderBy(b => b.Value.Price).Take(10)) { decimal _price = _item.Value.Price; decimal _amount = _item.Value.Amount; _asksLimit.Insert(_price.ToString(), Math.Abs(_price), _amount); } foreach (var _item in _bids.OrderByDescending(b => b.Value.Price).Take(10)) { decimal _price = _item.Value.Price; decimal _amount = _item.Value.Amount; _bidsLimit.Insert(_price.ToString(), Math.Abs(_price), _amount); } this.Books[_pair, MarketSide.Ask] = _asksLimit; this.Books[_pair, MarketSide.Bid] = _bidsLimit; } catch (Exception _ex) { this.OnLog($"GetBooks Error:{_result}"); this.OnLog($"GetBooks Error:{_ex.ToString()}"); } } }
private void BooksRunner(object _object) { string _pair = _object.ToString(); string _url = $"/v1.1/public/getorderbook?market={_pair}&type=both"; this.Books[_pair, MarketSide.Ask] = new BookItems(MarketSide.Ask); this.Books[_pair, MarketSide.Bid] = new BookItems(MarketSide.Bid); string _result = ""; while (this.Running) { Thread.Sleep(1000); try { WebClientPlus _client = new WebClientPlus(5000); _result = _client.DownloadString($"{this.HttpUrl}{_url}"); _client.Dispose(); JObject _json = JObject.Parse(_result); BookItems _asks = new BookItems(MarketSide.Ask); BookItems _bids = new BookItems(MarketSide.Bid); this.Books.Timestamp = DateTimePlus.DateTime2JSTime(DateTime.UtcNow); foreach (var _item in _json["result"]["sell"]) { decimal _price = _item["Rate"].Value <decimal>(); decimal _amount = _item["Quantity"].Value <decimal>(); _asks.Insert(_price.ToString(), Math.Abs(_price), _amount); } foreach (var _item in _json["result"]["buy"]) { decimal _price = _item["Rate"].Value <decimal>(); decimal _amount = _item["Quantity"].Value <decimal>(); _bids.Insert(_price.ToString(), Math.Abs(_price), _amount); } BookItems _asksLimit = new BookItems(MarketSide.Ask); BookItems _bidsLimit = new BookItems(MarketSide.Bid); foreach (var _item in _asks.OrderBy(b => b.Value.Price).Take(10)) { decimal _price = _item.Value.Price; decimal _amount = _item.Value.Amount; _asksLimit.Insert(_price.ToString(), Math.Abs(_price), _amount); } foreach (var _item in _bids.OrderByDescending(b => b.Value.Price).Take(10)) { decimal _price = _item.Value.Price; decimal _amount = _item.Value.Amount; _bidsLimit.Insert(_price.ToString(), Math.Abs(_price), _amount); } this.Books[_pair, MarketSide.Ask] = _asksLimit; this.Books[_pair, MarketSide.Bid] = _bidsLimit; } catch (Exception _ex) { this.OnLog($"GetBooks Error:{_result}"); this.OnLog($"GetBooks Error:{_ex.ToString()}"); } } }