TRScene Docs
ChartsIndicators

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.

Indicator tab row with RSI selected, showing the RSI line in the panel below the candles and a settings gear on the right

ControlWhere
Panel contentsThe VOL RSI MACD ATR ADX tab row
SettingsThe gear at the right end of that row
Panel heightThe 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

RSI settings dialog on the Inputs tab: RSI Length 14, Source Close, RSI-based MA on with SMA and length 14

FieldDefaultChoices
RSI Length14Any integer from 1
SourceCloseClose, Open, High, Low, HL2, HLC3
RSI-based MAOnToggle
MA TypeSMASMA, EMA, WMA
MA Length14Any 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

RSI settings dialog on the Style tab: line colours and widths, Upper Band 70, Lower Band 30, Background at 15%

ElementDefaultNotes
RSI linePurple, 1pxWidth 1–4px
RSI-based MA lineBlue, 1pxOnly shown while the MA is on
Upper Band70, redValue and colour are editable; the toggle hides it
Lower Band30, tealSame
BackgroundPurple 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.

Edit Condition editor: Target A set to RSI with a timeframe strip and RSI Period 14, the operator reading A crosses above B, and Target B set to Custom Value 30

  1. Set Target A's type to RSI. It sits under the Oscillator group.
  2. Pick the Timeframe from the strip and set the RSI Period.
  3. Choose the operator in the middle column. It restates itself in words — A crosses above B.
  4. Set Target B (below).
  5. 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 type list open, showing Custom Value under MANUAL and RSI MA and RSI under OSCILLATOR

Target BWhat it compares againstWhat you setDefault
Custom ValueA fixed thresholdThe number, clamped to 010050 — the midpoint of the RSI range
RSI MAThe moving average drawn over RSIMA Period and timeframePeriod 14, 5m
RSIA second RSI seriesTimeframe and periodTimeframe 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:

OperatorJudgementTrue whenKind
A >= BRSI is at or above target BState
<A < BRSI is below target BState
Cross UpA > B and previous A <= BRSI came up through target B on this barEvent
Cross DownA < B and previous A >= BRSI came down through target B on this barEvent

> 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.

NodeHeadingRole
StartEntry ConditionsDecides when the scenario begins
ConditionLogic RulesGates a path mid-scenario

Start node properties: Entry Conditions with timing set to Moment, and a row reading RSI 14 (5m) breaks above 30

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.

Condition node properties: Logic Rules with a row reading RSI 14 (1h) remains above 70

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, 5m by 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 period14
Default condition timeframe5m
Candles before the first valueperiod + 1
Candles before the first crossperiod + 2
SmoothingWilder RMA, alpha = 1 / period
Source used by conditionsClose, always
Custom Value range0100

On this page