Exemplo n.º 1
0
        private static void Symbol_NewLevel2(Symbol symbol, Level2Quote level2, DOMQuote dom)
        {
            // Snapshot level2 update
            if (dom != null)
            {
                List <Level2Quote> bids = dom.Bids;
                List <Level2Quote> asks = dom.Asks;
            }

            // Incremental level2 update
            if (level2 != null)
            {
                QuotePriceType priceType = level2.PriceType; // Bid or Ask
                double         price     = level2.Price;
                double         size      = level2.Size;

                if (level2.Closed)
                {
                    // If level is closed and should be deleted
                }
            }

            // Get market depth info from symbol
            var depthOfMarket = symbol.DepthOfMarket.GetDepthOfMarketAggregatedCollections();
        }
Exemplo n.º 2
0
        private DOMQuote CreateDOMQuote(List <BitfinexBookItem> bitfinexBook)
        {
            DateTime utcNow = Core.Instance.TimeUtils.DateTimeUtcNow;
            string   symbol = bitfinexBook.First().Pair;

            var bids = bitfinexBook.Where(b => b.Amount > 0).OrderBy(b => b.Price);
            var asks = bitfinexBook.Where(b => b.Amount < 0).OrderBy(b => b.Price);

            var dom = new DOMQuote(symbol, utcNow);

            foreach (var bid in bids)
            {
                string id    = $"MMID_{bid.Price}";
                double price = (double)bid.Price;
                double size  = bid.Count == 0 ? 0 : Math.Abs((double)bid.Amount);

                dom.Bids.Add(new Level2Quote(QuotePriceType.Bid, symbol, id, price, size, utcNow));
            }

            foreach (var ask in asks)
            {
                string id    = $"MMID_{ask.Price}";
                double price = (double)ask.Price;
                double size  = ask.Count == 0 ? 0 : Math.Abs((double)ask.Amount);

                dom.Asks.Add(new Level2Quote(QuotePriceType.Ask, symbol, id, price, size, utcNow));
            }

            return(dom);
        }
Exemplo n.º 3
0
        private DOMQuote CreateDOMQuote(HitOrderBookData hitOrderBookData)
        {
            string symbol = hitOrderBookData.Symbol;
            var    utcNow = Core.Instance.TimeUtils.DateTimeUtcNow;

            var dom = new DOMQuote(symbol, utcNow);

            dom.Bids.AddRange(this.CreateLevel2Quotes(QuotePriceType.Bid, hitOrderBookData.Bids, symbol, utcNow));

            dom.Asks.AddRange(this.CreateLevel2Quotes(QuotePriceType.Ask, hitOrderBookData.Asks, symbol, utcNow));

            return(dom);
        }