INDICATORS

Every signal, in plain words.

8 flagship indicators explained in full — plus the complete 158-indicator library and the built-in features you can rule on with zero setup.

MOMENTUM

Momentum indicators

RSI — Relative Strength Index

What it measures

How hard price has been pushed up or down lately, squeezed into a 0–100 scale.

How traders read it

Below 30 the market is stretched down (oversold); above 70 it is stretched up (overbought). Traders fade the extremes or wait for RSI to turn back through them.

In the Quantradin builder

Add indicator → RSI, set period (default 14). It appears in your rules as rsi14 — e.g. rsi14 < 30 for an oversold entry.

Honest caveat: Oversold alone isn't an edge. Our own oversold-bounce bot graded LIVE only as a full rule — signal plus liquidity gate plus a real exit — not because RSI dipped under 30.

Try it in the builder →

MACD — Moving Average Convergence Divergence

outputs: line · signal · hist

What it measures

The gap between a fast (12) and slow (26) moving average — is momentum building or fading?

How traders read it

The MACD line crossing above its 9-period signal line is the classic buy; crossing below is the classic sell. The histogram is the distance between the two.

In the Quantradin builder

Add indicator → MACD. Three outputs you can use in rules: line, signal, hist.

Honest caveat: Handle with care: we backtested our own MACD-cross bot honestly. In-sample it looked LIVE at +8.4% per trade. Out-of-sample it lost −1.2% — an optimism gap of +9.6 points. Textbook overfit. Combine MACD with other evidence; don't worship the cross.

Try it in the builder →

Stochastic Oscillator

outputs: k · d

What it measures

Where today's close sits inside the recent high-low range, 0–100.

How traders read it

Below 20 = closing near the range lows (oversold); above 80 = near the highs. The %K line crossing %D is the classic trigger.

In the Quantradin builder

Add indicator → Stochastic. Outputs: k, d.

Honest caveat: In a strong trend it pins at the extreme and stays there — "oversold" can keep falling.

Try it in the builder →

TREND

Trend indicators

EMA — Exponential Moving Average

What it measures

Average price that weights recent days more heavily, so it turns faster than a plain average.

How traders read it

Price above a rising EMA = uptrend intact; a fast EMA crossing a slow one signals a momentum shift.

In the Quantradin builder

Add indicator → EMA, set period. Appears as e.g. ema21. Use two (ema9, ema21) for crossovers.

Honest caveat: Averages lag by design — the turn shows after the move started.

Try it in the builder →

SMA — Simple Moving Average

What it measures

The plain average closing price over the period — the market's baseline.

How traders read it

The 200-day is the classic regime line: above it, dips get bought; below it, rallies get sold. 20-day = short-term drift.

In the Quantradin builder

Add indicator → SMA, set period. Note sma20 and sma200 also exist as built-in features — no setup needed.

Try it in the builder →

ADX — Average Directional Index

outputs: adx · plus_di · minus_di

What it measures

The STRENGTH of the current trend, 0–100 — not its direction.

How traders read it

Above ~25 means a real trend is on; below ~20 means chop. plus_di over minus_di says the trend points up, and vice versa.

In the Quantradin builder

Add indicator → ADX (period 14). Outputs: adx, plus_di, minus_di.

Honest caveat: ADX confirms late and whipsaws around its threshold. Use it to filter, not to trigger.

Try it in the builder →

VOLATILITY

Volatility indicators

Bollinger Bands

outputs: upper · mid · lower

What it measures

A 20-day average with bands 2 standard deviations out — a map of "normal" vs "stretched".

How traders read it

Touching the lower band = stretched down; bands pinching tight (a squeeze) often precede a bigger move.

In the Quantradin builder

Add indicator → Bollinger. Outputs: upper, mid, lower.

Honest caveat: A band touch alone is not an edge — price can ride a band for weeks in a trend. Pair it with a regime check.

Try it in the builder →

ATR — Average True Range

What it measures

How many dollars the symbol actually moves in a day, gaps included.

How traders read it

Traders size stops in ATRs (e.g. 2× ATR) so a normal wiggle doesn't stop them out. Rising ATR = market getting wilder.

In the Quantradin builder

Add indicator → ATR, set period (default 14). atr20 also exists as a built-in feature.

Honest caveat: ATR is a ruler, not a signal — it says how far, never which way.

Try it in the builder →

FULL LIBRARY

All 158 indicators

Every technical indicator the engine can compute — the same list the builder's picker offers. Hover any card (or tap, on a phone) and it opens: what the indicator is, and how it is actually calculated, both in plain words. Each shows its spec id — use it as an indicator type — and any output series.

Showing all 158 indicators

Momentum & oscillators

52 indicators
acAccelerator oscillator

A speedometer for momentum. It asks whether the push behind the price is still building or already fading — often the first hint of a turn, before the price itself turns.

How it’s calculated

