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); }
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); }
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); }
public void UpdateCoinTicker() { Task task = new Task(() => { BittrexExchange.UpdateTickers(coin); }); }