Esempio n. 1
0
        public void DataSourceLoadedFromStringHasValidFrames()
        {
            var dataSource = CsvDataSource.CreateFormStrings(Mother.UnsortedRowsCsvData);

            Assert.IsNotNull(dataSource.Bars);
            Assert.AreEqual(2, dataSource.Bars.Keys.Count);
            Assert.Contains(Symbols.Sber, dataSource.Bars.Keys.ToList());
            Assert.Contains(Symbols.Vtbr, dataSource.Bars.Keys.ToList());
        }
Esempio n. 2
0
        public void DataSourceLoadedFromDailyScvIsValid()
        {
            var dataSource = CsvDataSource.CreateFormStrings(Mother.DailyCsvData);

            Assert.IsNotNull(dataSource.Bars);
            Assert.AreEqual(1, dataSource.Bars.Keys.Count);
            Assert.Contains(Symbols.Sber, dataSource.Bars.Keys.ToList());

            var sberBar = dataSource.Bars[Symbols.Sber];

            Assert.IsTrue(sberBar.Keys.Any());
        }
        public void ComposedMarketDataLoadedFromStringsIsValid()
        {
            var dataSource = CsvDataSource.CreateFormStrings(Mother.UnsortedRowsCsvData);
            var mdata      = new ComposedMarketData(dataSource.Bars);

            Assert.IsNotNull(mdata.Bars);
            Assert.IsTrue(mdata.RowKeys.Count > 0);
            Assert.IsTrue(mdata.Symbols.Count == 2);
            Assert.Contains(Symbols.Sber, mdata.Symbols.ToList());
            Assert.Contains(Symbols.Vtbr, mdata.Symbols.ToList());

            var sberBars = mdata.Bars[Symbols.Sber];

            foreach (var bar in sberBars.Values)
            {
                Console.WriteLine(bar);
            }
        }
        public void CanGetLastBarFromCsvMarketData()
        {
            var dataSource = CsvDataSource.CreateFormStrings(Mother.GenericCsvData);
            var marketData = new ComposedMarketData(dataSource.Bars);
            var eventBus   = new QueuedEventBus();

            var handler = new HistoricDataHandler(eventBus, marketData);

            Console.WriteLine("Total rows = {0}", marketData.RowKeys.Count);

            var i = 0;

            while (handler.ContinueBacktest)
            {
                handler.Update();
                i++;

                var sber = handler.GetLast(Symbols.Sber);
                var vtbr = handler.GetLast(Symbols.Vtbr);

                Console.WriteLine($"Iteration {i}");

                if (sber == null)
                {
                    Console.WriteLine($"{handler.CurrentTime} => SBER is NULL");
                }
                else
                {
                    sber.Print();
                }
                if (vtbr == null)
                {
                    Console.WriteLine($"{handler.CurrentTime} => VTBR is NULL");
                }
                else
                {
                    vtbr.Print();
                }
                Console.WriteLine("------------------");
            }
        }
        public void ComposedMarketDataLoadedFromStringsHasValidRowKeys()
        {
            var dataSource = CsvDataSource.CreateFormStrings(Mother.UnsortedRowsCsvData);
            var mdata      = new ComposedMarketData(dataSource.Bars);
            var rowKeys    = mdata.RowKeys;

            foreach (var dateTime in rowKeys)
            {
                Console.WriteLine("key={0}", dateTime);
            }

            DateTime?prev = null;

            foreach (var dateTime in rowKeys)
            {
                if (prev == null)
                {
                    prev = dateTime;
                    continue;
                }

                Assert.IsTrue(prev <= dateTime);
            }
        }