@Override
    public boolean isSatisfied(int index, TradingRecord tradingRecord) {
        if (satisfied) {
            return false;
        } else if (rule == null) {
            satisfied = true;
            traceIsSatisfied(index, true);
            return true;
        }
        this.satisfied = this.rule.isSatisfied(index, tradingRecord);
        return this.satisfied;
    }
@Test
    public void isSatisfiedInReverseOrder() {
        assertTrue(rule.isSatisfied(5));
        assertFalse(rule.isSatisfied(2));
        assertFalse(rule.isSatisfied(1));
        assertFalse(rule.isSatisfied(0));
    }