Take the Awesome Oscillator (the 5-candle average of each candle's midpoint minus the 34-candle one), then subtract its own 5-candle average. What is left is how far momentum has run ahead of its recent self.

aoAwesome oscillator

A simple momentum gauge: is the recent market pushing harder than the wider market? Above zero reads as buyers in charge, below zero as sellers.

How it’s calculated

Take each candle's midpoint (high plus low, halved). Average that over the last 5 candles, average it again over the last 34, and subtract the slow from the fast.

apoAbs price oscillator

The raw gap between a fast trend line and a slow one. A positive, widening gap says the trend is accelerating; a shrinking one says it is tiring.

How it’s calculated

Take a 12-candle exponential average of the close and a 26-candle one, and subtract the slow from the fast. The answer is in dollars, not percent — which is why it is bigger on expensive stocks.

aroonAroon

A pair of 0-100 meters for how RECENTLY the market set a new high and a new low. Fresh highs with stale lows is the picture of a healthy uptrend.

How it’s calculated

Look back over the last 14 candles and find how long ago the highest high happened, and how long ago the lowest low happened. A brand-new high scores 100, one that is 14 candles old scores 0. `osc` is simply the up meter minus the down meter.

outputs: up · down · osc

bearish_engulfingBearish engulfing

A two-candle reversal pattern: after an up candle, a bigger down candle swallows it whole. It reads as sellers taking the day back and then some.

How it’s calculated

Answers 1 when the previous candle closed above its open, this candle closed below its open, and this candle's body covers the whole of the previous body (opening at or above the old close and closing at or below the old open). Otherwise 0.

biasBias

How far price has run away from its own average, as a percentage. Big positive readings mean the stock is stretched above trend; big negative ones, stretched below.

How it’s calculated

Take the 26-candle simple average of the close, subtract it from today's close, and express the difference as a percentage of that average.

bullish_engulfingBullish engulfing

A two-candle reversal pattern: after a down candle, a bigger up candle swallows it whole. It reads as buyers taking the day back and then some.

How it’s calculated

Answers 1 when the previous candle closed below its open, this candle closed above its open, and this candle's body covers the whole of the previous body (opening at or below the old close and closing at or above the old open). Otherwise 0.

cciCCI

How far today's price sits from its normal range, on a scale where roughly ±100 marks the edges of ordinary. Beyond that, the move is unusual for this stock.

How it’s calculated

Take each candle's typical price (high, low and close averaged). Compare today's to its 20-candle average, then divide by how far prices usually stray from that average over the same window, scaled so ordinary moves land inside ±100.

cfoForecast oscillator

How far price has drifted from the straight line that best fits its recent path — in percent. Large gaps often snap back.

How it’s calculated

Fit a straight line through the last 14 closing prices, read the line's value at today's candle, and express the gap between the real close and that line as a percentage of the real close.

cmoCMO

A momentum meter running from −100 to +100. It shows how one-sided the last stretch has been: all up-days pin it near +100, all down-days near −100.

How it’s calculated

Over the last 14 candles, add up the gains on up candles and the losses on down candles separately, subtract the losses from the gains, and divide by their total.

cogCenter of gravity

A smooth oscillator that swings around the price's recent balance point. It turns early, which is why traders use it to time entries inside a range.

How it’s calculated

Over the last 10 closes, weight each one by how far back it sits, add them up and divide by the plain total — the balance point of the window — then flip the sign and centre it on the middle of the window.

coppockCoppock curve

A slow, long-term momentum curve built to spot major market bottoms. It is famous for signalling when it turns up from below zero.

How it’s calculated

Take the percentage change over the last 14 candles and the change over the last 11 candles, add the two together, and smooth the result over 10 candles with an average that leans on the newest values.

crsiConnors RSI

A mean-reversion gauge that blends three views of "how stretched is this?" into one 0-100 number. Very low readings are the classic dip-buy trigger.

How it’s calculated

Average three things. First, a short 3-candle RSI of price. Second, an RSI of the up-day/down-day streak (how many candles in a row have gone the same way). Third, where today's one-candle return ranks against the last 100 candles.

demarkerDeMarker

A 0-1 overbought/oversold meter that watches the highs and lows rather than the closes. Above ~0.7 is stretched up, below ~0.3 stretched down.

How it’s calculated

Each candle, record how much higher the high pushed than the previous high, and how much lower the low pushed than the previous low. Average both over 14 candles, then divide the up part by the sum of the two.

disparityDisparity

Today's price expressed as a percentage of its own average — 100 means sitting exactly on the line, 105 means 5% above it.

How it’s calculated

Divide today's close by the 14-candle simple average of the close, and multiply by 100.

dojiDoji

A candle that opened and closed at nearly the same price — a standoff. On its own it means indecision; after a long run it often marks hesitation before a turn.

How it’s calculated

Answers 1 when the candle's body (open to close) is no more than 0.1 of its full high-to-low range. Otherwise 0.

dpoDetrended price

Price with the trend stripped out, so only the shorter cycles remain. It is used to spot the rhythm of a stock, not its direction.

How it’s calculated

Take the closing price from a little over half the window ago and subtract the 20-candle average. We use the BACKWARD-shifted form on purpose — the textbook version shifts the average forward, which would mean reading a candle that has not happened yet.

efficiency_ratioEfficiency ratio

How directly the price got to where it is. 1 means a straight, clean trend; near 0 means it wandered a lot to end up in the same place.

How it’s calculated

Take the straight-line distance from the close 10 candles ago to today's close, and divide it by the total distance actually travelled — the sum of every candle-to-candle move in that window.

elder_rayElder ray

How far buyers can push above the trend, and how far sellers can push below it. The classic read is a `bear` reading that is negative but rising during an uptrend.

How it’s calculated

Take a 13-candle exponential average of the close as the trend line. `bull` is the candle's high minus that line; `bear` is the candle's low minus it.

outputs: bull · bear

fisherFisher transform

A transform that turns gentle price waves into sharp peaks and troughs, so turning points are easier to see and easier to rule on.

How it’s calculated

Find where each candle's midpoint sits inside the highest-to-lowest range of the last 9 candles, smooth that, then push it through a mathematical stretch that exaggerates the extremes. `trigger` is the same line delayed by one candle, so a crossing marks the turn.

outputs: fisher · trigger

hammerHammer

A single candle with a long tail underneath — sellers pushed it down hard and buyers pushed it all the way back. After a fall, it reads as a possible bottom.

How it’s calculated

Answers 1 when the lower wick is at least 2 times the candle's body, the upper wick is no bigger than the body, and the candle actually had a range. Otherwise 0.

ift_rsiInverse Fisher RSI

RSI squeezed into a crisp −1 to +1 signal. It spends most of its time pinned near the extremes, which makes crossings easy to rule on.

How it’s calculated

Take the 14-candle RSI, re-centre it on 50, and push it through a squashing curve that flattens the middle and sharpens the ends.

kdjKDJ

A stochastic with a third, exaggerated line. The J line overshoots past 0 and 100, which is exactly why traders watch it for extremes.

How it’s calculated

Find where the close sits between the lowest low and highest high of the last 9 candles. Smooth that twice, each time keeping two thirds of the old value — that gives `k` and `d`. `j` is three times `k` minus two times `d`.

outputs: k · d · j

kstKnow sure thing

A long-horizon momentum curve that blends four different look-backs, so it is slow to be fooled by a single fast move.

How it’s calculated

Take the percentage change over 10, 15, 20 and 30 candles. Smooth each one, then add them with weights of 1, 2, 3 and 4 so the longest look-back counts most. Those four look-backs are fixed. `signal` is the result averaged over a further 9 candles.

outputs: line · signal

laguerre_rsiLaguerre RSI

An ultra-smooth 0-to-1 momentum gauge that barely lags. It sits pinned at the extremes during trends and swings quickly at turns.

How it’s calculated

Pass the close through a four-stage filter chain, each stage holding back a fraction 0.5 of what it received. Then compare how much the chain rose against how much it fell, and express the up part as a share of the total.

macdMACD

A momentum gauge that shows when a trend is speeding up or running out of steam. Traders watch its two lines crossing.

How it’s calculated

Take a fast average (12 candles) minus a slow average (26 candles) — that gap is the MACD line. Then smooth that gap over 9 candles to get the signal line it crosses. `hist` is the distance between the two.

outputs: line · signal · hist

momentumMomentum

How much the price has changed over a set stretch, as a fraction. Positive means it is higher than it was, negative lower.

How it’s calculated

Take today's close, subtract the close from 10 candles ago, and divide by that old close. 0.05 means up 5%.

pfePolarized frac eff

How efficiently price is travelling, with a sign attached: strongly positive means a clean move up, strongly negative a clean move down, near zero means wandering.

How it’s calculated

Compare the straight-line distance from the close 10 candles ago to today with the total zig-zag distance actually walked over those candles. Keep the sign of the net move, then smooth the result.

pgoPretty good oscillator

How far price has stretched from its average, measured in units of its own typical daily move. Around ±3 is a genuinely big stretch for any stock.

How it’s calculated

Take today's close minus its 14-candle average, then divide by a 14-candle smoothed true range.

pmoPrice momentum osc

A smoothed momentum line built to be comparable across different stocks, so you can rank a whole watchlist by it.

How it’s calculated

Take the one-candle percentage change, smooth it over 35 candles, smooth that again over 20, and scale it up. `signal` is the result smoothed over a further 10 candles.

outputs: line · signal

ppoPercentage price osc

MACD in percent instead of dollars — which means a $20 stock and a $600 stock can finally be compared on the same scale.

How it’s calculated

Take a 12-candle exponential average minus a 26-candle one, and divide by the slow average as a percentage. `signal` smooths that over 9 candles, and `hist` is the gap between them.

outputs: line · signal · hist

pslPsych line

Crowd mood as a plain percentage: what share of recent candles closed up. Above ~75 is a lot of optimism; below ~25 a lot of gloom.

How it’s calculated

Count how many of the last 12 candles closed higher than the one before, and divide by 12.

qstickQstick

Are candles mostly closing above where they opened, or below? Above zero means a run of buying sessions.

How it’s calculated

Take the close minus the open for each candle, and average that over the last 10 candles.

raviRAVI

A trend-versus-chop filter: it stays near zero while the market drifts and grows when a real trend takes hold.

How it’s calculated

Take the 7-candle average of the close and the 65-candle average, and express the gap between them as a percentage of the long one.

rmiRelative momentum

RSI measured over a multi-candle move instead of a single one. It is steadier than RSI and stays trending for longer.

How it’s calculated

Compare today's close with the close 5 candles ago instead of yesterday's. Split those changes into gains and losses, smooth both over 14 candles with a running average, and put the gains on a 0-100 scale against the total.

rocRate of change

The percentage change over a set stretch — the plainest momentum reading there is.

How it’s calculated

Take today's close, subtract the close from 12 candles ago, divide by that old close, and multiply by 100.

rocpROC percent

The same change as rate-of-change, but left as a fraction rather than a percentage (0.05 instead of 5).

How it’s calculated

Take today's close, subtract the close from 12 candles ago, and divide by that old close.

rocrROC ratio

Today's price as a multiple of what it was. 1.05 means up 5%, 0.95 means down 5%.

How it’s calculated

Divide today's close by the close from 12 candles ago.

rocr100ROC ratio ×100

The same ratio as rocr but scaled so 100 means unchanged — handy when you want one number that reads like an index.

How it’s calculated

Divide today's close by the close from 12 candles ago, and multiply by 100.

rsiRSI

A 0-100 meter for "overbought or oversold." High means the stock has been bought hard lately; low means it has been sold hard.

How it’s calculated

Look at the last 14 candles. Add up the gains on up days and the losses on down days, then compare them: mostly gains pushes the meter toward 100, mostly losses toward 0. Each new candle nudges those two running totals rather than restarting the count.

rviRelative vigor index

Is the close finishing strong inside its candle? Sustained positive readings mean buyers are closing every session near the top.

How it’s calculated

For each candle take the close minus the open, and the high minus the low, and smooth both across four candles. Add up the last 10 of each, then divide the first total by the second. `signal` smooths the line again over four candles.

outputs: line · signal

smiStochastic momentum

A stochastic that measures distance from the MIDDLE of the range rather than the bottom, so it swings around zero instead of 50. It is smoother and less twitchy.

How it’s calculated

Find the highest high and lowest low of the last 10 candles, and see how far the close sits from the midpoint between them. Smooth that twice, do the same to the range itself, and express one as a percentage of the other.

outputs: smi · signal

stcSchaff trend cycle

A 0-100 trend-cycle meter built to catch turns earlier than MACD. Crossing up through ~25 and down through ~75 are the usual triggers.

How it’s calculated

Take a MACD-style gap between a 23-candle and a 50-candle exponential average. Then run that gap through a stochastic over 10 candles — where does it sit in its own recent range — and smooth it. Then do the whole stochastic step a SECOND time on the result.

stochStochastic

A 0-100 meter for where today's close sits inside the recent trading range. 100 means it closed at the very top of it.

How it’s calculated

Find the highest high and the lowest low of the last 14 candles, and see where today's close falls between them — that is `k`. `d` is `k` averaged over the last 3 candles, and it is the slower line traders watch for crossings.

outputs: k · d

stochfFast stochastic

The raw, unsmoothed stochastic. It reacts faster than the standard one and is noisier for exactly the same reason.

How it’s calculated

Find the highest high and lowest low of the last 14 candles and see where today's close sits between them — that is `k`, with no smoothing at all. `d` is that averaged over 3 candles.

outputs: k · d

stochrsiStochastic RSI

A stochastic run on RSI rather than on price. Because RSI already ranges 0-100, this reaches its extremes far more often — it is a sensitive, fast trigger.

How it’s calculated

Compute the 14-candle RSI. Then over the last 14 candles find RSI's own highest and lowest values, and see where today's RSI sits between them. Smooth that over 3 candles for `k`, and smooth `k` again for `d`.

outputs: k · d

tiiTrend intensity

A 0-100 meter for how ONE-SIDED the market has been around its own average. High means price has been living above the line, not just poking above it.

How it’s calculated

Take the 60-candle average and record, for each candle, how far above or below it price sat. Over the most recent half of the window, add up the above-amounts and the below-amounts, and express the above part as a share of the total.

trixTRIX

A momentum line built on a heavily smoothed price, so it filters out almost all short-term noise. Zero crossings are the classic signal.

How it’s calculated

Run the close through three exponential averages of 15 candles, one after another. Then report how much that triple-smoothed line changed since the previous candle, as a percentage.

tsiTrue strength

A double-smoothed momentum gauge that keeps direction but sheds noise. Traders use its zero line and its turns rather than fixed thresholds.

How it’s calculated

Take the candle-to-candle price change, smooth it over 25 candles, then smooth it again over 13. Do the same to the SIZE of those changes (minus signs removed), and express the first as a percentage of the second.

ultimate_oscillatorUltimate oscillator

A 0-100 momentum meter that looks at three time horizons at once, so it is much harder to fool with a single sharp move than a one-window oscillator.

How it’s calculated

For each candle, measure how much of its true range the buyers actually claimed. Total that over 7, 14 and 28 candles, then blend the three with weights of 4, 2 and 1 so the shortest view counts most.

wavetrendWaveTrend

A very smooth overbought/oversold oscillator. Its two lines crossing near an extreme is one of the most-watched reversal cues on modern charts.

How it’s calculated

Take the typical price (high, low and close averaged), smooth it over 10 candles, and measure how far price sits from that smoothed line relative to its usual distance. Smooth THAT over 21 candles for `wt1`; `wt2` is `wt1` averaged over four more candles.

outputs: wt1 · wt2

willrWilliams %R

A 0 to −100 meter for where the close sits in the recent range. Near 0 means it closed at the top of it; near −100, at the bottom.

How it’s calculated

Find the highest high and the lowest low of the last 14 candles, and measure how far below that high today's close landed, as a share of the full range — reported as a negative number.

Trend, moving averages & structure

63 indicators
adxADX

A 0-100 meter for how STRONG a trend is — not which way it points. Above roughly 25 usually means a real trend is under way; low readings mean the price is drifting sideways.

How it’s calculated

Each candle, measure how much further the high pushed up versus how much further the low pushed down. Smooth both over 14 candles with a running average that keeps most of yesterday's value, compare the two, and smooth the comparison again. The `plus_di` and `minus_di` outputs are the two sides on their own.

outputs: adx · plus_di · minus_di

adxrADXR

A slower, steadier version of ADX. It reacts later but whipsaws less, which is why some traders use it as the confirmation rather than the trigger.

How it’s calculated

Take today's ADX and the ADX from 14 candles ago, and average the two.

alligatorAlligator

Three smoothed price lines drawn as a sleeping animal's jaw, teeth and lips. When they are tangled together the market is resting; when they fan apart, a trend is feeding.

How it’s calculated

Take each candle's midpoint (high and low, halved). Smooth it three times with three running averages of different speeds — 13 candles for the jaw, 8 for the teeth and 5 for the lips — each keeping most of its previous value.

outputs: jaw · teeth · lips

almaArnaud Legoux MA

A smooth trend line that still turns quickly. It is a moving average tuned to cut the usual lag without the jitter that fast averages bring.

How it’s calculated

Average the last 9 closing prices, but weight them with a bell curve whose peak sits near the recent end of the window — so the newest candles matter most, the oldest barely at all, and the change from one to the next is gentle.

bopBalance of power

Who won the candle — buyers or sellers. It reads +1 when a candle closed right at its high and −1 when it closed right at its low.

How it’s calculated

Take the close minus the open and divide by the candle's full high-to-low range. If you set a length above 1, those values are then averaged over the last 14 candles.

camarillaCamarilla pivots

A set of intraday support and resistance lines built from yesterday's candle. The inner lines are the ones traders fade; the outer ones are where they expect a breakout.

How it’s calculated

Take yesterday's high-to-low range and yesterday's close. Step out from that close by fixed fractions of the range to get the four resistance levels above (r1-r4) and the four support levels below (s1-s4); `pp` is yesterday's high, low and close averaged. Every level uses only the PREVIOUS candle, so it is known before today opens.

outputs: pp · r1 · s1 · r2 · s2 · r3 · s3 · r4 · s4

chopChoppiness index

A 0-100 meter for whether the market is trending or just chopping about. High means sideways and directionless; low means a clean, committed move.

How it’s calculated

Add up the true range of the last 14 candles — the total distance travelled — and compare it with the straight-line distance from the window's lowest low to its highest high. Lots of travel for little net progress scores high.

demaDEMA

A trend line that turns faster than a normal exponential average, with less of the lag that makes moving averages arrive late.

How it’s calculated

Take a 20-candle exponential average of the close, then take an exponential average OF that line. Double the first and subtract the second — the subtraction cancels most of the delay.

demark_pivotDeMark pivots

A support and resistance pair built from yesterday's candle, with a twist: the level shifts depending on whether yesterday closed up or down.

How it’s calculated

Take yesterday's open, high, low and close. If yesterday closed below its open, weight the low more heavily; if it closed above, weight the high more heavily; if unchanged, weight the close. From that blended number come `pp`, one resistance (r1) and one support (s1). Uses only the PREVIOUS candle.

outputs: pp · r1 · s1

donchianDonchian channel

A channel drawn straight through the recent highs and lows. Price breaking out of it is the oldest trend-following signal there is.

How it’s calculated

The upper line is the highest high of the last 20 candles, the lower line the lowest low, and `mid` is the two averaged.

outputs: upper · mid · lower

dxDirectional index

The raw, unsmoothed strength reading that ADX is built from. It reacts quicker than ADX and is noisier for the same reason.

How it’s calculated

Take the up-side and down-side directional readings over 14 candles, take the gap between them, and divide by their total — so one side dominating scores near 100 and a balanced tug-of-war scores near 0.

ehmaExp Hull MA

A Hull-style trend line built from exponential averages: fast to turn, and smooth on the way.

How it’s calculated

Take an exponential average over half of 16 candles, double it, and subtract an exponential average over the full 16. Then smooth that result again over roughly the square root of 16 candles.

emaEMA

A smoothed price line that follows the trend. Price above it usually reads as an uptrend, below as a downtrend.

How it’s calculated

Average the last 20 closing prices — but give recent days more weight than old ones, so the line reacts faster when the price turns. It starts from a plain average of the first 20 candles and then updates a little with every new close.

evwmaElastic VWMA

A trend line whose speed is set by volume: a heavy-volume candle drags it a long way, a quiet one barely moves it.

How it’s calculated

Keep a running line. On each candle, work out that candle's share of the total volume over the last 20 candles, and pull the line that fraction of the way toward the new close.

fib_pivotFibonacci pivots

Support and resistance levels spaced by Fibonacci fractions of yesterday's range — a popular alternative to the classic pivots.

How it’s calculated

Average yesterday's high, low and close to get `pp`. Then step above and below it by 38.2%, 61.8% and 100% of yesterday's high-to-low range to get r1-r3 and s1-s3. Uses only the PREVIOUS candle.

outputs: pp · r1 · s1 · r2 · s2 · r3 · s3

fwmaFibonacci WMA

A moving average whose weights follow the Fibonacci numbers — a gentler tilt toward recent prices than a straight linear weighting.

How it’s calculated

Average the last 10 closes, weighting them 1, 1, 2, 3, 5, 8 and so on, with the biggest weight on the newest candle.

gatorGator oscillator

A picture of how far apart the three Alligator lines are. When the bars shrink toward zero the trend is sleeping; when they grow, it is feeding.

How it’s calculated

Take the three smoothed midpoint averages (13, 8 and 5 candles). `upper` is the gap between the 13 and 8 lines; `lower` is the gap between the 8 and 5 lines, drawn as a negative number so it sits below the axis.

outputs: upper · lower

gmaGeometric MA

An average price that treats percentage moves fairly, so one huge spike distorts it less than it would a normal average.

How it’s calculated

Take the natural logarithm of each of the last 20 closes, average those, then undo the logarithm. That is the geometric mean.

heikin_ashiHeikin-Ashi

Redrawn candles that filter out the noise, so a trend shows as an unbroken run of same-coloured bars instead of a jumble.

How it’s calculated

Each candle's new close is the average of its own open, high, low and close. Each new open is the average of the PREVIOUS smoothed open and close. The new high and low then stretch to cover both.

outputs: open · high · low · close

hiloGann HiLo

A stop-and-reverse trend line that flips from below the price to above it when the trend changes. `direction` says which side it is on: +1 up, −1 down.

How it’s calculated

Track the 13-candle average of the highs and the 13-candle average of the lows. Closing above the average of highs switches you to up; closing below the average of lows switches you to down. The line then shows whichever average you are trading against.

outputs: line · direction

hmaHull MA

A trend line that manages to be both smooth and quick — the usual trade-off, mostly dodged.

How it’s calculated

Take a weighted average over half of 16 candles, double it, and subtract a weighted average over the full 16. Then smooth that result again over roughly the square root of 16 candles.

ichimokuIchimoku

A whole trading system in one overlay: two fast trend lines, a cloud of support and resistance ahead, and a lagging line that confirms.

How it’s calculated

`tenkan` is the midpoint of the last 9 candles' high and low, `kijun` the midpoint of the last 26, `senkou_a` those two averaged, and `senkou_b` the midpoint of the last 52. The two cloud lines and `chikou` are normally drawn shifted forward 26 candles — here we expose the value that was ALREADY KNOWN 26 candles ago, so nothing reads a candle from the future.

outputs: tenkan · kijun · senkou_a · senkou_b · chikou

kamaKaufman MA

A moving average that changes its own speed: quick when the market is trending cleanly, slow and sticky when it is chopping.

How it’s calculated

Over the last 10 candles, compare the straight-line distance travelled with the total wandering. A clean move sets the line to track price at the 2-candle speed; a messy one slows it toward the 30-candle speed. Then update the line at whatever speed that comes out to.

keltnerKeltner channel

A channel around the trend that widens with volatility. Price riding the upper band is a classic strength signal, not an overbought one.

How it’s calculated

The middle line is a 20-candle exponential average of the close. The bands sit a multiple of the 10-candle average true range above and below it.

outputs: upper · mid · lower

linreg_angleLinreg angle

The tilt of the recent price trend, stated as an angle in degrees. It makes "how steep is this?" a number you can put a rule on.

How it’s calculated

Fit a straight line through the last 14 closing prices and convert its slope into an angle.

linreg_interceptLinreg intercept

Where the best-fit line through recent prices STARTS — its value at the oldest candle in the window. Mostly used together with the slope.

How it’s calculated

Fit a straight line through the last 14 closing prices and report the value of that line at the beginning of the window.

linreg_slopeLinreg slope

How fast the trend is rising or falling — dollars per candle. Positive is up, negative is down, and the size tells you how steep.

How it’s calculated

Fit a straight line through the last 14 closing prices and report how much the line climbs per candle.

log_returnLog return

The one-candle return in logarithmic form. It treats a gain and the equal-sized loss symmetrically, which is why it is the standard input for volatility maths.

How it’s calculated

Divide today's close by yesterday's close and take the natural logarithm.

lsmaLeast-squares MA

A moving average built from a straight-line fit rather than a plain mean. It is smoother than an average of the same length and lags less.

How it’s calculated

Fit a straight line through the last 14 closing prices, and read that line's value at today's candle.

mcginleyMcGinley dynamic

A trend line that adjusts its own speed to the market, so it hugs price in fast moves instead of falling behind like a fixed-length average.

How it’s calculated

Keep a running line. Each candle, move it toward the new close by an amount divided by 14 AND by how far price has run away from the line — so the further price gets, the harder the line catches up.

medianRolling median

The middle closing price of the recent window. Unlike an average, one crazy spike barely moves it.

How it’s calculated

Take the last 20 closing prices, sort them, and pick the one in the middle.

median_priceMedian price

The midpoint of a single candle — halfway between its high and its low.

How it’s calculated

Add the candle's high and low and divide by two.

midpointMidpoint

The middle of the recent CLOSING range — halfway between the highest and lowest close.

How it’s calculated

Take the highest close and the lowest close of the last 14 candles, and average them.

midpriceMidprice

The middle of the recent FULL range — halfway between the highest high and the lowest low, wicks included.

How it’s calculated

Take the highest high and the lowest low of the last 14 candles, and average them.

minus_dm-DM

The down-side half of the directional movement that ADX is built from — how hard the lows have been pushing lower.

How it’s calculated

Each candle, measure how much further the low dropped than the previous low, and count it only when that beats the matching upward push. Then smooth those over 14 candles with a running average that keeps most of yesterday's value.

ohlc4OHLC4

A single, steady price for the candle that uses all four points — the smoothest of the price averages.

How it’s calculated

Add the open, high, low and close, and divide by four.

pivotPivot points

The classic floor-trader support and resistance levels, worked out from yesterday's candle before today opens.

How it’s calculated

Average yesterday's high, low and close to get `pp`. The first resistance is twice `pp` minus yesterday's low, the first support twice `pp` minus yesterday's high, and r2/s2/r3/s3 step further out by yesterday's range. Uses only the PREVIOUS candle.

outputs: pp · r1 · s1 · r2 · s2 · r3 · s3

plus_dm+DM

The up-side half of the directional movement that ADX is built from — how hard the highs have been pushing higher.

How it’s calculated

Each candle, measure how much further the high pushed than the previous high, and count it only when that beats the matching downward push. Then smooth those over 14 candles with a running average that keeps most of yesterday's value.

psarParabolic SAR

A dotted trailing stop that flips from below price to above it when the trend turns. It never moves against you — only in the direction of the trade.

How it’s calculated

Start the stop at the far side of the trend and step it toward price each candle. Every time a new extreme is set, the step gets bigger — starting at 0.02 and growing to at most 0.2. When price crosses the stop, the trend flips and the stop restarts from the other side.

pwmaPascal WMA

A moving average with bell-shaped weights, so the middle of the window matters most and both ends taper off gently.

How it’s calculated

Average the last 10 closes, weighting them by the numbers in Pascal's triangle (1, 4, 6, 4, 1 for a five-candle window).

rmaWilder MA (RMA)

Wilder's moving average — the slow, sticky trend line that sits underneath RSI, ATR and ADX. It smooths more than an exponential average of the same length.

How it’s calculated

Start from a plain average of the first 14 closes. Then each candle, move the line just one 14th of the way toward the new close — so it keeps most of yesterday's value.

rolling_maxRolling max

The highest value another series reached over a recent window. It is the building block for "is this at a 60-day high?" rules.

How it’s calculated

You point it at a `source` — either a base feature like `close` or an indicator you attached EARLIER in the list — and it reports the largest value that source has taken over the last 20 candles. Only past candles are ever read.

rolling_minRolling min

The lowest value another series reached over a recent window. This is the squeeze primitive: Bollinger width at its own 60-day low.

How it’s calculated

You point it at a `source` — either a base feature like `close` or an indicator you attached EARLIER in the list — and it reports the smallest value that source has taken over the last 20 candles. Only past candles are ever read.

sinwmaSine WMA

A moving average whose weights rise to a peak in the middle of the window and taper at both ends — a very smooth line.

How it’s calculated

Average the last 14 closes, weighting each one by a sine curve that peaks at the centre of the window.

smaSMA

The plain trend line — the classic "is this stock healthy?" test. Price above it is the textbook definition of an uptrend.

How it’s calculated

Add up the last 20 closing prices and divide by 20. Nothing fancy — every candle counts equally, which is why it moves slowly and steadily.

smmaSmoothed MA

The smoothed moving average — the same slow, sticky line as Wilder's RMA, under its other common name.

How it’s calculated

Start from a plain average of the first 14 closes. Then each candle, move the line just one 14th of the way toward the new close.

ssfSuper smoother

An engineer's smoother: it removes the fast noise from price while adding far less delay than an ordinary moving average.

How it’s calculated

Run the close through a two-stage filter tuned to 10 candles. Each new value blends the last two closes with the filter's own two previous outputs, which is what lets it be smooth and prompt at once.

supertrendSupertrend

A single trend line that sits below price in an uptrend and above it in a downtrend, flipping sides when the trend changes. `direction` says which: +1 up, −1 down.

How it’s calculated

Draw a band 3 times the 10-candle average true range above and below the candle midpoint. The line tracks whichever band the trend is on, ratchets in your favour, and only flips when the close breaks through it.

outputs: line · direction

swmaSymmetric WMA

A gentle four-candle smoother. It takes the edge off noisy data without meaningfully delaying it.

How it’s calculated

Average the last four closes with weights of 1, 2, 2 and 1 — the two middle candles count double.

t3T3 MA

A very smooth trend line that still tracks price closely. It is the answer to "I want an average with no lag and no jitter."

How it’s calculated

Run the close through six exponential averages of 5 candles in a chain, then recombine those six with fixed weights so most of the delay cancels out and only the smoothing survives.

temaTEMA

An even quicker version of the double exponential average — about as responsive as a smoothed line gets before it starts chasing noise.

How it’s calculated

Take an exponential average of the close, then one of that, then one of that again. Combine the three so the lag from each layer largely cancels: three times the first, minus three times the second, plus the third.

trimaTriangular MA

An average of an average — extra smooth, and slower to react. Good for reading the underlying direction through noisy data.

How it’s calculated

Take a simple average of the close over roughly half of 20 candles, then take a simple average OF that line over the other half.

tsfTime-series forecast

Where the recent trend line says the next candle should land — a one-step-ahead projection, not a prediction of the market.

How it’s calculated

Fit a straight line through the last 14 closing prices and extend it one candle past the end of the window.

typical_priceTypical price

One representative price for the candle. Several indicators — CCI, money flow, VWAP — are built on it rather than on the close.

How it’s calculated

Add the high, the low and the close, and divide by three.

vhfVertical horiz filter

A trend-versus-range filter. Rising values mean a trend is developing; falling values mean the market is going nowhere in particular.

How it’s calculated

Take the distance from the highest close to the lowest close of the last 28 candles, and divide it by the total of every candle-to-candle move in that window. Straight-line progress scores high; zig-zagging scores low.

vidyaVIDYA

An exponential average with an automatic gearbox: it speeds up when momentum is strong and coasts when the market is quiet.

How it’s calculated

Work out the Chande momentum reading over 14 candles — how one-sided the recent candles have been — and use its size to scale how quickly the average moves toward each new close.

vortexVortex

Two lines that cross when a trend changes hands. `plus` rising above `minus` is the classic start-of-uptrend signal.

How it’s calculated

For each candle, measure the distance from today's high to yesterday's low (the up force) and from today's low to yesterday's high (the down force). Add each up over 14 candles, and divide by the total true range in the same window.

outputs: plus · minus

vwmaVolume-weighted MA

A moving average that lets heavy-volume candles speak louder. It sits closer to the prices at which real size actually traded.

How it’s calculated

Over the last 20 candles, multiply each close by its volume, add those up, and divide by the total volume of the window.

weighted_closeWeighted close

A single price for the candle that leans toward where it finished, since the close is usually the most meaningful point of the session.

How it’s calculated

Add the high, the low and twice the close, and divide by four.

wmaWMA

A moving average that gives newer candles a bigger say in a straight line — heavier than a simple average, lighter than an exponential one.

How it’s calculated

Average the last 20 closes with weights that count up 1, 2, 3 and so on, so the newest candle carries the biggest weight and the oldest the smallest.

woodieWoodie pivots

A pivot variant that leans on yesterday's CLOSE more than the classic set does — which shifts the levels when yesterday closed near an extreme.

How it’s calculated

Take yesterday's high, low and DOUBLE the close, and divide by four to get `pp`. The first resistance is twice `pp` minus yesterday's low, the first support twice `pp` minus yesterday's high, and r2/s2 step out by yesterday's range. Uses only the PREVIOUS candle.

outputs: pp · r1 · s1 · r2 · s2

zlemaZero-lag EMA

An exponential average with the delay largely engineered out — it turns roughly when price does rather than a few candles later.

How it’s calculated

Before averaging, add today's close minus the close from about half of 20 candles ago back onto the price. That pre-payment of recent momentum cancels most of the lag. Then take the ordinary 20-candle exponential average of the adjusted series.

zlsmaZero-lag LSMA

A regression moving average with its remaining lag removed. About as close to a smooth, real-time trend line as this family gets.

How it’s calculated

Fit a straight line through the last 14 closes and read today's value. Do the same thing again to THAT line, then double the first and subtract the second — the subtraction cancels the leftover delay.

Volatility, dispersion & candles

26 indicators
accbandsAcceleration bands

A price envelope that breathes with the market. It sits around the average price and stretches wider when candles get tall, so a break outside it means a genuinely unusual push.

How it’s calculated

Take the 20-candle average price for the middle line. For each candle, work out how tall it was compared with its own price level, multiply that by 4, and push the high and low out by that much — then average those pushed values over 20 candles for the two bands.

outputs: upper · mid · lower

atrATR

How much the stock typically moves in one candle — its temperament. Traders use it to size stops so a normal wiggle does not knock them out.

How it’s calculated

For each candle, measure the full stretch it covered, counting any gap from the previous close. Then average those stretches over 14 candles with a running average that keeps most of yesterday's value.

bbwidthBollinger width

How wide the Bollinger Bands are right now. Very narrow means the market has gone quiet — the classic setup traders call a squeeze, often followed by a sharp move.

How it’s calculated

Build the Bollinger Bands over 20 candles at 2 standard deviations, take the distance between the top and bottom band, and divide it by the middle line so the number can be compared across prices.

bodyCandle body

The size of the candle's solid block — the distance from open to close. A big body means one side won the session decisively.

How it’s calculated

Take the close minus the open, and drop the minus sign. Wicks are not counted.

bollingerBollinger

A price channel that hugs the stock. Touching the top band means unusually expensive versus its own recent self; the bottom band, unusually cheap.

How it’s calculated

Draw the 20-candle average closing price for the middle line. Then measure how jumpy those 20 closes were around that average, and draw the bands 2 of those jumps above and below. Calm stock, tight bands; wild stock, wide bands. `width` is the gap between them and `pct` is where today's price sits inside it (0 at the bottom band, 1 at the top).

outputs: upper · mid · lower · width · pct

chaikin_volChaikin volatility

How fast the market's daily range is expanding or shrinking, in percent. Rising values mean candles are getting taller — volatility is waking up.

How it’s calculated

Take each candle's high minus its low, smooth it with a 10-candle exponential average, and compare today's smoothed value with the one from 10 candles ago as a percentage change.

chandelierChandelier exit

A trailing stop that hangs from the recent extreme, a set distance away. It rises with a winning trade and never falls, so it locks in ground without crowding normal noise.

How it’s calculated

For the long version, take the highest high of the last 22 candles and drop down by 3 times the 22-candle average true range. For the short version, take the lowest low and add the same distance.

outputs: long · short

clvClose location value

Where the close landed inside the candle. +1 means it closed right at the high, −1 right at the low, 0 in the middle.

How it’s calculated

Take how far the close is above the low, subtract how far it is below the high, and divide by the candle's full range. A candle with no range at all scores 0.

cvCoeff of variation

Volatility measured relative to price level, so a $10 stock and a $500 stock can be compared fairly.

How it’s calculated

Take the standard deviation of the last 20 closes, divide it by the average of those same closes, and express it as a percentage.

drawdownDrawdown

How far below its recent peak the stock is trading, in percent. Zero means it is making new highs right now.

How it’s calculated

Find the highest close of the last 20 candles and express today's close as a percentage below it.

hvHistorical vol

How volatile the stock has been, stated the way options traders state it: an annual percentage. 40 means roughly a 40% swing a year at this pace.

How it’s calculated

Take the day-to-day logarithmic returns, measure how spread out the last 20 of them were, then scale that up to a year (multiplying by the square root of 252 trading days) and turn it into a percentage.

kurtosisKurtosis

How prone the stock has been to sudden jumps. High readings mean fat tails — the quiet stretches are quieter and the shocks are bigger.

How it’s calculated

Over the last 20 closes, measure how far each sits from the window's average, raise those distances to the fourth power, average them, and scale against the variance. Then subtract 3 so a normal, well-behaved distribution reads 0.

lower_shadowLower shadow

The wick hanging below the candle's body — how far sellers pushed before buyers took it back.

How it’s calculated

Take the lower of the open and the close, and subtract the candle's low.

madMean abs deviation

The typical distance between price and its own average — a plain-spoken volatility measure that one outlier cannot blow up.

How it’s calculated

Over the last 20 closes, take how far each one sits from the window's average, drop the minus signs, and average those distances.

mass_indexMass index

A reversal warning that watches the SHAPE of the range rather than direction. A bulge above ~27 followed by a drop is the classic signal.

How it’s calculated

Take each candle's high minus low, smooth it over 9 candles, smooth that again, and divide the first by the second. Then add up the last 25 of those ratios.

natrNormalized ATR

The average true range stated as a percentage of price, so a $20 stock and a $600 stock can be compared on equal terms.

How it’s calculated

Take the 14-candle average true range and divide it by today's close, as a percentage.

pctrankPercent rank

Where today's value sits against its own recent history, as a 0-100 percentile. 95 means it is higher than 95% of the window.

How it’s calculated

Look at the last 20 closes and count what share of them are below today's. Multiply by 100.

rangeHigh-low range

How tall the candle was, top to bottom. The simplest volatility reading there is.

How it’s calculated

Take the candle's high and subtract its low. Gaps from the previous close are NOT counted — that is what true range is for.

skewSkewness

Whether recent prices lean up or down around their own average. Negative means the surprises have mostly been to the downside.

How it’s calculated

Over the last 20 closes, measure how far each sits from the window's average, cube those distances (so direction survives), average them, and scale against the spread.

starcSTARC bands

A price channel built on a short average with volatility-scaled edges — traditionally used to judge whether a breakout is worth chasing.

How it’s calculated

The middle line is a 5-candle simple average of the close. The bands sit two times the 15-candle average true range above and below it.

outputs: upper · mid · lower

stddevStd deviation

How spread out prices have been — the raw, unscaled volatility number that Bollinger Bands are built from.

How it’s calculated

Take the last 20 closes, work out how far each is from their average, square those distances, average them, and take the square root.

true_rangeTrue range

How far the stock actually travelled in one candle, counting any overnight gap. It is the raw ingredient behind ATR.

How it’s calculated

Take the biggest of three distances: high minus low, high minus the previous close, and the previous close minus the low.

ulcerUlcer index

A volatility measure that only counts the PAIN — how deep drawdowns went and how long they lasted. Upside volatility does not register.

How it’s calculated

For each of the last 14 candles, work out how far below the window's running peak the close was, as a percentage. Square those, average them, and take the square root — so a long, deep slump scores far worse than a brief dip.

upper_shadowUpper shadow

The wick sticking up above the candle's body — how far buyers pushed before sellers took it back.

How it’s calculated

Take the candle's high and subtract the higher of its open and close.

varianceVariance

The spread of recent prices before the square root is taken — standard deviation's rawer twin, used where the squared scale is wanted.

How it’s calculated

Take the last 20 closes, work out how far each is from their average, square those distances, and average them.

zscoreZ-score

How unusual today's price is, in standard deviations from its own recent average. Beyond ±2 is genuinely rare territory for that stock.

How it’s calculated

Take today's close minus the 20-candle average, and divide by how spread out those 20 closes were.

Volume & money flow

17 indicators
adlAccum/dist line

A running tally of buying versus selling pressure. When it climbs while the price does not, money is quietly flowing in; when it falls, it is flowing out.

How it’s calculated

For every candle, look at where the close landed inside the high-to-low range: near the top scores close to +1, near the bottom close to −1, dead centre 0. Multiply that score by the candle's volume, and keep a running total from the very first candle onward.

chaikin_oscChaikin oscillator

A momentum reading on money flow rather than price. It turns up when buying pressure is building, sometimes before the price responds.

How it’s calculated

Build the accumulation/distribution line (a running tally of where each close landed in its range, weighted by volume), then subtract a 10-candle exponential average of that line from a 3-candle one.

cmfChaikin money flow

Whether money has been flowing in or out over recent weeks. Above zero reads as accumulation, below zero as distribution.

How it’s calculated

For each candle, score where the close sat in its range (+1 at the high, −1 at the low) and multiply by that candle's volume. Add those up over 20 candles and divide by the total volume traded in the same window.

emvEase of movement

How easily price moved for the volume it took. Big moves on light volume score high — the market gave way without a fight.

How it’s calculated

For each candle, take how far the midpoint shifted from the previous candle, multiply by the candle's height, and divide by its volume. Then average those over 14 candles.

fiForce index

The power behind a move — direction, size and volume in one number. Big positive spikes mean buyers arrived in force.

How it’s calculated

Take today's close minus yesterday's close, multiply by today's volume, and smooth the result with a 13-candle exponential average.

kvoKlinger volume osc

A long-term money-flow oscillator. It tries to separate the volume that is actually driving the trend from the volume that is just noise.

How it’s calculated

For each candle, decide whether the trend is up or down from the high-low-close total, build a running measure of the trend's cumulative range, and turn the candle's volume into a signed force from those. Then subtract a 55-candle exponential average of that force from a 34-candle one. `signal` averages the result over a further 13 candles.

outputs: line · signal

mfiMoney flow index

RSI with volume folded in — a 0-100 meter for money flowing in versus out. Above ~80 is stretched, below ~20 is washed out.

How it’s calculated

For each candle, multiply the typical price (high, low and close averaged) by volume. Call it money in if the typical price rose, money out if it fell. Over 14 candles, compare the two totals on a 0-100 scale.

nviNegative volume index

A line that only moves on QUIETER days — the days the old textbooks credit to well-informed money rather than the crowd.

How it’s calculated

Start at 1000. On any candle whose volume was LOWER than the previous candle's, move the line by that candle's percentage price change. On busier candles, leave it alone.

obvOn-balance volume

A running tally of volume with a sign attached. Rising while price is flat says buyers are quietly accumulating.

How it’s calculated

Start at zero. Add the whole candle's volume when it closes higher than the previous close, subtract it when it closes lower, and leave it alone when the close is unchanged.

pviPositive volume index

A line that only moves on BUSIER days — the days traditionally credited to the crowd rather than to well-informed money.

How it’s calculated

Start at 1000. On any candle whose volume was HIGHER than the previous candle's, move the line by that candle's percentage price change. On quieter candles, leave it alone.

pvoPercentage volume osc

MACD applied to VOLUME instead of price. It shows when trading activity is picking up or dying off, independent of direction.

How it’s calculated

Take a 12-candle exponential average of volume minus a 26-candle one, and divide by the slow average as a percentage. `signal` smooths that over 9 candles, and `hist` is the gap between them.

outputs: line · signal · hist

pvtPrice-volume trend

Like on-balance volume, but it counts the SIZE of each move rather than just its direction — so a 5% day counts far more than a 0.1% one.

How it’s calculated

Start at zero. Each candle, multiply its volume by that candle's percentage price change, and add the result to the running total.

volume_ratioVolume ratio

Today's volume compared with normal. 3 means three times the usual trade — the standard way to say "something is happening here."

How it’s calculated

Take today's volume and divide it by the average volume of the 14 candles BEFORE it. Today is deliberately left out of that average, so a huge day cannot flatter its own reading.

vrocVolume ROC

How much trading activity has changed, in percent. Big positive readings mean a volume spike relative to a set number of candles ago.

How it’s calculated

Take today's volume, subtract the volume from 14 candles ago, divide by that old volume, and multiply by 100.

vwapVWAP

A volume-weighted fair price: the average price actually paid, with busy candles counting for more than quiet ones.

How it’s calculated

Over the last 14 candles, multiply each candle's typical price (high, low and close averaged) by its volume, add those up, and divide by the total volume. NOTE, honestly: on daily bars there is no intraday session to anchor to, so this is a ROLLING volume-weighted average — not the classic session VWAP that resets each morning.

vzoVolume zone osc

Is volume flowing with the up candles or the down candles? Positive readings mean the busy days have been the green ones.

How it’s calculated

Give each candle's volume a plus sign if the close rose and a minus sign if it fell. Smooth those signed volumes over 14 candles, smooth the plain volumes the same way, and express the first as a percentage of the second.

williams_adWilliams A/D

A running accumulation line that measures the ground buyers actually gained or gave up each candle. It is a different recipe from the Chaikin A/D line.

How it’s calculated

On a candle that closed higher, add the close minus the lower of today's low and yesterday's close. On one that closed lower, add the close minus the higher of today's high and yesterday's close. Unchanged closes add nothing. Keep a running total.

BUILT-IN FEATURES

Built-in features

No indicator setup required — these read straight off the bar (or the 10:35 snapshot) and are ready to use in any rule.

Price & volume

closeThe day's closing price — the anchor most rules compare against.
openThe day's opening price.
highThe day's highest trade.
lowThe day's lowest trade.
volumeShares traded that day — the liquidity gate reads this.
volavgThe 20-day average share volume — compare today's volume against it to spot an unusual-volume day.

Returns & gaps

retToday's close vs yesterday's, as a fraction (0.02 = +2%).
ret3The 3-day return.
run5The 5-day return — how far the last week has run.
ret20The 20-day (≈1 month) return.
gapToday's open vs yesterday's close — the overnight gap.

Trend & range

sma20The 20-day average close, precomputed.
sma50The 50-day average close — the medium-term trend line, precomputed.
sma200The 200-day average close — the classic regime line.
hi60The highest close of the last 60 days; compare close against it for breakouts.
hi252The highest close of the last year (252 trading days).
regime_trendA point-in-time trend label (backward-looking only) — is the market above or below its long averages? Filter entries to the regime you want.
regime_volA point-in-time volatility label (calm vs stormy), computed from trailing data only. Gate a strategy to the vol regime it was built for.

Volatility

atr20The 20-day average true range in dollars.
rvpctWhere today's realized volatility ranks inside the last year (0–1 percentile).

10:35 session

gap1035The overnight gap as of the 10:35 ET snapshot.
chg1035The move from today's open to 10:35 ET.
spy1035SPY's own move to 10:35 ET — the market's morning mood.
above_first30_high1 when price at 10:35 is above the first-half-hour high — a morning breakout flag.
below_first30_low1 when price at 10:35 is below the first-half-hour low — a morning breakdown flag.

Calendar

dowDay of the week as a number: 0=Monday, 1=Tuesday, 2=Wednesday, 3=Thursday, 4=Friday. Gate a strategy to a weekday, e.g. dow ≤ 0 for Mondays only.
is_friday1 on Fridays, 0 otherwise — a one-click Friday gate (e.g. for a Friday→Monday hold).
is_monday1 on Mondays, 0 otherwise — a one-click Monday gate.

Seen one you like? Build with it — the first backtest is free.

Run a free backtest