Beispiel #1
0
        public TestDealsAggregator()
        {
            LoadData1();

            CDealsAgregator da = new CDealsAgregator(100, 1M);

            da.GenAggrPrice(sourceLst, destLst);



            int i = 0;

            TestDealStruct(destLst[i++], 2, EnmDealDir.Buy, 73000);
            TestDealStruct(destLst[i++], 1, EnmDealDir.Buy, 73000);
            TestDealStruct(destLst[i++], 1, EnmDealDir.Buy, 73000);
            TestDealStruct(destLst[i++], 1, EnmDealDir.Sell, 77571);
            TestDealStruct(destLst[i++], 2, EnmDealDir.Buy, 73040);
            TestDealStruct(destLst[i++], 4, EnmDealDir.Sell, 77544);
            TestDealStruct(destLst[i++], 1, EnmDealDir.Sell, 77557);
            TestDealStruct(destLst[i++], 2, EnmDealDir.Sell, 73020);

            LoadData2();
            da.GenAggrPrice(sourceLst, destLst);

            TestDealStruct(destLst[i++], 2, EnmDealDir.Sell, 73020);



            System.Threading.Thread.Sleep(0);
        }
Beispiel #2
0
        /// <summary>
        ///
        /// Create structures - list for deals and stocks
        /// for  instrument
        ///
        /// Call from -
        /// 1)CKernetlTerminal.SubscribeTickersFromConfig - on successfull Authorisation
        /// 2)CKernetlTerminal.EditConnectedStock
        /// 3)CKernetlTerminal.EditNonConnectedStock
        ///
        /// </summary>
        /// <param name="instrument"></param>
        public void AddStructuresForSubscribedTicker(string instrument, decimal stepPrice)
        {
            //if (isin == null)
            //  return;


            lock (OutpListAggrDeals)
                if (!OutpListAggrDeals.ContainsKey(instrument))
                {
                    OutpListAggrDeals[instrument] = new List <CDealClass>();
                }

            lock (OutpStockClass)
                if (!OutpStockClass.ContainsKey(instrument))
                {
                    OutpStockClass[instrument] = new CStockClass();
                }

            //TODO get from GUI

            int parPeriod = 30;


            if (!_dictDealsAggr.ContainsKey(instrument))
            {
                _dictDealsAggr[instrument] = new CDealsAgregator(parPeriod, stepPrice);
            }



            lock (OutpListRawDeals)
                if (!OutpListRawDeals.ContainsKey(instrument))
                {
                    OutpListRawDeals[instrument] = new List <CDealClass>();
                }
        }
