public void MakeBarFromTicks() { Bar bar = BarsFactory.MakeBar(MakeTicks(), new DateTime(2012, 12, 01, 10, 00, 15)); Assert.AreEqual(142100, bar.High); Assert.AreEqual(138808, bar.Low); Assert.AreEqual(140000, bar.Open); Assert.AreEqual(141000, bar.Close); Assert.AreEqual(17000, bar.Volume); Assert.AreEqual(new DateTime(2012, 12, 01, 10, 00, 15), bar.DateTime); }
public void GetPart() { long interval = TimeSpan.TicksPerMinute; long from = new DateTime(2012, 10, 23, 20, 20, 0).Ticks; long to = from + interval; IEnumerable <Tick> ticks = BarsFactory.GetTicksInterval(this.ticks, from, to); Assert.IsTrue(ticks.Count() == 5); Assert.AreEqual(new DateTime(2012, 10, 23, 20, 20, 20), ticks.ElementAt(0).DateTime); Assert.AreEqual(new DateTime(2012, 10, 23, 20, 20, 25), ticks.ElementAt(1).DateTime); Assert.AreEqual(new DateTime(2012, 10, 23, 20, 20, 28), ticks.ElementAt(2).DateTime); Assert.AreEqual(new DateTime(2012, 10, 23, 20, 20, 33), ticks.ElementAt(3).DateTime); Assert.AreEqual(new DateTime(2012, 10, 23, 20, 20, 38), ticks.ElementAt(4).DateTime); }
public override void OnItemAdded(Tick item) { if (barSettings.Symbol != item.Symbol) { return; } ((FakeTimeTracker)this.timeTracker).stop = item.DateTime; DateTime end = GetPeriodEndDate(); if (this.tradingData.Get <IEnumerable <Tick> >().LastOrDefault(t => t.Symbol == item.Symbol).DateTime < end) { return; } if (BarExists(end)) { return; } if (end > this.timeTracker.StartAt + this.timeTracker.Duration) { return; } DateTime begin = end.AddSeconds(-this.barSettings.Interval); IEnumerable <Tick> barTicks = GetTicksInRangeOf(item, begin, end); if (barTicks == null) { return; } if (barTicks.Count() == 0) { return; } Bar fresh = BarsFactory.MakeBar(barTicks, end); fresh.Interval = this.barSettings.Interval; this.logger.Log(String.Format("{0:dd/MM/yyyy H:mm:ss.fff}, {1}, добавлен новый бар {2}", DateTime.Now, this.GetType().Name, fresh.ToString())); this.tradingData.Get <ObservableCollection <Bar> >().Add(fresh); }
public void OrderTicksByDate() { IEnumerable <Tick> orderedTicks = BarsFactory.OrderByDateTime(this.ticks); Assert.AreEqual(new DateTime(2012, 10, 23, 20, 20, 20), orderedTicks.ElementAt(0).DateTime); Assert.AreEqual(new DateTime(2012, 10, 23, 20, 20, 25), orderedTicks.ElementAt(1).DateTime); Assert.AreEqual(new DateTime(2012, 10, 23, 20, 20, 28), orderedTicks.ElementAt(2).DateTime); Assert.AreEqual(new DateTime(2012, 10, 23, 20, 20, 33), orderedTicks.ElementAt(3).DateTime); Assert.AreEqual(new DateTime(2012, 10, 23, 20, 20, 38), orderedTicks.ElementAt(4).DateTime); Assert.AreEqual(new DateTime(2012, 10, 23, 20, 21, 10), orderedTicks.ElementAt(5).DateTime); Assert.AreEqual(new DateTime(2012, 10, 23, 20, 21, 20), orderedTicks.ElementAt(6).DateTime); Assert.AreEqual(new DateTime(2012, 10, 23, 20, 21, 23), orderedTicks.ElementAt(7).DateTime); Assert.AreEqual(new DateTime(2012, 10, 23, 20, 21, 45), orderedTicks.ElementAt(8).DateTime); Assert.AreEqual(new DateTime(2012, 10, 23, 20, 21, 58), orderedTicks.ElementAt(9).DateTime); Assert.AreEqual(new DateTime(2012, 10, 23, 20, 22, 20), orderedTicks.ElementAt(10).DateTime); Assert.AreEqual(new DateTime(2012, 10, 23, 20, 22, 45), orderedTicks.ElementAt(11).DateTime); }
public void OrderTicksByPrice() { IEnumerable <Tick> orderedTicks = BarsFactory.OrderByPrice(this.ticks); Assert.AreEqual(149, orderedTicks.ElementAt(0).Price); Assert.AreEqual(149.55, orderedTicks.ElementAt(1).Price); Assert.AreEqual(150, orderedTicks.ElementAt(2).Price); Assert.AreEqual(150.15, orderedTicks.ElementAt(3).Price); Assert.AreEqual(150.43, orderedTicks.ElementAt(4).Price); Assert.AreEqual(151, orderedTicks.ElementAt(5).Price); Assert.AreEqual(151.12, orderedTicks.ElementAt(6).Price); Assert.AreEqual(152, orderedTicks.ElementAt(7).Price); Assert.AreEqual(152.38, orderedTicks.ElementAt(8).Price); Assert.AreEqual(152.40, orderedTicks.ElementAt(9).Price); Assert.AreEqual(152.49, orderedTicks.ElementAt(10).Price); Assert.AreEqual(155, orderedTicks.ElementAt(11).Price); }
public void MakeThirdBar() { long interval = TimeSpan.TicksPerMinute; long from = new DateTime(2012, 10, 23, 20, 22, 0).Ticks; long to = from + interval; IEnumerable <Tick> ticks = BarsFactory.GetTicksInterval(this.ticks, from, to); Bar bar = BarsFactory.MakeBar(ticks, new DateTime(2012, 10, 23, 20, 22, 45)); Assert.AreEqual(152.49, bar.High); Assert.AreEqual(150, bar.Low); Assert.AreEqual(152.49, bar.Open); Assert.AreEqual(150, bar.Close); Assert.AreEqual(200, bar.Volume); Assert.AreEqual(new DateTime(2012, 10, 23, 20, 22, 45), bar.DateTime); }
public void BarsFactory_Load_All_Bars_From_File() { IEnumerable <Bar> bars = BarsFactory.Make(String.Concat(ProjectRootFolderNameFactory.Make(), "\\App_Data\\Import\\SPFB.RTS_120901_121001_Hour.txt")); Assert.AreEqual(294, bars.Count()); }
public void BarsFactory_Make_ForHour() { IEnumerable <Bar> bars = BarsFactory.Make(String.Concat(ProjectRootFolderNameFactory.Make(), "\\TestData\\SPFB.RTS.txt")); Assert.AreEqual(574, bars.Count()); }