Example #1
0
        public void CreateDOMInstance()
        {
            IDOM dom = new K2Depth.K2DOM();
            Assert.IsNotNull(dom);

            // test that the slot is not found for an aribitary value
            // since no slots have been created
            Assert.AreEqual(-1, dom.GetSlotIndex(999123.00M));
        }
Example #2
0
        public void CreateDOMData()
        {
            IDOM dom = new K2Depth.K2DOM();
            Assert.IsNotNull(dom);

            IDOMData domData =  dom.Create(100.00M, 20M, 1);
            Assert.IsNotNull(domData);

            Assert.AreEqual(41, domData.MaxSlots);
            Assert.AreEqual(80, domData.MinPrice);
            Assert.AreEqual(120, domData.MaxPrice);

            // test that the slot is not found for an aribitary value
            //
            Assert.AreEqual(-1, dom.GetSlotIndex(999123.00M));

            // test we get the correct index for init price
            Assert.AreEqual(20, dom.GetSlotIndex(100.00M));
            Assert.AreEqual(0, dom.GetSlotIndex(80.00M));
            Assert.AreEqual(40, dom.GetSlotIndex(120.00M));
        }
        public KaiTrade.Interfaces.IDOM GetProductDOM(IProduct product, decimal startPx)
        {
            if (!_mnemonicDOM.ContainsKey(product.Mnemonic))
            {
                K2Depth.K2DOM dom = new K2Depth.K2DOM();
                dom.Create(startPx, (decimal)200, product.TickSize.Value);
                _mnemonicDOM.Add(product.Mnemonic, dom);

            }
            return _mnemonicDOM[product.Mnemonic];
        }
Example #4
0
        public void TestSimpleDOMUpdate()
        {
            lastUpdatedSots = null;

            IDOM dom = new K2Depth.K2DOM();
            Assert.IsNotNull(dom);

            // wire up the handlers
            dom.DOMImage += DOMImage;
            dom.DOMUpdate += DOMUpdate;

            IDOMData domData = dom.Create(100.00M, 20M, 1);
            Assert.IsNotNull(domData);

            lastUpdatedSots = new List<IDOMSlot>();

            dom.Update(101M, 5, 4);

            System.Threading.Thread.Sleep(1000);

            int slotIndex = dom.GetSlotIndex(101M);

            Assert.AreNotEqual(-1, slotIndex);

            IDOMSlot slot = dom.DOMData.K2DOMSlots[slotIndex];

            Assert.IsNotNull(slot);

            Assert.AreEqual(101M, slot.Price);
            Assert.AreEqual(5M, slot.BidSize);
            Assert.AreEqual(4M, slot.AskSize);

            Assert.IsNotNull(lastUpdatedSots);
            Assert.AreEqual(1, lastUpdatedSots.Count);
            Assert.AreEqual(101M, lastUpdatedSots[0].Price);
            Assert.AreEqual(5M, lastUpdatedSots[0].BidSize.Value);
            Assert.AreEqual(4M, lastUpdatedSots[0].AskSize.Value);

            lastUpdatedSots = new List<IDOMSlot>();

            dom.Update(99M, 3, 5);
            System.Threading.Thread.Sleep(1000);

            // make sure 101 is not affected
            slotIndex = dom.GetSlotIndex(101M);

            Assert.AreNotEqual(-1, slotIndex);

            slot = dom.DOMData.K2DOMSlots[slotIndex];

            Assert.IsNotNull(slot);

            Assert.AreEqual(101M, slot.Price);
            Assert.AreEqual(5M, slot.BidSize);
            Assert.AreEqual(4M, slot.AskSize);

            // make sure 99 is updated
            slotIndex = dom.GetSlotIndex(99M);

            Assert.AreNotEqual(-1, slotIndex);

            slot = dom.DOMData.K2DOMSlots[slotIndex];

            Assert.IsNotNull(slot);

            Assert.AreEqual(99M, slot.Price);
            Assert.AreEqual(3M, slot.BidSize);
            Assert.AreEqual(5M, slot.AskSize);

            // Update existing
            lastUpdatedSots = new List<IDOMSlot>();
            dom.Update(99M, 101, 5);
            System.Threading.Thread.Sleep(1000);
            // make sure 99 is updated
            slotIndex = dom.GetSlotIndex(99M);

            Assert.AreNotEqual(-1, slotIndex);

            slot = dom.DOMData.K2DOMSlots[slotIndex];

            Assert.IsNotNull(slot);

            Assert.AreEqual(99M, slot.Price);
            Assert.AreEqual(101M, slot.BidSize);
            Assert.AreEqual(5M, slot.AskSize);

            Assert.AreEqual(99M, lastUpdatedSots[0].Price);
            Assert.AreEqual(101M, lastUpdatedSots[0].BidSize);
            Assert.AreEqual(5M, lastUpdatedSots[0].AskSize);

            // Apply simple update
        }