public void BarBuilderTimeBar_СоздатьЭкземплар() { BarBuilderTimeBar barBuilder = null; Assert.IsNull(barBuilder); BarSettings barSettings; Common.Enums.DataModelType barType; barBuilder = CreateBarBuilderTimeBar(out barSettings, out barType); Assert.IsNotNull(barBuilder); Assert.AreEqual(barBuilder.BarSettings.BarType, barType); Assert.IsNotNull(barBuilder.BarList); Assert.AreEqual(barBuilder.TimeSpanInterval.TotalSeconds, barBuilder.BarSettings.Interval); Assert.AreEqual(barBuilder.DateTimeStart.Date, DateTime.Now.Date); Assert.AreEqual(barBuilder.DateTimeStart.TimeOfDay, barBuilder.BarSettings.DateTimeStart.TimeOfDay); Assert.AreNotEqual(barBuilder.BarList.Count, 0); ///15 чаосов * 60 мин = 900 мин Assert.AreEqual(barBuilder.BarList.Count, 900); Assert.AreEqual(barBuilder.BarList.First().DateTimeOpen, (DateTime.Now.Date).AddHours(9)); Assert.AreEqual(barBuilder.BarList.First().DateTime, (DateTime.Now.Date).AddHours(9) + barBuilder.TimeSpanInterval); Assert.AreEqual(barBuilder.BarList.Last().DateTimeOpen, (DateTime.Now.Date).AddHours(24) - barBuilder.TimeSpanInterval); Assert.AreEqual(barBuilder.BarList.Last().DateTime, (DateTime.Now.Date).AddHours(24)); Assert.AreEqual(barBuilder.BarList.Last().Interval, barBuilder.BarSettings.Interval); Assert.AreEqual(barBuilder.BarList.Last().Symbol, barBuilder.BarSettings.Symbol); }
public void BarBuilder_СоздатьЭкземплар() { BarBuilderRangeBar barBuilder = null; Assert.IsNull(barBuilder); BarSettings barSettings; Common.Enums.DataModelType barType; barBuilder = CreateBarBuilderRangeBar(out barSettings, out barType); Assert.IsNotNull(barBuilder); Assert.AreEqual(barBuilder.BarSettings.BarType, barType); }
public MakeRangeBarsOnTick(BarSettings barSettings, ITimeTrackable timeTracker, IDataContext tradingData, ILogger logger) : base(tradingData.Get <ObservableCollection <Tick> >()) { this.tradingData = tradingData; this.barSettings = barSettings; this.timeTracker = timeTracker; this.logger = logger; //подменяем тип бара на RangeBar if (this.barSettings.BarType != Enums.DataModelType.RangeBar) { this.barSettings.BarType = Enums.DataModelType.RangeBar; } this.barBuilder = new BarBuilderRangeBar(barSettings); }
public void Setup() { this.ticks = new ObservableCollection <Tick>(); this.ticks.Add(new Tick { Symbol = "SBER", DateTime = new DateTime(2012, 10, 23, 20, 20, 20), Price = 500, Volume = 100, TradeAction = TradeAction.Buy }); this.ticks.Add(new Tick { Symbol = "SBER", DateTime = new DateTime(2012, 10, 23, 20, 20, 25), Price = 530, Volume = 100, TradeAction = TradeAction.Buy }); this.ticks.Add(new Tick { Symbol = "SBER", DateTime = new DateTime(2012, 10, 23, 20, 20, 28), Price = 510, Volume = 100, TradeAction = TradeAction.Buy }); this.ticks.Add(new Tick { Symbol = "SBER", DateTime = new DateTime(2012, 10, 23, 20, 20, 33), Price = 550, Volume = 100, TradeAction = TradeAction.Buy }); this.ticks.Add(new Tick { Symbol = "SBER", DateTime = new DateTime(2012, 10, 23, 20, 20, 38), Price = 490, Volume = 100, TradeAction = TradeAction.Buy }); this.ticks.Add(new Tick { Symbol = "SBER", DateTime = new DateTime(2012, 10, 23, 20, 21, 10), Price = 510, Volume = 100, TradeAction = TradeAction.Buy }); this.ticks.Add(new Tick { Symbol = "SBER", DateTime = new DateTime(2012, 10, 23, 20, 21, 20), Price = 500, Volume = 100, TradeAction = TradeAction.Buy }); this.ticks.Add(new Tick { Symbol = "SBER", DateTime = new DateTime(2012, 10, 23, 20, 21, 23), Price = 520, Volume = 100, TradeAction = TradeAction.Buy }); this.ticks.Add(new Tick { Symbol = "SBER", DateTime = new DateTime(2012, 10, 23, 20, 21, 45), Price = 520, Volume = 100, TradeAction = TradeAction.Buy }); this.ticks.Add(new Tick { Symbol = "SBER", DateTime = new DateTime(2012, 10, 23, 20, 21, 58), Price = 520, Volume = 100, TradeAction = TradeAction.Buy }); this.ticks.Add(new Tick { Symbol = "SBER", DateTime = new DateTime(2012, 10, 23, 20, 22, 20), Price = 520, Volume = 100, TradeAction = TradeAction.Buy }); this.ticks.Add(new Tick { Symbol = "SBER", DateTime = new DateTime(2012, 10, 23, 20, 22, 45), Price = 500, Volume = 100, TradeAction = TradeAction.Buy }); barBuilder = CreateBarBuilderRangeBar(out barSettings, out barType); }
public void BarBuilderTimeBar_GetNewBarTest() { BarBuilderTimeBar barBuilder = null; Assert.IsNull(barBuilder); BarSettings barSettings; Common.Enums.DataModelType barType; barBuilder = CreateBarBuilderTimeBar(out barSettings, out barType); var tick = new Tick(barSettings.Symbol, new DateTime(2016, 7, 10, 10, 0, 00, 600), 151000, 25); var bar = barBuilder.GetBarTemplate(tick); Assert.IsNotNull(bar); Assert.IsTrue(bar.DateTimeOpen == new DateTime(2016, 7, 10, 10, 0, 0)); Assert.IsTrue(bar.DateTimeOpen <= tick.DateTime); Assert.IsTrue(bar.DateTime > tick.DateTime); Assert.IsTrue(bar.Symbol == tick.Symbol); Assert.IsTrue(bar.State == BarState.None); Assert.IsTrue(barBuilder.BarList.First().DateTimeOpen == new DateTime(2016, 7, 10, 10, 1, 0)); Assert.IsTrue(barBuilder.BarList.Last().DateTime == new DateTime(2016, 7, 11, 00, 0, 0)); Assert.AreEqual(barBuilder.DateTimeStart.Date, (new DateTime(2016, 7, 10, 00, 0, 0)).Date); try { // проверяем генерацию exception когда // Не удалось создать нужный интервал tick = new Tick(barSettings.Symbol, new DateTime(2016, 7, 10, 08, 0, 00, 600), 151000, 25); bar = barBuilder.GetBarTemplate(tick); Assert.Fail("no exception thrown"); Assert.IsNull(bar); } catch (Exception ex) { //Assert.IsTrue(ex is Exception); //Assert.IsTrue(ex.Message == "Не удалось создать нужный интервал"); } }