Пример #1
0
        public void RoundsTimeWhenCheckingMinimumTimeInUniverse_Hour()
        {
            var universe = new TestUniverse(_config,
                                            new UniverseSettings(Resolution.Daily, 1, false, false, TimeSpan.FromHours(6)));
            var addedTime = new DateTime(2018, 1, 1);

            universe.AddMember(addedTime, _security);

            Assert.IsFalse(universe.CanRemoveMember(addedTime.AddHours(5), _security));
            Assert.IsFalse(universe.CanRemoveMember(addedTime.AddHours(5.1), _security));

            Assert.IsTrue(universe.CanRemoveMember(addedTime.AddHours(5.5), _security));
            Assert.IsTrue(universe.CanRemoveMember(addedTime.AddHours(6), _security));
        }
Пример #2
0
        public void WontRemoveBecauseOpenOrder_Add()
        {
            var orderProvider   = new FakeOrderProcessor();
            var pendingRemovals = new PendingRemovalsManager(orderProvider);
            var security        = SecurityTests.GetSecurity();
            var universe        = new TestUniverse();

            orderProvider.AddOrder(new LimitOrder(security.Symbol, 1, 1, DateTime.UtcNow));

            Assert.IsNull(pendingRemovals.TryRemoveMember(security, universe));
            Assert.AreEqual(1, pendingRemovals.PendingRemovals.Keys.Count());
            Assert.AreEqual(1, pendingRemovals.PendingRemovals.Values.Count());
            Assert.AreEqual(universe, pendingRemovals.PendingRemovals.Keys.First());
            Assert.AreEqual(security, pendingRemovals.PendingRemovals.Values.First().First());
        }
Пример #3
0
        public void WontRemoveBecauseTarget_Add()
        {
            var orderProvider   = new FakeOrderProcessor();
            var pendingRemovals = new PendingRemovalsManager(orderProvider);
            var security        = SecurityTests.GetSecurity();
            var universe        = new TestUniverse();

            security.Holdings.Target = new PortfolioTarget(security.Symbol, 10);

            Assert.IsNull(pendingRemovals.TryRemoveMember(security, universe));
            Assert.AreEqual(1, pendingRemovals.PendingRemovals.Keys.Count());
            Assert.AreEqual(1, pendingRemovals.PendingRemovals.Values.Count());
            Assert.AreEqual(universe, pendingRemovals.PendingRemovals.Keys.First());
            Assert.AreEqual(security, pendingRemovals.PendingRemovals.Values.First().First());
        }
        public void WontRemoveBecauseHoldings_Add()
        {
            var orderProvider   = new FakeOrderProcessor();
            var pendingRemovals = new PendingRemovalsManager(orderProvider);
            var security        = SecurityTests.GetSecurity();
            var universe        = new TestUniverse();

            security.Holdings.SetHoldings(10, 10);

            Assert.IsFalse(pendingRemovals.TryRemoveMember(security, universe).Any());
            Assert.AreEqual(1, pendingRemovals.PendingRemovals.Keys.Count());
            Assert.AreEqual(1, pendingRemovals.PendingRemovals.Values.Count());
            Assert.AreEqual(universe, pendingRemovals.PendingRemovals.Keys.First());
            Assert.AreEqual(security, pendingRemovals.PendingRemovals.Values.First().First());
        }
Пример #5
0
        public void ReturnedRemoved_Add()
        {
            var orderProvider   = new FakeOrderProcessor();
            var pendingRemovals = new PendingRemovalsManager(orderProvider);
            var security        = SecurityTests.GetSecurity();
            var universe        = new TestUniverse();

            var result = pendingRemovals.TryRemoveMember(security, universe);

            Assert.IsTrue(result.Any());
            Assert.AreEqual(universe, result.First().Universe);
            Assert.AreEqual(security, result.First().Security);
            Assert.IsFalse(pendingRemovals.CheckPendingRemovals(new HashSet <Symbol>(), universe).Any());
            Assert.AreEqual(0, pendingRemovals.PendingRemovals.Keys.Count());
            Assert.AreEqual(0, pendingRemovals.PendingRemovals.Values.Count());
        }
Пример #6
0
        public void WontBeReturnedBecauseReSelected()
        {
            var orderProvider   = new FakeOrderProcessor();
            var pendingRemovals = new PendingRemovalsManager(orderProvider);
            var security        = SecurityTests.GetSecurity();
            var universe        = new TestUniverse();

            orderProvider.AddOrder(new LimitOrder(security.Symbol, 1, 1, DateTime.UtcNow));
            pendingRemovals.TryRemoveMember(security, universe);

            Assert.IsFalse(pendingRemovals.CheckPendingRemovals(
                               new HashSet <Symbol> {
                security.Symbol
            }, universe).Any());

            // internally it was removed because it was reselected
            Assert.AreEqual(0, pendingRemovals.PendingRemovals.Keys.Count());
            Assert.AreEqual(0, pendingRemovals.PendingRemovals.Values.Count());
        }
Пример #7
0
        public void WontRemoveBecauseOfUnderlying()
        {
            var orderProvider   = new FakeOrderProcessor();
            var pendingRemovals = new PendingRemovalsManager(orderProvider);
            var equity          = CreateSecurity(Symbols.SPY);
            var equityOption    = CreateSecurity(Symbols.SPY_C_192_Feb19_2016);

            // we add an order of the equity option
            orderProvider.AddOrder(new LimitOrder(equityOption.Symbol, 1, 1, DateTime.UtcNow));
            var universe = new TestUniverse();

            universe.AddMember(DateTime.UtcNow, equity);
            universe.AddMember(DateTime.UtcNow, equityOption);

            // we try to remove the equity
            Assert.IsNull(pendingRemovals.TryRemoveMember(equity, universe));
            Assert.AreEqual(1, pendingRemovals.PendingRemovals.Keys.Count());
            Assert.AreEqual(1, pendingRemovals.PendingRemovals.Values.Count());
            Assert.AreEqual(universe, pendingRemovals.PendingRemovals.Keys.First());
            Assert.AreEqual(equity, pendingRemovals.PendingRemovals.Values.First().First());
        }