Rate of Change Node

The Rate of Change node measures how far a series has moved over a set number of bars, in percent or in the series' own units. Momentum filters, slopes, and why percent misbehaves near zero.

NodeBy AlgoLiftUpdated 3 min read
On this page 6How it worksExample: buy dips only in a real up-moveSettingsUse something else whenWhen it doesn't behaveGoing further

Momentum is change over time, and the Rate of Change node measures exactly that: how far a series has moved over the last N bars. Ask for percent and NVDA's climb compares directly with AAPL's. Ask for the absolute change and an ES move reads in points, the unit you already think in.

Takes
One series: an indicator, a price, a level, price action, a memory or another modifier
Gives
The change over N bars, in percent or in the input's own units
Reach for it
A rule needs momentum, or the slope of a line, as a number

How it works

On each bar it compares the value on the bar your rules are reading (the last completed one) with the value N bars before it.

TypeGivesReach for it when
Percent(now − then) ÷ then × 100Comparing moves across instruments or price levels
Absolutenow − thenYou think in points, or the series can be zero or negative

With Current Price as the input, this is the classic Rate of Change indicator. A modifier reads Current Price as the close of each completed bar, so ROC over 10 bars is the change from the close 10 bars back to the latest close. There's no separate ROC indicator in the library; this node is it.

On an indicator, the Absolute type is a slope. ROC Absolute of the 50 EMA over 5 bars is how many points the average climbed in those five bars, which you can hold to a minimum. The input can be anything the engine builds as a series before the first bar: an indicator, Current Price, a price-action output, an external data source, a level (Price History, Pivot Levels, Event Day or Bands), a Distance in standard deviations, a Since or Capture, a Crossover on the Bar close clock, or another modifier. A Math node, a Constant or a State Machine won't connect.

Example: buy dips only in a real up-move

You buy dips in NVDA on 15-minute bars, and the dips that fail tend to come when the stock has been drifting rather than trending. You want proof of momentum first.

Wire Current Price into a Rate of Change with Period 20 and Type Percent. Compare it Greater Than a Constant of 2 in a Comparison. That's true when the latest close is at least 2% above the close 20 bars earlier. AND it with your dip signal through a Logic node into the Entry.

The same filter on ES would use Type Absolute and a threshold in points ("up at least 20 points over the period"), because that's how futures traders size a move.

Settings

Period
Default 10
How many bars back the change is measured from, 1 to 999.
Type
Default Percent
Percent, or Absolute for the change in the input's own units.

Use something else when

Only whether it's higher, not by how much
A Comparison against a Bars Ago reads more plainly when the size of the move doesn't matter.
The move from a level, measured on the live price
Distance measures from any reference you wire in, on the live price, in points, ticks, percent or ATRs.
Whether this much momentum is unusual
Rank the ROC against its own history, and "strong" stops depending on which month you're in.

When it doesn't behave

Percent ROC of MACD jumps to enormous numbers

Percent divides by the old value. MACD, a z-score, a histogram or anything else that crosses zero will sometimes divide by a number very close to it, and when the old value is negative the sign flips too: a move from -2 up to -1 reads as -50%. Use Absolute for any series that can be zero or negative.

It doesn't react until the bar closes

ROC over Current Price compares completed closes, so the forming bar never moves it. If you need the move as it happens, use a Distance in percent with Current Price as the value and, as the reference, a one-bar Price History reading the close, with Skip set to reach as far back as you want.

Going further

ROC chains nicely. A Moving Average Modifier over a ROC gives smoothed momentum that doesn't flip on one bar. ROC of a ROC is acceleration: momentum that's still building versus momentum that's fading, even while it's positive.

The period is the knob you'll be tempted to sweep. Different periods measure different things (an hour of momentum on 5-minute bars is a different idea from a week of it), so decide the horizon your idea is about, then test a few widely spaced values around it rather than every one in between.

Or ask the copilot