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)); }
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)); }
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)); }