private static void Exchange_UpdateOrderBookEvent(object sender, OrderBookUpdateArgs e) { //m_aggregateTimer.Enabled = false; double minSize = 1.0; // minimum size to trade (in BTC) var exchange = sender as CryptoAPIs.BaseExchange; double bestBid = exchange.OrderBook.Bids.Last().Key; bestBids[exchange] = bestBid; //double bidSize = bestBid.Value; double bestAsk = exchange.OrderBook.Asks.First().Key; bestAsks[exchange] = bestAsk; //bestBids[e.OrderBook.Bids.Keys.Max()] = exchange; /*bestBids[Crypto.gdax.OrderBook.Bids.Keys.Max()] = CryptoExch.GDAX; * bestBids[Crypto.hitbtc.OrderBook.Bids.Keys.Max()] = CryptoExch.HITBTC; * bestBids[Crypto.bitfinex.OrderBook.Bids.Keys.Max()] = CryptoExch.BITFINEX; * bestBids[Crypto.gemini.OrderBook.Bids.Keys.Max()] = CryptoExch.GEMINI; * bestBids[Crypto.bitflyer.OrderBook.Bids.Keys.Max()] = CryptoExch.BITFLYER; * bestBids[Crypto.poloniex.OrderBook.Bids.Keys.Max()] = CryptoExch.POLONIEX;*/ /*bestAsks[Crypto.gdax.OrderBook.Asks.Keys.First()] = CryptoExch.GDAX; * bestAsks[Crypto.hitbtc.OrderBook.Asks.Keys.First()] = CryptoExch.HITBTC; * bestAsks[Crypto.bitfinex.OrderBook.Asks.Keys.First()] = CryptoExch.BITFINEX; * bestAsks[Crypto.gemini.OrderBook.Asks.Keys.First()] = CryptoExch.GEMINI; * bestAsks[Crypto.bitflyer.OrderBook.Asks.Keys.First()] = CryptoExch.BITFLYER; * bestAsks[Crypto.poloniex.OrderBook.Asks.Keys.First()] = CryptoExch.POLONIEX; * * double bidPrice = bestBids.Keys.Last(); * double askPrice = bestAsks.Keys.First();*/ double bestBidPrice = bestBids.Values.Max(); double bestAskPrice = bestAsks.Values.Min(); double bestBaSpread = Math.Round(bestAskPrice - bestBidPrice, 2); double worstBidPrice = bestBids.Values.Min(); double worstAskPrice = bestAsks.Values.Max(); double worstBaSpread = Math.Round(worstAskPrice - worstBidPrice, 2); // Only display updates if the one of the B/A spreads has changed if (bestBaSpread != prevBestBaSpread || worstBaSpread != prevWorstBaSpread) { cout("{0} BestBid: {1:0.00} BestAsk: {2:0.00} b/a spread best: {3:0.00} worst: {4:0.00}", DateTime.Now.ToString("HH:mm:ss"), bestBidPrice, bestAskPrice, bestBaSpread, worstBaSpread); prevBestBaSpread = bestBaSpread; prevWorstBaSpread = worstBaSpread; } //m_aggregateTimer.Enabled = false; }
private static void Handle_UpdateOrderBook(object sender, OrderBookUpdateArgs e) { cout(e.OrderBook); //m_orderBookGrid.UpdatePrices(e.OrderBook); //m_lastGridUpdate = DateTime.Now; }
private static void Exchanges_UpdateOrderBookEvent(object sender, OrderBookUpdateArgs e) { UpdateOrderBookEvent?.Invoke(sender, e); }
public void Handle_UpdateOrderBook(object sender, OrderBookUpdateArgs e) { m_orderBookGrid.UpdatePrices(e.OrderBook); m_lastGridUpdate = DateTime.Now; }