public static async Task RunShowExchangeStats(Dictionary <string, string> dict) { string marketSymbol = "BTC-USD"; string marketSymbol2 = "XXBTZUSD"; IExchangeAPI apiCoinbase = new ExchangeCoinbaseAPI(); IExchangeAPI apiGemini = new ExchangeGeminiAPI(); IExchangeAPI apiKraken = new ExchangeKrakenAPI(); IExchangeAPI apiBitfinex = new ExchangeBitfinexAPI(); while (true) { ExchangeTicker ticker = await apiCoinbase.GetTickerAsync(marketSymbol); ExchangeOrderBook orders = await apiCoinbase.GetOrderBookAsync(marketSymbol); decimal askAmountSum = orders.Asks.Values.Sum(o => o.Amount); decimal askPriceSum = orders.Asks.Values.Sum(o => o.Price); decimal bidAmountSum = orders.Bids.Values.Sum(o => o.Amount); decimal bidPriceSum = orders.Bids.Values.Sum(o => o.Price); ExchangeTicker ticker2 = await apiGemini.GetTickerAsync(marketSymbol); ExchangeOrderBook orders2 = await apiGemini.GetOrderBookAsync(marketSymbol); decimal askAmountSum2 = orders2.Asks.Values.Sum(o => o.Amount); decimal askPriceSum2 = orders2.Asks.Values.Sum(o => o.Price); decimal bidAmountSum2 = orders2.Bids.Values.Sum(o => o.Amount); decimal bidPriceSum2 = orders2.Bids.Values.Sum(o => o.Price); ExchangeTicker ticker3 = await apiKraken.GetTickerAsync(marketSymbol2); ExchangeOrderBook orders3 = await apiKraken.GetOrderBookAsync(marketSymbol2); decimal askAmountSum3 = orders3.Asks.Values.Sum(o => o.Amount); decimal askPriceSum3 = orders3.Asks.Values.Sum(o => o.Price); decimal bidAmountSum3 = orders3.Bids.Values.Sum(o => o.Amount); decimal bidPriceSum3 = orders3.Bids.Values.Sum(o => o.Price); ExchangeTicker ticker4 = await apiBitfinex.GetTickerAsync(marketSymbol); ExchangeOrderBook orders4 = await apiBitfinex.GetOrderBookAsync(marketSymbol); decimal askAmountSum4 = orders4.Asks.Values.Sum(o => o.Amount); decimal askPriceSum4 = orders4.Asks.Values.Sum(o => o.Price); decimal bidAmountSum4 = orders4.Bids.Values.Sum(o => o.Amount); decimal bidPriceSum4 = orders4.Bids.Values.Sum(o => o.Price); Console.Clear(); Console.WriteLine("GDAX: {0:0.00}, {1:0.00}, {2:0.00}, {3:0.00}, {4:0.00}, {5:0.00}", ticker.Last, ticker.Volume.QuoteCurrencyVolume, askAmountSum, askPriceSum, bidAmountSum, bidPriceSum); Console.WriteLine("GEMI: {0:0.00}, {1:0.00}, {2:0.00}, {3:0.00}, {4:0.00}, {5:0.00}", ticker2.Last, ticker2.Volume.QuoteCurrencyVolume, askAmountSum2, askPriceSum2, bidAmountSum2, bidPriceSum2); Console.WriteLine("KRAK: {0:0.00}, {1:0.00}, {2:0.00}, {3:0.00}, {4:0.00}, {5:0.00}", ticker3.Last, ticker3.Volume.QuoteCurrencyVolume, askAmountSum3, askPriceSum3, bidAmountSum3, bidPriceSum3); Console.WriteLine("BITF: {0:0.00}, {1:0.00}, {2:0.00}, {3:0.00}, {4:0.00}, {5:0.00}", ticker4.Last, ticker4.Volume.QuoteCurrencyVolume, askAmountSum4, askPriceSum4, bidAmountSum4, bidPriceSum4); Thread.Sleep(5000); } }
public BitfinexConnector() { api = new ExchangeBitfinexAPI(); var symbols = api.GetSymbols(); Debug.Print("{0}: ", api.Name); foreach (var s in symbols) { // Debug.Print("\t{0}",s); } base.Register(this); }
public void TestWebsocketsBitfinex() { // create a web socket connection to the exchange. Note you can Dispose the socket anytime to shut it down. // the web socket will handle disconnects and attempt to re-connect automatically. IExchangeAPI b = new ExchangeBitfinexAPI(); using (var socket = b.GetTickersWebSocket((tickers) => { Console.WriteLine("{0} tickers, first: {1}", tickers.Count, tickers.First()); })) { Console.WriteLine("Press ENTER to shutdown."); Console.ReadLine(); } }
public IDisposable TestWebsocketsBitfinex(bool display = false) { IExchangeAPI a = new ExchangeBitfinexAPI(); var socket = a.GetTickersWebSocket((tickers) => { if (display) { Console.WriteLine("BITFINEX {0,4} tickers, first: {1}", tickers.Count, tickers.First()); } //HandleTickerUpdate(a, tickers); m_outputQ.Enqueue(new TickerOutput("BITFINEX", tickers)); }); return(socket); }
private static void RunShowExchangeStats(Dictionary <string, string> dict) { string symbol = "BTC-USD"; string symbol2 = "XXBTZUSD"; IExchangeAPI apiGDAX = new ExchangeGdaxAPI(); IExchangeAPI apiGemini = new ExchangeGeminiAPI(); IExchangeAPI apiKraken = new ExchangeKrakenAPI(); IExchangeAPI apiBitfinex = new ExchangeBitfinexAPI(); while (true) { ExchangeTicker ticker = apiGDAX.GetTicker(symbol); ExchangeOrderBook orders = apiGDAX.GetOrderBook(symbol); decimal askAmountSum = orders.Asks.Sum(o => o.Amount); decimal askPriceSum = orders.Asks.Sum(o => o.Price); decimal bidAmountSum = orders.Bids.Sum(o => o.Amount); decimal bidPriceSum = orders.Bids.Sum(o => o.Price); ExchangeTicker ticker2 = apiGemini.GetTicker(symbol); ExchangeOrderBook orders2 = apiGemini.GetOrderBook(symbol); decimal askAmountSum2 = orders2.Asks.Sum(o => o.Amount); decimal askPriceSum2 = orders2.Asks.Sum(o => o.Price); decimal bidAmountSum2 = orders2.Bids.Sum(o => o.Amount); decimal bidPriceSum2 = orders2.Bids.Sum(o => o.Price); ExchangeTicker ticker3 = apiKraken.GetTicker(symbol2); ExchangeOrderBook orders3 = apiKraken.GetOrderBook(symbol2); decimal askAmountSum3 = orders3.Asks.Sum(o => o.Amount); decimal askPriceSum3 = orders3.Asks.Sum(o => o.Price); decimal bidAmountSum3 = orders3.Bids.Sum(o => o.Amount); decimal bidPriceSum3 = orders3.Bids.Sum(o => o.Price); ExchangeTicker ticker4 = apiBitfinex.GetTicker(symbol); ExchangeOrderBook orders4 = apiBitfinex.GetOrderBook(symbol); decimal askAmountSum4 = orders4.Asks.Sum(o => o.Amount); decimal askPriceSum4 = orders4.Asks.Sum(o => o.Price); decimal bidAmountSum4 = orders4.Bids.Sum(o => o.Amount); decimal bidPriceSum4 = orders4.Bids.Sum(o => o.Price); Console.Clear(); Console.WriteLine("GDAX: {0:0.00}, {1:0.00}, {2:0.00}, {3:0.00}, {4:0.00}, {5:0.00}", ticker.Last, ticker.Volume.PriceAmount, askAmountSum, askPriceSum, bidAmountSum, bidPriceSum); Console.WriteLine("GEMI: {0:0.00}, {1:0.00}, {2:0.00}, {3:0.00}, {4:0.00}, {5:0.00}", ticker2.Last, ticker2.Volume.PriceAmount, askAmountSum2, askPriceSum2, bidAmountSum2, bidPriceSum2); Console.WriteLine("KRAK: {0:0.00}, {1:0.00}, {2:0.00}, {3:0.00}, {4:0.00}, {5:0.00}", ticker3.Last, ticker3.Volume.PriceAmount, askAmountSum3, askPriceSum3, bidAmountSum3, bidPriceSum3); Console.WriteLine("BITF: {0:0.00}, {1:0.00}, {2:0.00}, {3:0.00}, {4:0.00}, {5:0.00}", ticker4.Last, ticker4.Volume.PriceAmount, askAmountSum4, askPriceSum4, bidAmountSum4, bidPriceSum4); Thread.Sleep(5000); } }
public IDisposable StartWebsocketsBitfinex(bool display = false) { IExchangeAPI a = new ExchangeBitfinexAPI(); var socket = a.GetTickersWebSocket((tickers) => { if (display) { Console.WriteLine("BITFINEX {0,4} tickers, first: {1}", tickers.Count, tickers.First()); } HandleTickerUpdate("BITFINEX", tickers); //m_outputQ.Enqueue(new TickerOutput("BITFINEX", tickers)); if (tickers.Select(s => s.Key).Contains("BTCUSD")) { //Console.WriteLine("BITFINEX"); if (TickersExistForAllExchanges) { DisplaySpreads("BITFINEX"); } } }); return(socket); }
public override async Task RunCommand() { var marketSymbol = "BTC-USD"; var marketSymbol2 = "XXBTZUSD"; IExchangeAPI apiCoinbase = new ExchangeCoinbaseAPI(), apiGemini = new ExchangeGeminiAPI(), apiKraken = new ExchangeKrakenAPI(), apiBitfinex = new ExchangeBitfinexAPI(); //TODO: Make this multi-threaded and add parameters Console.WriteLine("Use CTRL-C to stop."); while (true) { var ticker = await apiCoinbase.GetTickerAsync(marketSymbol); var orders = await apiCoinbase.GetOrderBookAsync(marketSymbol); var askAmountSum = orders.Asks.Values.Sum(o => o.Amount); var askPriceSum = orders.Asks.Values.Sum(o => o.Price); var bidAmountSum = orders.Bids.Values.Sum(o => o.Amount); var bidPriceSum = orders.Bids.Values.Sum(o => o.Price); var ticker2 = await apiGemini.GetTickerAsync(marketSymbol); var orders2 = await apiGemini.GetOrderBookAsync(marketSymbol); var askAmountSum2 = orders2.Asks.Values.Sum(o => o.Amount); var askPriceSum2 = orders2.Asks.Values.Sum(o => o.Price); var bidAmountSum2 = orders2.Bids.Values.Sum(o => o.Amount); var bidPriceSum2 = orders2.Bids.Values.Sum(o => o.Price); var ticker3 = await apiKraken.GetTickerAsync(marketSymbol2); var orders3 = await apiKraken.GetOrderBookAsync(marketSymbol2); var askAmountSum3 = orders3.Asks.Values.Sum(o => o.Amount); var askPriceSum3 = orders3.Asks.Values.Sum(o => o.Price); var bidAmountSum3 = orders3.Bids.Values.Sum(o => o.Amount); var bidPriceSum3 = orders3.Bids.Values.Sum(o => o.Price); var ticker4 = await apiBitfinex.GetTickerAsync(marketSymbol); var orders4 = await apiBitfinex.GetOrderBookAsync(marketSymbol); var askAmountSum4 = orders4.Asks.Values.Sum(o => o.Amount); var askPriceSum4 = orders4.Asks.Values.Sum(o => o.Price); var bidAmountSum4 = orders4.Bids.Values.Sum(o => o.Amount); var bidPriceSum4 = orders4.Bids.Values.Sum(o => o.Price); Console.Clear(); Console.WriteLine("GDAX: {0,13:N}, {1,15:N}, {2,8:N}, {3,13:N}, {4,8:N}, {5,13:N}", ticker.Last, ticker.Volume.QuoteCurrencyVolume, askAmountSum, askPriceSum, bidAmountSum, bidPriceSum); Console.WriteLine("GEMI: {0,13:N}, {1,15:N}, {2,8:N}, {3,13:N}, {4,8:N}, {5,13:N}", ticker2.Last, ticker2.Volume.QuoteCurrencyVolume, askAmountSum2, askPriceSum2, bidAmountSum2, bidPriceSum2); Console.WriteLine("KRAK: {0,13:N}, {1,15:N}, {2,8:N}, {3,13:N}, {4,8:N}, {5,13:N}", ticker3.Last, ticker3.Volume.QuoteCurrencyVolume, askAmountSum3, askPriceSum3, bidAmountSum3, bidPriceSum3); Console.WriteLine("BITF: {0,13:N}, {1,15:N}, {2,8:N}, {3,13:N}, {4,8:N}, {5,13:N}", ticker4.Last, ticker4.Volume.QuoteCurrencyVolume, askAmountSum4, askPriceSum4, bidAmountSum4, bidPriceSum4); Thread.Sleep(IntervalMs); } }