public async Task <(BestExchangeQuote bestBid, BestExchangeQuote bestAsk)> Get(CurrencyPair currencyPair)
        {
            var httpClient = new HttpClient();
            var httpRequestMessageService = new HttpRequestMessageService();
            var currencyPairService       = new CurrencyPairService();

            var bittrexExchange     = new BittrexExchange(httpClient, httpRequestMessageService, currencyPairService);
            var coinbaseProExchange = new CoinbaseProExchange(httpClient, httpRequestMessageService, currencyPairService);
            var krakenExchange      = new KrakenExchange(httpClient, httpRequestMessageService, currencyPairService);
            var poloniexExchange    = new PoloniexExchange(httpClient, httpRequestMessageService, currencyPairService);
            var binanceExchange     = new BinanceExchange(httpClient, httpRequestMessageService, currencyPairService);
            var bitfinexExchange    = new BitfinexExchange(httpClient, httpRequestMessageService, currencyPairService);
            var bitstampExchange    = new BitstampExchange(httpClient, httpRequestMessageService, currencyPairService);

            var exchangeResults = await Task.WhenAll(
                bittrexExchange.Get(currencyPair),
                coinbaseProExchange.Get(currencyPair),
                krakenExchange.Get(currencyPair),
                poloniexExchange.Get(currencyPair),
                binanceExchange.Get(currencyPair),
                bitfinexExchange.Get(currencyPair),
                bitstampExchange.Get(currencyPair));

            var result = arbitrageCalculator.Calculate(
                exchangeResults[0],
                exchangeResults[1],
                exchangeResults[2],
                exchangeResults[3],
                exchangeResults[4],
                exchangeResults[5],
                exchangeResults[6]);

            return(result);
        }
Beispiel #2
0
        public StackLayout GetCurrencyList()
        {
            BittrexExchange.GetBalances();
            if (BittrexExchange.APIKeyisInvalid)
            {
                App.ChangePage(new MainPage());
                return(new StackLayout());
            }

            var tsection = new TableSection();

            foreach (var coin in Coin.AllCoins.Where(c => c.Balance > 0))
            {
                var cell = new ImageCell
                {
                    // Some differences with loading images in initial release.
                    ImageSource = ImageSource.FromFile(coin.Currency + ".png"),
                    Text        = string.Format("{0} ({1})", coin.Currency, coin.Balance),
                    Detail      = coin.MarketName,
                };
                cell.Tapped += (o, e) =>
                {
                    App.ChangePage(new CoinPage(coin));
                };
                tsection.Add(cell);
            }
            TableView tableView = new TableView
            {
                Intent = TableIntent.Form,
                Root   = new TableRoot
                {
                    tsection
                }
            };

            var layout = new StackLayout()
            {
                Children = { tableView }, Margin = new Thickness(0, 40, 0, 0), VerticalOptions = LayoutOptions.FillAndExpand, HeightRequest = Shared.ScreenSize.Height
            };

            //AbsoluteLayout.SetLayoutBounds(layout, new Rectangle(0, 20, 1, 1));
            return(layout);
        }
Beispiel #3
0
        public async Task <(BestExchangeQuote bestBid, BestExchangeQuote bestAsk)> Get()
        {
            var httpClient = new HttpClient();
            var httpRequestMessageService = new HttpRequestMessageService();

            var bittrexExchange = new BittrexExchange(httpClient, httpRequestMessageService);
            var bittrexResult   = await bittrexExchange.Get();

            var gdaxExchange = new GdaxExchange(httpClient, httpRequestMessageService);
            var gdaxResult   = await gdaxExchange.Get();

            var coinExchangeExchange       = new CoinExchangeExchange(httpClient, httpRequestMessageService);
            var coinExchangeExchangeResult = await coinExchangeExchange.Get();

            var krakenExchange       = new CoinExchangeExchange(httpClient, httpRequestMessageService);
            var krakenExchangeResult = await krakenExchange.Get();

            var poloniexExchange       = new PoloniexExchange(httpClient, httpRequestMessageService);
            var poloniexExchangeResult = await poloniexExchange.Get();

            var binanceExchange       = new BinanceExchange(httpClient, httpRequestMessageService);
            var binanceExchangeResult = await binanceExchange.Get();

            var bitfinexExchange       = new BitfinexExchange(httpClient, httpRequestMessageService);
            var bitfinexExchangeResult = await bitfinexExchange.Get();

            var bitstampExchange       = new BitstampExchange(httpClient, httpRequestMessageService);
            var bitstampExchangeResult = await bitstampExchange.Get();

            var result = arbitrageCalculator.Calculate(
                bittrexResult,
                gdaxResult,
                coinExchangeExchangeResult,
                krakenExchangeResult,
                poloniexExchangeResult,
                binanceExchangeResult,
                bitfinexExchangeResult,
                bitstampExchangeResult);

            return(result);
        }
Beispiel #4
0
 public void UpdateCoinTicker()
 {
     Task task = new Task(() => {
         BittrexExchange.UpdateTickers(coin);
     });
 }