Docs / Build a strategy

Signals

The rules that open and close positions — how the condition builder works, and the one distinction that decides whether a rule fires once or constantly.

Signals are where a strategy stops being a chart and starts being a set of decisions. A rule turns a comparison between indicator lines into an action: open a position, or close one. You write them on the Signals tab.

Groups and rules#

Everything on the Signals tab lives in a signal group — just a named container. Click Add Signal to create one (call it something like Reversion), then Add Rule to add rules to it. A strategy can have several groups; use them to keep unrelated ideas apart.

The shape of a rule#

When you click Add Rule, you choose two things at the top and then build one or more conditions underneath.

  • Actionenter position or exit position.
  • Directionlong or short.

Each Condition row compares one line against something, using three or four controls:

ControlWhat it holds
LineThe line being tested, e.g. RSI.rsi
ConditionThe comparison — goes above, is less than, and so on
Fixed valueA constant to compare against, e.g. 30
Threshold lineor another line to compare against, e.g. EMA.ema

Fill in Fixed value or Threshold line, not both. There is also an N ago box on each line for looking back a few candles — leave it blank unless you specifically want "RSI two candles ago".

Add more than one condition and they are joined with AND: every condition in the rule must be true on the same candle for it to fire.

Events and states#

This is the single most important idea in the signal builder. The Condition dropdown offers two kinds of comparison, and mixing them up is the most common way a first strategy misbehaves.

Goes above fires once as the line crosses; is greater than stays true the whole time it is above 30 RSI goes above — fires here, once is greater than — true this whole stretch
goes above / goes below are events: true only on the one candle where the line crosses the level. is greater than / is less than are states: true for every candle the line stays past the level.
  • Use goes above / goes below to open and close positions. They fire once, on the crossing.
  • Use is greater than / is less than (and equals) as filters alongside another condition. They stay true.

Picking is greater than 30 as an entry means "enter long on every candle where RSI is above 30" — which is almost always, so the strategy tries to enter constantly. goes above 30 fires once, as the market leaves oversold. That is the difference between a strategy and a stuck buy button.

A worked rule#

Enter long when RSI comes up out of oversold:

  • Action enter position · Direction long
  • One condition: Line RSI.rsi · Condition goes above · Fixed value 30

Then compare two lines instead of a constant — go long when price crosses up through its 50-period moving average (add an EMA first so its line exists):

  • Action enter position · Direction long
  • Line close · Condition goes above · Threshold line EMA.ema

And combine conditions — only take the RSI entry while price is also above the moving average, by adding a second condition row:

  • Line RSI.rsi · Condition goes above · Fixed value 30
  • AND · Line close · Condition is greater than · Threshold line EMA.ema

The first condition is the event that fires the entry; the second is the state that filters it.

Make sure positions close#

An entry rule with no matching exit is not a strategy — it is a buy button.

WARNING

If nothing closes a position, it stays open until a stop loss or take profit fires. That turns your risk settings into your exit strategy whether you meant that or not. Every entry group should have an exit rule in the same direction, or a stop and target you have deliberately chosen as the exit.

A complete, symmetric pair for the RSI idea:

  1. Enter long when RSI.rsi goes above 30 — leaving oversold.
  2. Exit long when RSI.rsi goes above 70 — reaching overbought.

Shorting#

A short strategy is the mirror image: set Direction to short on both the entry and the exit. The Condition you want usually flips too — you might enter short when RSI goes below 70 and exit short when it goes below 30.

TIP

Building the JSON directly through the API instead of the builder? The same conditions in payload form, with the raw operator names, are documented under developer tools.

Was this page helpful?