# How To Build 'Complex Rules' On Coinrule

Trading Rules on Coinrule can be powerful and complex at the same time.

This article runs through some complex rules to lay out how the rule logic works and also covers some common misconceptions.

**Case 1: Condition Block - How the Sell Action will be triggered**

*What you need to know*

*For the rule to Sell, the following condition logic must be TRUE: *

*1 or 2 or 3 AND 4*

Expressed with brackets:** (1 or 2 or 3) AND (4)**

Some points to consider:

Condition 4 above must always be TRUE for the Sell to occur because of the sequential order

**Any time you use AND, it relates to ALL previous conditions inside the block. That means that an 'AND' in the condition block, the following condition must be TRUE for the rule to trigger**

*Scenarios:*

1 and 4 are TRUE: The rule sells

2 and 4 are TRUE: The rule sells

3 and 4 are TRUE: The rule sells

Only 1 and 2 TRUE: The rule does not sell

Only 1 TRUE: The rule does not sell

Only 4 TRUE: The rule does not sell

4 is

*not*just related to 3 but to ALL conditions in this block

A common misconception is around the grouping of blocks. It is *NOT:* (1 or 2) OR (3 and 4).

Let's look at examples:

*Example 1:*

Rule previously bought Ethereum with USDT at $3,000

Price decreases 4% from $3,000, RSI is 50

Condition 1 is TRUE, Condition 2 is FALSE, Condition 3 is FALSE, Condition 4 is TRUE:

**RULE SELLS**

*Example 2*

Rule previously bought Ethereum with USDT at $3,000

Price decreases 2% from $3,000, RSI is 50

Condition 1 is FALSE, Condition 2 is FALSE, Condition 3 is FALSE, Condition 4 is TRUE:

**Nothing happens**

*Example 3*

Rule previously bought Ethereum with USDT at $3,000

Price increases 5% from $3,000

Condition 1 is FALSE, Condition 2 is FALSE, Condition 3 is TRUE, Condition 4 is FALSE:

**Nothing happens**

*Example 4*

Rule previously bought Ethereum with USDT at $3,000

Price increases 5% from $3,000 ($3,150),

*then*decreases 2% ($3,087)Condition 1 is FALSE, Condition 2 is FALSE, Condition 3 is FALSE, Condition 4 is TRUE:

**Nothing happens**

*Example 5*

Rule previously bought Ethereum with USDT at $3,000

Price increases 7% from $3,000 ($3,210),

*then*decreases 2% ($3,145.8)Condition 1 is FALSE, Condition 2 is FALSE, Condition 3 is TRUE, Condition 4 is TRUE:

**Rule SELLS**

*Example 6*

Rule previously bought Ethereum with USDT at $3,000

Price unchanged, RSI is 66

Condition 1 is FALSE, Condition 2 is TRUE, Condition 3 is FALSE, Condition 4 is FALSE:

**Nothing happens**

*Example 7*

Rule previously bought Ethereum with USDT at $3,000

Price increases 5% ($3,150), then price decreases 2% ($3,087), RSI is 66

Condition 1 is FALSE, Condition 2 is TRUE, Condition 3 is FALSE, Condition 4 is TRUE:

**Rule SELLS**

**Case 2: Condition Block - How the Sell Action will be triggered**

The difference compared to Case 1 is the 'and' rather than 'or' in Condition 2.

*For the rule to Sell, the following condition logic must be TRUE: *

**1 AND 2 or 3 AND 4**

Expressed with brackets:** ((1 and 2) OR (3)) AND (4)**

If 3 is FALSE, BOTH 1 AND 2 must be TRUE together with 4 for the rule to sell

Condition 4 must always be TRUE for the rule to sell because of the sequential order

*Scenarios: *

1 AND 2 are TRUE, 3 and 4 are FALSE:

**Nothing happens**1 is FALSE, 2 is TRUE, 3 is TRUE, 4 is TRUE:

**Rule SELLS***because*3 AND 4 are TRUE1 and 2 are TRUE, 3 is FALSE, 4 is TRUE:

**Rule SELLS***because*1 AND 2 AND 4 are TRUE

**About 'OR' inside Condition Blocks**

The OR inside a condition block

*does not*create a separate group of conditions that have to be TRUEThe OR inside a condition block provides an alternative possible condition for a rule to be met

It should NOT be confused with the OR Operator which

*does*create a separate group of conditions

**Case 3: Wait Operator**

The recently introduced 'Wait For' operator is a powerful tool to validate a trend.

Here are some examples of how it applies in a complex rule:

*Example 1:*

Rule previously bought Ethereum with USDT at $3,000

Price decreases by 4% from $3,000

Block 1 above is triggered: the rule

**SELLS**

*Example 2:*

Rule previously bought Ethereum with USDT at $3,000

Price increases by 1% from $3,000, RSI is 70 in a timeframe of 5 minutes

*The following Sequence is now active:*First condition after OR Operator is TRUE

Block 2 in the image above is triggered

'Wait for' loop starts and waits for 5 minutes

**Important to note: once the 'Wait For' loop has been triggered here, Block 1 will no longer be checked***Scenario 1:*after the 5 minute wait, RSI*is*greater than 65 in a timeframe of 15 minutes: Rule**SELLS***Scenario 2*: after the 5 minute wait, RSI is*lower*than 65 in a timeframe of 15 minutes: Loop restarts the 5 minute wait and then again checks if RSI is greater than 65 on a timeframe of 15 minutesThe 'Wait For' Loop will continue running until the RSI condition is met and will then trigger the following Sell Action

**Case 4: Two Actions with OR Operator**

You can also use an OR operator to create two possible Action scenarios.

In the above rule, the first condition will be checked, if the condition is NOT met, the rule will continue by checking the condition after the OR. If the condition after the OR IS met, the rule will trigger. If the condition is NOT met, the rule will continue by checking the first condition.

This enables you to build strategies that would trigger a BUY action and a SELL action based on two different conditions.

**Try out these strategies now on Coinrule to maximize your profits and returns!**