Esempio n. 1
0
        // Order Book
        private void CacheOrderBook(BinanceStreamOrderBook stream)
        {
            var instrument = stream.Symbol;
            var bidCount   = stream.Bids.Count;
            var askCount   = stream.Asks.Count;


            for (int depth = 0; depth < bidCount; depth++)
            {
                CacheResult(BINANCE_DEPTH, instrument, RtdFields.BID_DEPTH, depth, stream.Bids[depth].Price);
                CacheResult(BINANCE_DEPTH, instrument, RtdFields.BID_DEPTH_SIZE, depth, stream.Bids[depth].Quantity);
            }
            //for (int depth = bidCount; depth < 10; depth++)
            //{
            //    CacheResult(BINANCE, instrument, RtdFields.BID_DEPTH, depth, SubscriptionManager.UninitializedValue);
            //    CacheResult(BINANCE, instrument, RtdFields.BID_DEPTH_SIZE, depth, SubscriptionManager.UninitializedValue);
            //}

            for (int depth = 0; depth < askCount; depth++)
            {
                CacheResult(BINANCE_DEPTH, instrument, RtdFields.ASK_DEPTH, depth, stream.Asks[depth].Price);
                CacheResult(BINANCE_DEPTH, instrument, RtdFields.ASK_DEPTH_SIZE, depth, stream.Asks[depth].Quantity);
            }
            //for (int depth = askCount; depth < 10; depth++)
            //{
            //    CacheResult(BINANCE, instrument, RtdFields.ASK_DEPTH, depth, SubscriptionManager.UninitializedValue);
            //    CacheResult(BINANCE, instrument, RtdFields.ASK_DEPTH_SIZE, depth, SubscriptionManager.UninitializedValue);
            //}
        }
Esempio n. 2
0
        private object DecodeOrderBook(BinanceStreamOrderBook stream, string field, int depth)
        {
            int askCount = stream.Asks.Count;
            int bidCount = stream.Bids.Count;

            switch (field)
            {
            case RtdFields.SYMBOL:
                return(stream.Symbol);

            case RtdFields.LAST_UPDATE_ID:
                return(stream.LastUpdateId);

            case RtdFields.ASK_DEPTH:
                if (depth >= askCount)
                {
                    return(SubscriptionManager.UninitializedValue);
                }

                return(stream.Asks[depth].Price);

            case RtdFields.ASK_DEPTH_SIZE:
                if (depth >= askCount)
                {
                    return(SubscriptionManager.UninitializedValue);
                }

                return(stream.Asks[depth].Quantity);

            case RtdFields.BID_DEPTH:
                if (depth >= bidCount)
                {
                    return(SubscriptionManager.UninitializedValue);
                }

                return(stream.Bids[depth].Price);

            case RtdFields.BID_DEPTH_SIZE:
                if (depth >= bidCount)
                {
                    return(SubscriptionManager.UninitializedValue);
                }

                return(stream.Bids[depth].Quantity);
            }
            return(SubscriptionManager.UninitializedValue);
        }
Esempio n. 3
0
        // Order Book
        private void CacheOrderBook(BinanceStreamOrderBook stream)
        {
            lock (_subMgr)
            {
                CacheResult(BINANCE_DEPTH, stream.Symbol, RtdFields.SYMBOL, stream.Symbol);
                CacheResult(BINANCE_DEPTH, stream.Symbol, RtdFields.LAST_UPDATE_ID, stream.LastUpdateId);

                for (int depth = 0; depth < stream.Bids.Count; depth++)
                {
                    CacheResult(BINANCE_DEPTH, stream.Symbol, RtdFields.BID_DEPTH, depth, stream.Bids[depth].Price);
                    CacheResult(BINANCE_DEPTH, stream.Symbol, RtdFields.BID_DEPTH_SIZE, depth, stream.Bids[depth].Quantity);
                }

                for (int depth = 0; depth < stream.Asks.Count; depth++)
                {
                    CacheResult(BINANCE_DEPTH, stream.Symbol, RtdFields.ASK_DEPTH, depth, stream.Asks[depth].Price);
                    CacheResult(BINANCE_DEPTH, stream.Symbol, RtdFields.ASK_DEPTH_SIZE, depth, stream.Asks[depth].Quantity);
                }
            }
        }