Пример #1
0
        public void Setup()
        {
            // Mock для словаря метаданных
            TradeSharpDictionary.Initialize(MoqTradeSharpDictionary.Mock);

            MakeGaps();
            // подготовить список котировок для "клиента" и "сервера"
            var allCandles    = new List <CandleData>();
            var clientCandles = new List <CandleData>();

            var index = 0;

            for (var time = timeHistStart; time <= timeNow; time = time.AddMinutes(1))
            {
                // проверить попадание в дырку на сервере
                if (serverGaps.Any(g => g.IsIn(time)))
                {
                    continue;
                }

                if (DaysOff.Instance.IsDayOff(time))
                {
                    continue;
                }
                var o      = (float)Math.Sin((index++) / 15.0);
                var candle = new CandleData(o, o + 0.001f, o - 0.003f, o - 0.001f, time, time.AddMinutes(1));
                allCandles.Add(candle);
                if (time > timeFileEnd)
                {
                    continue;
                }

                // проверить попадание в дырку на клиенте
                if (clientGaps.Any(g => g.IsIn(time)))
                {
                    continue;
                }
                clientCandles.Add(candle);
            }

            // поместить его в "локальное хранилище"
            AtomCandleStorage.Instance.RewriteCandles(Ticker, clientCandles);

            // инициализировать хранилище котировок
            moq = MoqQuoteStorage.MakeMoq(new Dictionary <string, List <CandleData> >
            {
                { Ticker, allCandles }
            });
            QuoteStorage.Initialize(moq.Object);
        }
Пример #2
0
        public void InitContext()
        {
            // очистить каталог котировок
            quoteFolder = AppDomain.CurrentDomain.BaseDirectory + "\\quotes";
            try
            {
                if (Directory.Exists(quoteFolder))
                {
                    foreach (var fileName in Directory.GetFiles(quoteFolder, "*.quote"))
                    {
                        File.Delete(fileName);
                    }
                }
            }
            catch (Exception ex)
            {
                Assert.Fail("NuDailyQuoteStorage - невозможно очистить каталог котировок: {0}", ex.Message);
            }

            // подготовить словарь валют
            DalSpot.Instantiate(MoqTradeSharpDictionary.Mock);

            // подготовить тестовые котировки
            var endTime   = DateTime.Now;
            var startTime = endTime.AddDays(-30).AddHours(-2);
            // подготовить список "серверных" гэпов
            var daysOff = QuoteMaker.MakeGapsOnDaysOff(startTime, endTime);
            // подготовить свечи m1
            var tickerCandles = new Dictionary <string, List <CandleData> >();

            foreach (var ticker in DalSpot.Instance.GetTickerNames())
            {
                var candles = QuoteMaker.MakeQuotes(startTime, endTime, daysOff);
                tickerCandles.Add(ticker, candles);
            }

            mockQuoteStorage = MoqQuoteStorage.MakeMoq(tickerCandles);
            QuoteStorage.Initialize(mockQuoteStorage.Object);
        }