Esempio n. 1
0
        public void Orderbook_PriceEngineTest_Live()
        {
            Console.WriteLine("Orderbook_PriceEngineTest_Live");
            Orderbook ob = new Orderbook();
            Matcher   m  = new Matcher();

            ob.setMatcher(m);

            double MAXTIME = 10000;

            ob.addBid(12.2, 100, null);
            ob.addAsk(12.3, 100, null);

            IOrderbookPriceEngine pe = new OrderbookPriceEngine();

            try
            {
                System.IO.TextWriter writeFile = new StreamWriter("Orderbook_PriceEngineTest_Live.txt");

                for (int i = 0; i < MAXTIME; i++)
                {
                    if (pe.isMarket(ob))
                    {
                        double pp    = pe.getMarketPrice(ob);
                        bool   isbid = SingletonRandomGenerator.Instance.NextBoolean();
                        if (isbid)
                        {
                            ob.addBid(pp, 100, null);
                        }
                        else
                        {
                            ob.addAsk(pp, 100, null);
                        }
                        writeFile.WriteLine("?, ?, " + pp);
                    }
                    else
                    {
                        double ppask = pe.getAskPrice(ob);
                        ob.addAsk(ppask, 100, null);

                        double ppbid = pe.getBidPrice(ob);
                        ob.addBid(ppbid, 100, null);

                        writeFile.WriteLine("" + ppask + ", " + ppbid + ", ?");
                    }
                }
                writeFile.Flush();
                writeFile.Close();
                writeFile = null;
            }
            catch (IOException)
            {
                Assert.AreEqual(0, 1);
            }

            // execution occurs: 4 5 and 6 partially hit 3 out of 5 units of o3 at the ask price (5)
            Scheduler.Instance().Run();
        }
Esempio n. 2
0
        public void Orderbook_PriceEngineTest()
        {
            Console.WriteLine("Orderbook_PriceEngineTest");
            Orderbook ob = new Orderbook();
            Matcher   m  = new Matcher();

            ob.setMatcher(m);

            double MAXTIME = 10000;

            ob.addBid(12.2, 100, null);
            ob.addAsk(12.3, 100, null);

            IOrderbookPriceEngine pe = new OrderbookPriceEngine();

            try
            {
                System.IO.TextWriter writeFile = new StreamWriter("Orderbook_PriceEngineTest.txt");

                for (int i = 0; i < MAXTIME; i++)
                {
                    if (pe.isMarket(ob))
                    {
                        writeFile.WriteLine("?, ?, " + pe.getMarketPriceOffset(ob));
                    }
                    else
                    {
                        writeFile.WriteLine("" + pe.getAskPriceOffset(ob) + ", " + pe.getBidPriceOffset(ob) + ", ?");
                    }
                }
                writeFile.Flush();
                writeFile.Close();
                writeFile = null;
            }
            catch (IOException)
            {
                Assert.AreEqual(0, 1);
            }

            // execution occurs: 4 5 and 6 partially hit 3 out of 5 units of o3 at the ask price (5)
            Scheduler.Instance().Run();
        }