예제 #1
0
        public virtual void WaitForSinceLastSellRuleIsSatisfied()
        {
            // Waits for 2 ticks since last sell order
            _rule = new WaitForRule(OrderType.Sell, 2);

            Assert.IsFalse(_rule.IsSatisfied(0, null));
            Assert.IsFalse(_rule.IsSatisfied(1, _tradingRecord));

            _tradingRecord.Enter(10);
            Assert.IsFalse(_rule.IsSatisfied(10, _tradingRecord));
            Assert.IsFalse(_rule.IsSatisfied(11, _tradingRecord));
            Assert.IsFalse(_rule.IsSatisfied(12, _tradingRecord));
            Assert.IsFalse(_rule.IsSatisfied(13, _tradingRecord));

            _tradingRecord.Exit(15);
            Assert.IsFalse(_rule.IsSatisfied(15, _tradingRecord));
            Assert.IsFalse(_rule.IsSatisfied(16, _tradingRecord));
            Assert.IsTrue(_rule.IsSatisfied(17, _tradingRecord));

            _tradingRecord.Enter(17);
            Assert.IsTrue(_rule.IsSatisfied(17, _tradingRecord));
            Assert.IsTrue(_rule.IsSatisfied(18, _tradingRecord));

            _tradingRecord.Exit(20);
            Assert.IsFalse(_rule.IsSatisfied(20, _tradingRecord));
            Assert.IsFalse(_rule.IsSatisfied(21, _tradingRecord));
            Assert.IsTrue(_rule.IsSatisfied(22, _tradingRecord));
        }
예제 #2
0
        public void WaitForSinceLastSellRuleIsSatisfied()
        {
            // Waits for 2 bars since last sell order
            rule = new WaitForRule(OrderType.SELL, 2);

            Assert.IsFalse(rule.IsSatisfied(0, null));
            Assert.IsFalse(rule.IsSatisfied(1, tradingRecord));

            tradingRecord.Enter(10);
            Assert.IsFalse(rule.IsSatisfied(10, tradingRecord));
            Assert.IsFalse(rule.IsSatisfied(11, tradingRecord));
            Assert.IsFalse(rule.IsSatisfied(12, tradingRecord));
            Assert.IsFalse(rule.IsSatisfied(13, tradingRecord));

            tradingRecord.Exit(15);
            Assert.IsFalse(rule.IsSatisfied(15, tradingRecord));
            Assert.IsFalse(rule.IsSatisfied(16, tradingRecord));
            Assert.IsTrue(rule.IsSatisfied(17, tradingRecord));

            tradingRecord.Enter(17);
            Assert.IsTrue(rule.IsSatisfied(17, tradingRecord));
            Assert.IsTrue(rule.IsSatisfied(18, tradingRecord));

            tradingRecord.Exit(20);
            Assert.IsFalse(rule.IsSatisfied(20, tradingRecord));
            Assert.IsFalse(rule.IsSatisfied(21, tradingRecord));
            Assert.IsTrue(rule.IsSatisfied(22, tradingRecord));
        }
예제 #3
0
        public virtual void WaitForSinceLastBuyRuleIsSatisfied()
        {
            // Waits for 3 ticks since last buy order
            _rule = new WaitForRule(OrderType.Buy, 3);

            Assert.IsFalse(_rule.IsSatisfied(0, null));
            Assert.IsFalse(_rule.IsSatisfied(1, _tradingRecord));

            _tradingRecord.Enter(10);
            Assert.IsFalse(_rule.IsSatisfied(10, _tradingRecord));
            Assert.IsFalse(_rule.IsSatisfied(11, _tradingRecord));
            Assert.IsFalse(_rule.IsSatisfied(12, _tradingRecord));
            Assert.IsTrue(_rule.IsSatisfied(13, _tradingRecord));
            Assert.IsTrue(_rule.IsSatisfied(14, _tradingRecord));

            _tradingRecord.Exit(15);
            Assert.IsTrue(_rule.IsSatisfied(15, _tradingRecord));
            Assert.IsTrue(_rule.IsSatisfied(16, _tradingRecord));

            _tradingRecord.Enter(17);
            Assert.IsFalse(_rule.IsSatisfied(17, _tradingRecord));
            Assert.IsFalse(_rule.IsSatisfied(18, _tradingRecord));
            Assert.IsFalse(_rule.IsSatisfied(19, _tradingRecord));
            Assert.IsTrue(_rule.IsSatisfied(20, _tradingRecord));
        }
예제 #4
0
        public void WaitForSinceLastBuyRuleIsSatisfied()
        {
            // Waits for 3 bars since last buy order
            rule = new WaitForRule(OrderType.BUY, 3);

            Assert.IsFalse(rule.IsSatisfied(0, null));
            Assert.IsFalse(rule.IsSatisfied(1, tradingRecord));

            tradingRecord.Enter(10);
            Assert.IsFalse(rule.IsSatisfied(10, tradingRecord));
            Assert.IsFalse(rule.IsSatisfied(11, tradingRecord));
            Assert.IsFalse(rule.IsSatisfied(12, tradingRecord));
            Assert.IsTrue(rule.IsSatisfied(13, tradingRecord));
            Assert.IsTrue(rule.IsSatisfied(14, tradingRecord));

            tradingRecord.Exit(15);
            Assert.IsTrue(rule.IsSatisfied(15, tradingRecord));
            Assert.IsTrue(rule.IsSatisfied(16, tradingRecord));

            tradingRecord.Enter(17);
            Assert.IsFalse(rule.IsSatisfied(17, tradingRecord));
            Assert.IsFalse(rule.IsSatisfied(18, tradingRecord));
            Assert.IsFalse(rule.IsSatisfied(19, tradingRecord));
            Assert.IsTrue(rule.IsSatisfied(20, tradingRecord));
        }