Beispiel #3
0
        public TestLogPerf()
        {
            //System.Runtime.GCSettings.LatencyMode = System.Runtime.GCLatencyMode.LowLatency;


            //  CUtil.IncreaseProcessPriority();

            Thread.CurrentThread.Priority = ThreadPriority.Highest;


            InitTicks();
            CDealsList dl = new CDealsList();

            dl.DealsList = new List <CDealClass>();


            CLogServer  lgSrv         = new CLogServer();
            List <long> lstHighTck    = new List <long>();
            List <long> lstHighLogTck = new List <long>();

            LogBuff = new CLoggerBuffered("TestLogPerf", lgSrv);
            (new Thread(ThreadLogProducer)).Start();
            Stopwatch swTotal = new Stopwatch();

            LogBuff.Log("--------------started----------------------------");
            swTotal.Start();

            long beforeTck    = 0;
            long afterTck     = 0;
            long deltaTck     = 0;
            long beforeLogTck = 0;
            long afterLogTck  = 0;
            long deltalogTck  = 0;
            long deltaCycle   = 0;

            for (int i = 0; i < 10000; i++)
            {
                beforeTck = swTotal.ElapsedTicks;
                int fac = 1;
                // for (int j = 1; j < 20; j++)
                //   fac *= j;
                CDealsAgregator da = new CDealsAgregator(100, 1M);
                da.GenAggrPrice(sourceLst, dl.DealsList);


                //CDealsAgregator da = new CDealsAgregator(sourceLst, dl.DealsList, 100,1M);


                afterTck = swTotal.ElapsedTicks;
                deltaTck = afterTck - beforeTck;

                deltalogTck = afterLogTck - beforeLogTck;
                deltaCycle  = beforeTck - afterLogTck;

                beforeLogTck = swTotal.ElapsedTicks;

                long     d1  = 1;
                DateTime dt  = DateTime.Now;
                string   st1 = "sssssss";
                decimal  dc1 = 32132.24343M;

                LogMsg(new CLogStruct
                {
                    I           = i,
                    DeltaTck    = deltaTck,
                    DeltaLogTck = deltalogTck,
                    DeltaCycle  = deltaCycle,
                    D1          = d1,
                    Dt          = dt,
                    St1         = st1,
                    dc1         = dc1,
                    LargeStr    =
                        " 121323232434gdfgdgdsfgdfgsdgdfgsfdgsdgdsfgsdfgsdfgdfgsdfgsdfgfdsgsdg"
                }
                       );
                if (deltaTck > 100 && i > 0)
                {
                    lstHighTck.Add(deltaTck);
                }
                if (deltalogTck > 100)
                {
                    lstHighLogTck.Add(deltalogTck);
                }


                //LogBuff.Log("i= " + i + " deltaTck=" + deltaTck + " deltaLogTck=" + deltalogTck+"  "

                //+ d1+dt+st1+dc1
                // +" 121323232434gdfgdgdsfgdfgsdgdfgsfdgsdgdsfgsdfgsdfgdfgsdfgsdfgfdsgsdg"
                //);
                afterLogTck = swTotal.ElapsedTicks;
            }


            swTotal.Stop();
            Thread.Sleep(2000);
            LogBuff.Log("eclapsed ms=" + swTotal.ElapsedMilliseconds + " ticks=" + swTotal.ElapsedTicks);
            LogBuff.Log("high tick ======");
            foreach (var v in lstHighTck)
            {
                LogBuff.Log(" tick=" + v);
            }

            LogBuff.Log("high tick log======");
            foreach (var v in lstHighLogTck)
            {
                LogBuff.Log(" log tick=" + v);
            }

            LogBuff.Log("--------finished-------------------------------------------");
        }
        public TestTicks()
        {
            string  d      = DateTime.Now.ToString("yyy_MM_dd__hh_mm_ss");
            CLogger logger = new CLogger("TestTicks_" + d, false);


            swTot.Reset();
            swTot.Start();
            InitTicks();

            CDealsList dl = new CDealsList();

            dl.DealsList = new List <CDealClass>();
            List <long> lstDi = new List <long>();

            for (int j = 0; j < 3; j++)
            {
                for (int i = 0; i < 900000; i++)
                {
                    lstTotBeginMs.Add(swTot.ElapsedMilliseconds);
                    lstTotBeginTicks.Add(swTot.ElapsedTicks);

                    sw.Reset();
                    sw.Start();
                    CDealsAgregator da = new CDealsAgregator(100, 1M);
                    da.GenAggrPrice(sourceLst, dl.DealsList);
                    //CDealsAgregator da = new CDealsAgregator(sourceLst, dl.DealsList, 100,1M);
                    sw.Stop();
                    lstMS.Add(sw.ElapsedMilliseconds);
                    //lstTicks.Add(sw.ElapsedTicks);

                    lstTotEndMs.Add(swTot.ElapsedMilliseconds);
                    lstTotEndTicks.Add(swTot.ElapsedTicks);
                    if (i > 1)
                    {
                        long di = lstTotBeginMs[i] - lstTotBeginMs[i - 1];
                        if (di > 10)
                        {
                            lstDi.Add(di);
                        }
                    }
                    // System.Threading.Thread.Sleep(1);
                }

                swTot.Stop();
                lstTotBeginMs.Clear();
                lstTotBeginTicks.Clear();
                lstTotEndMs.Clear();
                lstTotEndTicks.Clear();
                lstMS.Clear();
            }
            swFile.Reset();
            swFile.Start();
            for (int i = 0; i < lstTotBeginTicks.Count; i++)
            {
                logger.Log("__________________________________");
                logger.Log("i=" + i);
                logger.Log("iter begin " + lstTotBeginMs[i] + " | " + lstTotBeginTicks[i]);
                logger.Log("iter end " + lstTotEndMs[i] + " | " + lstTotEndTicks[i]);
                logger.Log("__________________________________");
            }
            swFile.Stop();

            for (int i = 0; i < lstDi.Count; i++)
            {
                logger.Log(lstDi[i].ToString());
            }


            logger.Flush();

            System.Threading.Thread.Sleep(1000);
        }