Skip to main content

Indicators

Indicators in FORJ are workspace-level assets built from candle data. Strategies do not create private copies of indicators. Instead, they reference workspace indicator configs that have been assigned to candle streams.

Workspace indicator configs

An indicator config defines:

  • the indicator type
  • its parameters
  • its output shape
  • the candle stream or streams it should run on

This model lets multiple strategies share the same indicator definition.

Creating an indicator config

When you create an indicator config, you choose an indicator type and then fill in that indicator's parameter form.

Examples:

  • EMA uses length, offset, and priceSource
  • RSI uses length, offset, priceSource, and optional smoothing
  • KELTNER uses length, bandsStyle, smoothing, deviationMultiplier, and related settings

After saving the config, assign it to the candle stream where it should run.

Built-in indicators

FORJ currently supports:

  • EMA
  • SMA
  • RMA
  • RSI
  • BB
  • KELTNER
  • HIGH_LOW
  • PIVOT

For exact defaults and outputs, see Supported Indicators.

Indicator outputs matter

Not every indicator returns a single value output.

Examples:

  • EMA, SMA, RMA, RSI, and HIGH_LOW expose value
  • BB exposes lower, middle, and upper
  • KELTNER exposes upper, middle, and lower
  • PIVOT exposes pivot and slope

When you reference an indicator in a condition, make sure you choose the correct output.

Using indicators in rules

Indicator values can be used in:

  • guard conditions
  • conditional action steps

When choosing an indicator operand, you typically select:

  1. the stream context
  2. the indicator config
  3. the output name

That lets you build rules such as:

  • triggering stream indicator RSI value < 30
  • triggering stream indicator EMA value > triggering stream indicator SMA value
  • triggering stream indicator BB upper > event close

Indicator events

Indicator events are reusable derived signals built on top of indicators or event values. They are useful when you want a boolean signal instead of a raw numeric output.

The two built-in indicator-event kinds are:

  • Cross
  • Trend

Cross

A Cross event detects whether one source crossed another.

Typical uses:

  • fast EMA crossing above slow EMA
  • price crossing above a Bollinger middle band

Trend

A Trend event detects whether a source is moving up or down.

Typical uses:

  • RSI moving down
  • a moving average sloping upward

Using indicator events in conditions

Indicator events appear as a boolean-style operand source in the condition builder. That makes rules like this straightforward:

indicator event EMA_Fast_Crosses_Slow == true

Warm-up and lookback

Indicators need enough candle history before their outputs are reliable.

Examples:

  • a longer SMA needs more bars before it stabilizes
  • BB(20) needs enough history for the full volatility window
  • PIVOT requires the full left/right confirmation window

If an indicator-based rule appears inactive early in a stream, check whether the stream has enough history yet.

Editing and removing indicators

Because indicators are shared workspace assets, changing one can affect multiple strategies. Review the impact before editing or deleting a widely used indicator config.