public void mergeRTBHistDataIfValid()
        {
            if (appMDManager.getTimeBarSeries() != null)
            {
                return;
            }
            DateTime rtbDataStartTime = appMDManager.getRtbDataStartTime();
            //DateTime histDataEndTime = appMDManager.getHistDataEndTime();
            DateTime histDataEndTime = rtbDataStartTime.AddMinutes(-1);

            //Series<DateTime, MarketDataElement> preMergeRTBarSeries = getPreMergeRTBarSeries();
            //Series<DateTime, MarketDataElement> preMergeHistBarSeries getPreMergeHistBarSeries();
            if (preMergeRTBarSeries != null && preMergeHistBarSeries != null && needMergeFlag)
            {
                if (preMergeRTBarSeries.TryGet(rtbDataStartTime).HasValue&& preMergeHistBarSeries.TryGet(histDataEndTime).HasValue&& isDataMerged == false)
                {
                    mergeRTBHistData();
                    isDataMerged = true;
                }
            }
        }
示例#2
0
        public void test_mergeRTBHistDataIfValid_negative4()
        {
            //[Test : merge unsuccess, RTB data serie is null]
            IAppRTBSynchronizer synchronizer = getSynchronizer_for_mergeRTBHistDataIfValid_negative4();

            synchronizer.mergeRTBHistDataIfValid();
            IAppMDManager appMDManager = synchronizer.getAppMDManager();
            Series <DateTime, MarketDataElement> TimeBarSeries = appMDManager.getTimeBarSeries();

            Assert.IsNull(TimeBarSeries);
            Assert.AreEqual(false, synchronizer.getIsDataMerged());
        }
示例#3
0
        public void test_mergeRTBHistDataIfValid_negative2()
        {
            //[Test : merge unsuccess, hist data is not fully loaded yet, missing the last hist data]
            IAppRTBSynchronizer synchronizer = getSynchronizer_for_mergeRTBHistDataIfValid_negative2();

            synchronizer.mergeRTBHistDataIfValid();
            IAppMDManager appMDManager = synchronizer.getAppMDManager();
            Series <DateTime, MarketDataElement> TimeBarSeries = appMDManager.getTimeBarSeries();

            Assert.IsNull(TimeBarSeries);
            Assert.AreEqual(false, synchronizer.getIsDataMerged());
        }
示例#4
0
        public void test_mergeRTBHistDataIfValid_negative1()
        {
            //[Test : merge unsuccess, needMerge Flag is set to false]
            IAppRTBSynchronizer synchronizer = getSynchronizer_for_mergeRTBHistDataIfValid_negative1();

            synchronizer.setNeedMergeFlag(false);
            synchronizer.setIsDataMerged(false);
            synchronizer.mergeRTBHistDataIfValid();
            IAppMDManager appMDManager = synchronizer.getAppMDManager();
            Series <DateTime, MarketDataElement> TimeBarSeries = appMDManager.getTimeBarSeries();

            Assert.IsNull(TimeBarSeries);
            Assert.AreEqual(false, synchronizer.getIsDataMerged());

            //[Test : merge unsuccess, data merged Flag is set to true]
            synchronizer = getSynchronizer_for_mergeRTBHistDataIfValid_negative1();
            synchronizer.setNeedMergeFlag(true);
            synchronizer.setIsDataMerged(true);
            synchronizer.mergeRTBHistDataIfValid();
            appMDManager  = synchronizer.getAppMDManager();
            TimeBarSeries = appMDManager.getTimeBarSeries();
            Assert.IsNull(TimeBarSeries);
        }
示例#5
0
        public void test_mergeRTBHistDataIfValid_positive2()
        {
            //[Test : merge success, histDataSeries and RTBDataSeries is not continuous]
            IAppRTBSynchronizer synchronizer = getSynchronizer_for_mergeRTBHistDataIfValid_positive2();

            synchronizer.mergeRTBHistDataIfValid();
            IAppMDManager appMDManager = synchronizer.getAppMDManager();
            Series <DateTime, MarketDataElement> TimeBarSeries = appMDManager.getTimeBarSeries();

            Assert.AreEqual(10, TimeBarSeries.KeyCount);
            Assert.AreEqual(true, TimeBarSeries.TryGet(new DateTime(2015, 10, 21, 9, 15, 0, DateTimeKind.Local)).HasValue);
            Assert.AreEqual(true, TimeBarSeries.TryGet(new DateTime(2015, 10, 21, 9, 23, 0, DateTimeKind.Local)).HasValue);
            Assert.AreEqual(true, TimeBarSeries.TryGet(new DateTime(2015, 10, 21, 9, 24, 0, DateTimeKind.Local)).HasValue);
            Assert.AreEqual(true, TimeBarSeries.TryGet(new DateTime(2015, 10, 21, 9, 26, 0, DateTimeKind.Local)).HasValue);
            Assert.AreEqual(true, synchronizer.getIsDataMerged());
        }
        public override void UpdateUI(IBMessage message)
        {
            switch (message.Type)
            {
            case MessageType.HistoricalData:
                var watch = Stopwatch.StartNew();
                RTBSynchronizer.updatePreMergeHistBarSeries(message);
                Series <DateTime, MarketDataElement> series = appMDManager.getTimeBarSeries();
                HistoricalDataMessage histMsg = (HistoricalDataMessage)message;
                DateTime time = DateTime.ParseExact(histMsg.Date.Trim(), "yyyyMMdd  HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal);
                if (series != null && series.ContainsKey(time))
                {
                    PopulateHistGrid(message);
                }
                appForm.showMessage("test 1 : " + watch.ElapsedMilliseconds + " millsecond");
                break;

            case MessageType.HistoricalDataEnd:
                PaintChart();
                break;
            }
        }