예제 #1
0
파일: QuoteTest.cs 프로젝트: Gelian/Trader
        public void QuoteStore_MT_ReadRangeOfQuotesWhenManyWritesInQuotes()
        {
            var expDate = new DateTime(2013, 08, 07, 22, 35, 00, DateTimeKind.Utc);

              var quoteStore = new QuoteStore();

              for (int i = 0; i < 1000; i+=10)
              {
            int i1 = i;
            new Thread(() =>
              {
            for (int j = 0; j < 10; j++)
            {
              quoteStore.Add(new Quote
                {
                  Symbol = "EURUSD",
                  Ask = 1.33925,
                  Bid = 1.33908,
                  Time = expDate.AddSeconds(i1 + j)
                });
              Thread.Sleep(1);
            }
              }).Start();
              }

              var actQuote = quoteStore.GetRange(expDate.AddSeconds(10), expDate.AddSeconds(50));

              int k = 0;
              foreach (var quote in actQuote)
              {
            Debug.Print("Step " + k + " " + quote.Time.ToString(CultureInfo.InvariantCulture));
            k += 1;
              }
        }
예제 #2
0
파일: QuoteTest.cs 프로젝트: Gelian/Trader
        public void QuoteStore_GetRangeOfQoutes()
        {
            var expDate = new DateTime(2013, 08, 07, 22, 35, 00, DateTimeKind.Utc);
              var expDate2 = expDate.AddMinutes(2);
              var expDate3 = expDate.AddMinutes(3);
              var expDate4 = expDate.AddMinutes(5);

              var expQuote = new Quote
            {
              Symbol = "EURUSD",
              Ask = 1.33924,
              Bid = 1.33907,
              Time = expDate
            };

              var expQuote2 = new Quote
            {
              Symbol = "EURUSD",
              Ask = 1.33925,
              Bid = 1.33908,
              Time = expDate2
            };

              var expQuote3 = new Quote
            {
              Symbol = "EURUSD",
              Ask = 1.33929,
              Bid = 1.33912,
              Time = expDate3
            };

              var expQuote4 = new Quote
            {
              Symbol = "EURUSD",
              Ask = 1.33927,
              Bid = 1.33910,
              Time = expDate4
            };

              var quoteStore = new QuoteStore();

              quoteStore.Add(expQuote);
              quoteStore.Add(expQuote2);
              quoteStore.Add(expQuote3);
              quoteStore.Add(expQuote4);

              var actQuotes = quoteStore.GetRange(expDate2, expDate3).ToList();

              Assert.AreEqual(false, actQuotes.Exists(p => p.Time == expDate));
              Assert.AreEqual(true, actQuotes.Exists(p => p.Time == expDate2));
              Assert.AreEqual(true, actQuotes.Exists(p => p.Time == expDate3));
              Assert.AreEqual(false, actQuotes.Exists(p => p.Time == expDate4));
        }