Esempio n. 1
0
        public void bonus_test()
        {
            Match.MatchService ms = new Match.MatchService();
            var t1 = ms.Model.Traders.Where(a => a.Name == "hello56").FirstOrDefault();

            InvitorFeeMgr ifm = new InvitorFeeMgr();
            var           r   = ifm.TransBonus(t1, new System.Collections.Generic.List <string> {
                "hello54", "hello55"
            });

            ms.Flush();

            Assert.AreEqual(r, InvitorFeeService.InvitorBonusInCny * 2);
        }
Esempio n. 2
0
        public void s_o_b_o_all_5()
        {
            RestoreDb();
            ms = new Match.MatchService();
            OrderPreHandler.CountPerMinuteLimit = 1000000;
            var cs = ms.Model.Contracts.Where(a => a.IsDel == false).ToList();
            var ts = ms.Model.Traders.ToList();
            List <OrderResult> l  = new List <OrderResult>();
            Stopwatch          sw = new Stopwatch();

            sw.Start();
            //每种合约,每个人交易10次
            for (int i = 0; i < cs.Count; i++)
            {
                for (int j = 0; j < ts.Count; j++)
                {
                    for (int k = 0; k < 5; k++)
                    {
                        var r = ms.AddOrder(ts[j].Id, cs[i].Id,
                                            TradeDirectType.卖, OrderType.开仓, OrderPolicy.限价申报,
                                            1, 1);
                        l.Add(r);
                    }
                }
            }
            for (int i = 0; i < cs.Count; i++)
            {
                for (int j = 0; j < ts.Count; j++)
                {
                    for (int k = 0; k < 5; k++)
                    {
                        var r = ms.AddOrder(ts[j].Id, cs[i].Id,
                                            TradeDirectType.买, OrderType.开仓, OrderPolicy.限价申报,
                                            1, 1);
                        l.Add(r);
                    }
                }
            }
            sw.Stop();
            Assert.IsTrue(sw.Elapsed.TotalMilliseconds < 20000);
            for (int i = 0; i < l.Count; i++)
            {
                var t = l[i];
                Assert.AreEqual(t.ResultCode, 0);
            }
        }
Esempio n. 3
0
        public void u_100()
        {
            List <OrderResult> l = new List <OrderResult>(1200);

            //TextLog log = new TextLog("u_100.txt");
            RestoreDb();
            ms = new Match.MatchService();
            List <Task> lt    = new List <Task>();
            var         ts    = ms.Model.Traders.ToList();
            var         total = ts.Count;

            for (int j = 0; j < total; j++)
            {
                var v   = ts[j];
                var dir = j < total / 2 ? TradeDirectType.卖 : TradeDirectType.买;
                var ta  = Task.Factory.StartNew(() =>
                {
                    for (int i = 0; i < 10; i++)
                    {
                        var tr = ms.AddOrder(v.Id, c.Id, dir, OrderType.开仓, OrderPolicy.限价申报, 10, 88);
                        l.Add(tr);
                        //log.Info(tr.ToString());
                    }
                });
                lt.Add(ta);
            }
            Task.WaitAll(lt.ToArray());
            ms.Flush();
            Arrange.log.Flush();
            Assert.IsTrue(l.Count <= total * 10);
            Assert.IsTrue(l.Count >= total * 8);
            //Assert.AreEqual(total*10, l.Count);
            int h = 0;

            for (int i = 0; i < l.Count; i++)
            {
                var v = l[i];
                Assert.AreEqual(v.ResultCode, 0);
                h += v.Order.State == OrderState.已成交 ? 1 : 0;
            }
            Assert.IsTrue(h <= total * 10);
            Assert.IsTrue(h >= total * 5);
        }
Esempio n. 4
0
        public void u_2()
        {
            object loc = new object();


            List <OrderResult> l = new List <OrderResult>();

            RestoreDb();
            ms = new Match.MatchService();
            List <Task> lt    = new List <Task>();
            var         task1 = Task.Factory.StartNew(() => {
                for (int i = 0; i < 10; i++)
                {
                    var tr = ms.AddOrder(t1.Id, c.Id, TradeDirectType.卖, OrderType.开仓, OrderPolicy.限价申报, 10, 88);
                    l.Add(tr);
                }
            });
            var task2 = Task.Factory.StartNew(() => {
                for (int i = 0; i < 10; i++)
                {
                    var tr = ms.AddOrder(t2.Id, c.Id, TradeDirectType.买, OrderType.开仓, OrderPolicy.限价申报, 10, 88);
                    l.Add(tr);
                }
            });

            lt.Add(task1);
            lt.Add(task2);
            Task.WaitAll(lt.ToArray());
            ms.Flush();
            Arrange.log.Flush();
            Assert.AreEqual(20, l.Count);
            for (int i = 0; i < l.Count; i++)
            {
                var v = l[i];
                Assert.AreEqual(v.ResultCode, 0);
                Assert.AreEqual(v.Order.State, OrderState.已成交);
            }
        }