Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
 private static void Handle_UpdateOrderBook(object sender, OrderBookUpdateArgs e)
 {
     cout(e.OrderBook);
     //m_orderBookGrid.UpdatePrices(e.OrderBook);
     //m_lastGridUpdate = DateTime.Now;
 }
Exemplo n.º 3
0
 private static void Exchanges_UpdateOrderBookEvent(object sender, OrderBookUpdateArgs e)
 {
     UpdateOrderBookEvent?.Invoke(sender, e);
 }
Exemplo n.º 4
0
 public void Handle_UpdateOrderBook(object sender, OrderBookUpdateArgs e)
 {
     m_orderBookGrid.UpdatePrices(e.OrderBook);
     m_lastGridUpdate = DateTime.Now;
 }