/// <summary>
        /// Get information for all trading pairs
        /// </summary>
        /// <param name="service">BuzzexDotNet service</param>
        /// <returns>All trading pair information</returns>
        public static async Task <Dictionary <string, TradingPairBase> > GetAllInfo(this IBuzzexDotNet service)
        {
            var pairDictionary = new Dictionary <string, TradingPairBase>();
            var currentPage    = 1;
            var lastPage       = false;

            while (!lastPage)
            {
                var result = await service.GetInfo(currentPage);

                foreach (var pair in result.Pairs)
                {
                    foreach (var kvp in pair)
                    {
                        pairDictionary.Add(kvp.Key, kvp.Value);
                    }
                }

                currentPage++;
                if (currentPage >= result.Meta.Pagination.TotalPages)
                {
                    lastPage = true;
                }
            }

            return(pairDictionary);
        }
        /// <summary>
        /// Place a Market Order
        /// </summary>
        /// <param name="service">BuzzexDotNet service</param>
        /// <param name="pair">Trading pair</param>
        /// <param name="side">Trade side</param>
        /// <param name="quantity">Quantity to trade</param>
        /// <returns></returns>
        public static async Task <bool> MarketOrder(this IBuzzexDotNet service, string pair, Side side, decimal quantity)
        {
            var ticker = await service.GetTickerConverted(pair);

            var response = await service.PlaceOrder(pair, side, ticker.Last, quantity);

            return(response);
        }
        /// <summary>
        /// Get converted information for all trading pairs
        /// </summary>
        /// <param name="service">BuzzexDotNet service</param>
        /// <returns>Collection of TradingPair objects</returns>
        public static async Task <List <TradingPair> > GetAllInfoConverted(this IBuzzexDotNet service)
        {
            var pairs = await GetAllInfo(service);

            var tradingPairs = new List <TradingPair>();

            foreach (var pair in pairs)
            {
                var tradingPair = new TradingPair(pair.Key, pair.Value);
                tradingPairs.Add(tradingPair);
            }

            return(tradingPairs);
        }
Пример #4
0
        public BuzzexRepositoryTests()
        {
            IFileRepository _fileRepo = new FileRepository();

            if (_fileRepo.FileExists(configPath))
            {
                _apiCreds = _fileRepo.GetDataFromFile <ApiCredentials>(configPath);
            }
            if (_apiCreds != null || !string.IsNullOrEmpty(_apiCreds.ApiKey))
            {
                _svc = new BuzzexDotNet(_apiCreds);
            }
            else
            {
                _svc = new BuzzexDotNet();
            }
        }
        /// <summary>
        /// Get converted ticker
        /// </summary>
        /// <param name="service">BuzzexDotNet service</param>
        /// <param name="pair">Trading pair</param>
        /// <returns>Converted Ticker object</returns>
        public static async Task <Ticker> GetTickerConverted(this IBuzzexDotNet service, string pair)
        {
            var tickerBase = await service.GetTicker(pair);

            var tickerList = new List <Ticker>();

            foreach (var ticker in tickerBase)
            {
                foreach (var kvp in ticker)
                {
                    var tick = new Ticker(kvp.Key, kvp.Value);

                    tickerList.Add(tick);
                }
            }

            return(tickerList.FirstOrDefault());
        }
        /// <summary>
        /// Get converted Depth
        /// </summary>
        /// <param name="service">BuzzexDotNet service</param>
        /// <param name="pair">Trading pair</param>
        /// <returns>Converted DepthDetail object</returns>
        public static async Task <DepthDetail> GetDepthConverted(this IBuzzexDotNet service, string pair)
        {
            var result = await service.GetDepth(pair);

            List <List <decimal> > asks = null;
            List <List <decimal> > bids = null;

            foreach (var kvp in result)
            {
                asks = kvp.Value.Asks;
                bids = kvp.Value.Bids;
            }

            var asksInfo = new List <DepthInfo>();
            var bidsInfo = new List <DepthInfo>();

            for (var i = 0; i < asks.Count; i++)
            {
                var depthInfo = new DepthInfo
                {
                    Amount = asks[i][0],
                    Price  = asks[i][1]
                };
                asksInfo.Add(depthInfo);
            }
            for (var i = 0; i < bids.Count; i++)
            {
                var depthInfo = new DepthInfo
                {
                    Amount = bids[i][0],
                    Price  = bids[i][1]
                };
                bidsInfo.Add(depthInfo);
            }

            return(new DepthDetail {
                Pair = pair, Asks = asksInfo, Bids = bidsInfo
            });
        }
        /// <summary>
        /// Get converted information for trading pairs
        /// </summary>
        /// <param name="service">BuzzexDotNet service</param>
        /// <param name="page">Page number</param>
        /// <returns>Collection of TradingPair objects</returns>
        public static async Task <List <TradingPair> > GetInfoConverted(this IBuzzexDotNet service, int page)
        {
            var result = await service.GetInfo(page);

            return(ConvertTradingPairs(result.Pairs));
        }
 /// <summary>
 /// Get converted information for trading pairs
 /// 1st page only
 /// </summary>
 /// <param name="service">BuzzexDotNet service</param>
 /// <returns>Collection of TradingPair objects</returns>
 public static async Task <List <TradingPair> > GetInfoConverted(this IBuzzexDotNet service)
 {
     return(await GetInfoConverted(service, 1));
 }
 /// <summary>
 /// Get information for trading pairs
 /// 1st page only
 /// </summary>
 /// <param name="service">BuzzexDotNet service</param>
 /// <returns>All trading pair information</returns>
 public static async Task <PairResponse> GetInfo(this IBuzzexDotNet service)
 {
     return(await service.GetInfo(1));
 }
        /// <summary>
        /// Place a Limit Order
        /// </summary>
        /// <param name="service">BuzzexDotNet service</param>
        /// <param name="pair">Trading pair</param>
        /// <param name="side">Trade side</param>
        /// <param name="price">Price of order</param>
        /// <param name="quantity">Quantity to trade</param>
        public static async Task <bool> LimitOrder(this IBuzzexDotNet service, string pair, Side side, decimal price, decimal quantity)
        {
            var response = await service.PlaceOrder(pair, side, price, quantity);

            return(response);
        }