RSI
Read the RSI panel, and use the same value as a condition in a Start or Condition node.
RSI in TRScene is not only something you look at. The value drawn in the panel is the value the scenario engine compares against when it decides whether to enter a trade — the same number, from the same code.
Two things follow from that, and they are what this page is about: the number agrees with the RSI on your exchange's chart, and you can point a node at it.
Find it on the chart
RSI lives in its own panel below the candles, not on top of them. The row of tabs under the main chart switches which indicator that panel shows.

| Control | Where |
|---|---|
| Panel contents | The VOL RSI MACD ATR ADX tab row |
| Settings | The gear at the right end of that row |
| Panel height | The Chart / Balanced / Editor buttons above the chart |
In Balanced the panel is deliberately short — enough to read the shape and the current
value badge. Switch to Chart when you want room to inspect the curve itself.
The line does not start at the left edge of the chart. RSI needs period + 1 candles before
it produces a value, so with the default period of 14 the first 14 bars stay empty.
Settings
Inputs

| Field | Default | Choices |
|---|---|---|
| RSI Length | 14 | Any integer from 1 |
| Source | Close | Close, Open, High, Low, HL2, HLC3 |
| RSI-based MA | On | Toggle |
| MA Type | SMA | SMA, EMA, WMA |
| MA Length | 14 | Any integer from 1 |
The RSI-based MA is a moving average of the RSI line, drawn in the same panel. It smooths the oscillator so a crossover between the two is easier to see than a crossover of RSI alone.
Style

| Element | Default | Notes |
|---|---|---|
| RSI line | Purple, 1px | Width 1–4px |
| RSI-based MA line | Blue, 1px | Only shown while the MA is on |
| Upper Band | 70, red | Value and colour are editable; the toggle hides it |
| Lower Band | 30, teal | Same |
| Background | Purple at 15% | Fills between the bands; slider sets opacity |
Each band has its own switch, so you can keep a level on the chart without the fill, or drop the levels entirely and read the raw line.
Why the number matches your exchange
RSI has more than one accepted smoothing. TRScene pins it to Wilder's original — an RMA with
alpha = 1 / period — because that is what exchange charts and TradingView use. The
indicator library's own default is a faster EMA, which drifts away from those charts, so it
is overridden explicitly rather than accepted.
The calculation runs in Rust, and the chart and the scenario runner call the same function. There is no second implementation for display, which is why the panel and the engine cannot disagree.
Use it in a scenario
A comparison indicator reaches a scenario through a condition row: target A, an operator, and target B. RSI is one target type among several, and the row behaves the same wherever it appears.
Open the condition editor
The properties panel shows a condition as one compact row. Click that row and the editor opens, with both targets laid out side by side and the operator between them. This is where the condition is actually built.

- Set Target A's type to
RSI. It sits under theOscillatorgroup. - Pick the Timeframe from the strip and set the RSI Period.
- Choose the operator in the middle column. It restates itself in words — A crosses above B.
- Set Target B (below).
- Apply writes the condition back to the node.
The timeframe you pick here belongs to the condition, not to the chart. A 5m target keeps
reading 5-minute RSI while you look at a 1-hour chart.
What RSI can be compared against
Open Target B's type list and you get exactly three choices — the editor only offers what the comparison supports.

| Target B | What it compares against | What you set | Default |
|---|---|---|---|
| Custom Value | A fixed threshold | The number, clamped to 0–100 | 50 — the midpoint of the RSI range |
| RSI MA | The moving average drawn over RSI | MA Period and timeframe | Period 14, 5m |
| RSI | A second RSI series | Timeframe and period | Timeframe shifted off target A's |
Picking RSI as target B against an RSI target A would compare a series with itself, so the editor moves target B to the next timeframe automatically. You can change it afterwards, but it will not let both sides stay identical — such a condition can never be anything but equal.
RSI MA hides its RSI period. The field you see is the MA period; the RSI underneath is
fixed at 14. Comparing an RSI(7) target A against RSI MA therefore measures it against the
moving average of RSI(14), not of your own series.
Operators
Four, and no more:
| Operator | Judgement | True when | Kind |
|---|---|---|---|
≥ | A >= B | RSI is at or above target B | State |
< | A < B | RSI is below target B | State |
| Cross Up | A > B and previous A <= B | RSI came up through target B on this bar | Event |
| Cross Down | A < B and previous A >= B | RSI came down through target B on this bar | Event |
> and == are absent on purpose. An oscillator can pass through an exact value between two
candle updates, so a condition that depends on landing on it — or on being strictly past it at
the moment of evaluation — can miss a move it should have caught.
The distinction that matters when you wire a node is state versus event. A state operator holds true for as long as the comparison holds, so the branch it guards keeps passing. An event operator is true only on the update where the crossing happened, and false again on the next one.
The two cross operators need the previous bar, which the engine gets by recomputing RSI with
the newest candle dropped. A fresh chart with too little history therefore has no cross to
detect until it has period + 2 candles.
Where the list lives
Two nodes expose the condition row, under different headings.
| Node | Heading | Role |
|---|---|---|
| Start | Entry Conditions | Decides when the scenario begins |
| Condition | Logic Rules | Gates a path mid-scenario |

Under each row the panel restates the condition in plain language — RSI 14 (5m) breaks above 30. Read that line before you run anything; it is the fastest way to catch a condition that says something other than what you meant.
The Timing block on the Start node applies to the group, not to RSI: Moment requires
every condition to be true on the same candle update, while Window allows them to become
true within a period of each other.

The branching example reads RSI 14 (1h) remains above 70 — a state operator on a 1-hour series, chosen independently of the 5-minute target in the Start node above.
Chart settings are not condition settings
The two live apart. Changing one does not change the other.
A condition always reads the close. The condition builder does not expose the Source
field, so setting the chart's RSI to HL2 changes what you see and nothing about what the
engine evaluates.
- Timeframes are independent. A condition carries its own timeframe,
5mby default. You can watch a 1-minute chart while a scenario runs on 1-hour RSI. - Identical series cannot be compared. Point RSI at another RSI with the same timeframe and period and the operator list comes back empty — the comparison would be a tautology. Change the timeframe or the period and it is allowed.
- A condition needs both a period and a timeframe to pass validation. A scenario missing either will not start.
Reference
| Default period | 14 |
| Default condition timeframe | 5m |
| Candles before the first value | period + 1 |
| Candles before the first cross | period + 2 |
| Smoothing | Wilder RMA, alpha = 1 / period |
| Source used by conditions | Close, always |
| Custom Value range | 0–100 |