Exemple #1
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));
        }
Exemple #2
0
        public void IsSatisfied()
        {
            decimal tradedAmount = Decimals.ONE;

            // 5% stop-loss
            StopLossRule rule = new StopLossRule(closePrice, 5);

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

            // Enter at 114
            tradingRecord.Enter(2, 114, tradedAmount);
            Assert.IsFalse(rule.IsSatisfied(2, tradingRecord));
            Assert.IsFalse(rule.IsSatisfied(3, tradingRecord));
            Assert.IsTrue(rule.IsSatisfied(4, tradingRecord));
            // Exit
            tradingRecord.Exit(5);

            // Enter at 128
            tradingRecord.Enter(5, 128, tradedAmount);
            Assert.IsFalse(rule.IsSatisfied(5, tradingRecord));
            Assert.IsTrue(rule.IsSatisfied(6, tradingRecord));
            Assert.IsTrue(rule.IsSatisfied(7, tradingRecord));
        }
Exemple #3
0
        public void IsSatisfied()
        {
            decimal tradedAmount = Decimals.ONE;

            // 30% stop-gain
            StopGainRule rule = new StopGainRule(closePrice, 30);

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

            // Enter at 108
            tradingRecord.Enter(2, 108, tradedAmount);
            Assert.IsFalse(rule.IsSatisfied(2, tradingRecord));
            Assert.IsFalse(rule.IsSatisfied(3, tradingRecord));
            Assert.IsTrue(rule.IsSatisfied(4, tradingRecord));
            // Exit
            tradingRecord.Exit(5);

            // Enter at 118
            tradingRecord.Enter(5, 118, tradedAmount);
            Assert.IsFalse(rule.IsSatisfied(5, tradingRecord));
            Assert.IsTrue(rule.IsSatisfied(6, tradingRecord));
            Assert.IsTrue(rule.IsSatisfied(7, tradingRecord));
        }