public void OldBaseFillModel_MarketOnCloseFill(bool isMarketAlwaysOpen)
        {
            var model        = new TestFillModelInheritBaseClass();
            var security     = SecurityTests.GetSecurity(isMarketAlwaysOpen);
            var reference    = new DateTime(2022, 4, 5, 10, 0, 0);
            var referenceUtc = reference.ConvertToUtc(TimeZones.NewYork);
            var timeKeeper   = new TimeKeeper(referenceUtc);

            security.SetLocalTimeKeeper(timeKeeper.GetLocalTimeKeeper(TimeZones.NewYork));

            var args = new FillModelParameters(security, new MarketOnCloseOrder(security.Symbol, 1, orderDateTime),
                                               new MockSubscriptionDataConfigProvider(_config), Time.OneHour);

            if (isMarketAlwaysOpen)
            {
                Assert.Throws <InvalidOperationException>(() => model.Fill(args));
            }
            else
            {
                var result = model.Fill(args);

                Assert.True(model.MarketOnCloseFillWasCalled);
                Assert.IsNotNull(result);
                Assert.True(model.GetPricesWasCalled);
                Assert.AreEqual(12345, result.OrderEvent.FillPrice);
            }
        }
        public void OldBaseFillModel_MarketOnCloseFill()
        {
            var model  = new TestFillModelInheritBaseClass();
            var result = model.Fill(
                new FillModelParameters(_security,
                                        new MarketOnCloseOrder(_security.Symbol, 1, orderDateTime),
                                        new MockSubscriptionDataConfigProvider(_config)));

            Assert.True(model.MarketOnCloseFillWasCalled);
            Assert.IsNotNull(result);
            Assert.True(model.GetPricesWasCalled);
            Assert.AreEqual(12345, result.OrderEvent.FillPrice);
        }
示例#3
0
        public void OldBaseFillModel_MarketOnOpenFill()
        {
            var model = new TestFillModelInheritBaseClass();

            _security.SetMarketPrice(new Tick(orderDateTime, _security.Symbol, 88, 88)
            {
                TickType = TickType.Trade
            });

            var result = model.Fill(
                new FillModelParameters(_security,
                                        new MarketOnOpenOrder(_security.Symbol, 1, orderDateTime),
                                        new MockSubscriptionDataConfigProvider(_config),
                                        Time.OneHour));

            Assert.True(model.MarketOnOpenFillWasCalled);
            Assert.IsNotNull(result);
            Assert.True(model.GetPricesWasCalled);
            Assert.AreEqual(12345, result.OrderEvent.FillPrice);
        }