Ora
All documentation Overview

Get started

IntroductionQuickstartHow ora-fin1 decidesHow to build with OraUse-case map

Rule language

OverviewGrammarOperators and beliefsPrices and offsetsWindowsIndicatorsSignals and eventsPattern functionsFunction referenceRule libraryCommon mistakesError messagesEarnings and dividend facts

Questions & answers

Questionsyes_no (noul)choicescoreConfidenceThresholds and calibrationStateAsk by symbol

Patterns

Patterns

Actions & workflows

OverviewRules and templatesDestinationsWebhooks and signaturesWorkflows

API reference

POST /v1/systemoneGET /v1/models

Errors & limits

ErrorsRate limitsKnown limitations

Pricing

Pricing

Resources

FAQChangelogModels & versionsCode in 8 languages

Docs / Rule language

Rule language

Function reference

Every price, function and pattern the rule language accepts on Ora (81 entries), each with its signature, what it means, an example rule and that rule's real belief on SPY, NVDA, TSLA, XLE for the session of 2026-10-30.

Belief colours: 0.6 and up between 0.4 and under. Try it opens the example on SPY in the Playground.

Prices

O H L C V

Open, high, low, close and volume of the bar being evaluated: the latest completed daily session. Prices are split- and dividend-adjusted.

ExampleC > OA green day. Every rule is about the latest bar unless you look back with an offset.
Belief, 2026-10-30SPY 0.0736NVDA 0.1024TSLA 0.8513XLE 0.801Try it
C[-n] H[-n] L[-n] O[-n] V[-n]

The same value n bars back. C[-1] is yesterday's close, H[-2] the high two sessions ago. Offsets work on the five price letters only; for anything else use ref().

ExampleC > C[-5]Higher than a week (five sessions) ago. A positive offset such as C[1] looks forward: there is no next bar, so it reads as "not known" (0.50).
Belief, 2026-10-30SPY 0.2586NVDA 0.2069TSLA 0.9265XLE 0.7066Try it
hl2()

The middle of the bar: (H + L) / 2.

ExampleC > hl2()Closed in the upper half of the day's range.
Belief, 2026-10-30SPY 0.4149NVDA 0.3742TSLA 0.8711XLE 0.8314Try it
hlc3()

The typical price: (H + L + C) / 3.

Examplehlc3() > sma(hlc3(), 20)Typical price above its own 20-day average.
Belief, 2026-10-30SPY 0.0824NVDA 0.0713TSLA 0.907XLE 0.9091Try it
ohlc4()

The average of the four prices: (O + H + L + C) / 4.

Exampleohlc4() > sma(C, 10)The day's average price is above the 10-day average close.
Belief, 2026-10-30SPY 0.0939NVDA 0.1115TSLA 0.8412XLE 0.8436Try it
tr()

True range: the bar's high minus low, extended to include a gap from the previous close.

Exampletr() > 1.5 * ref(atr(14), -1)Today's true range is half again yesterday's ATR: a wide day.
Belief, 2026-10-30SPY 0.943NVDA 0.8962TSLA 0.2396XLE 0.1049Try it

Windows

sma(x, n)

Simple moving average of the last n bars, including the current one.

ExampleC > sma(C, 50)Above the 50-day average.
Belief, 2026-10-30SPY 0.1128NVDA 0.0746TSLA 0.8961XLE 0.9432Try it
avg(x, n)

Another name for sma(). Same result.

ExampleV > avg(V, 20)Volume above its 20-day average.
Belief, 2026-10-30SPY 0.9463NVDA 0.9241TSLA 0.7475XLE 0.4991Try it
mean(x, n)

A third name for sma().

ExampleC > mean(C, 100)Above the 100-day average.
Belief, 2026-10-30SPY 0.3575NVDA 0.1141TSLA 0.9032XLE 0.9463Try it
sum(x, n)

Rolling sum of the last n bars. Summing a comparison counts the bars where it held.

Examplesum(C > C[-1], 10) >= 6Up on at least six of the last ten sessions.
Belief, 2026-10-30SPY 0.5NVDA 0.1194TSLA 0.1318XLE 0.8416Try it
min(x, n)

Lowest value of the last n bars, INCLUDING the current one.

ExampleC < 1.02 * min(L, 20)Closed within 2% of the 20-day low. (L <= min(L, 20) would be a poor rule: min includes today, so the two sides are at best equal, and a tie answers 0.50.)
Belief, 2026-10-30SPY 0.8006NVDA 0.5206TSLA 0.0537XLE 0.0545Try it
max(x, n)

Highest value of the last n bars, INCLUDING the current one. So C > max(C, n) can never be true.

ExampleC >= 0.98 * max(H, 20)Closed within 2% of the 20-day high.
Belief, 2026-10-30SPY 0.0814NVDA 0.0537TSLA 0.4008XLE 0.8483Try it
highest(x, n)

Highest value of the n bars BEFORE the current one. This is the breakout form.

ExampleC > highest(C, 20)Closed above every close of the previous 20 sessions.
Belief, 2026-10-30SPY 0.0537NVDA 0.0537TSLA 0.2882XLE 0.6462Try it
lowest(x, n)

Lowest value of the n bars before the current one.

ExampleC < lowest(C, 20)Closed below every close of the previous 20 sessions.
Belief, 2026-10-30SPY 0.6662NVDA 0.774TSLA 0.0537XLE 0.0537Try it
std(x, n)

Standard deviation over the window (population form, like most charting tools).

Examplestd(C, 10) < 0.5 * std(C, 50)Recent swings are less than half their longer-run size: compression.
Belief, 2026-10-30SPY 0.2067NVDA 0.3837TSLA 0.1204XLE 0.8148Try it
zscore(x, n)

How many standard deviations the current value sits from its window mean. A flat window scores 0.

Examplezscore(C, 20) < -2More than two deviations under the 20-day mean.
Belief, 2026-10-30SPY 0.6611NVDA 0.3733TSLA 0.0537XLE 0.0542Try it
median(x, n)

Middle value of the window. Less pulled by one wild day than an average.

ExampleV > 2 * median(V, 20)Volume more than twice its typical (median) day.
Belief, 2026-10-30SPY 0.7909NVDA 0.2837TSLA 0.0586XLE 0.0537Try it
percentrank(x, n)

Where the current value ranks among the n − 1 bars before it, 0 to 100.

Examplepercentrank(V, 50) > 90Volume in the top tenth of the last 50 sessions.
Belief, 2026-10-30SPY 0.6791NVDA 0.5398TSLA 0.219XLE 0.1283Try it
wma(x, n)

Linearly weighted moving average: recent bars count more.

Examplewma(C, 10) > wma(C, 30)Fast weighted average above the slow one.
Belief, 2026-10-30SPY 0.2218NVDA 0.0919TSLA 0.9256XLE 0.9219Try it
ema(x, n)

Exponential moving average, smoothing 2 / (n + 1).

ExampleC > ema(C, 21)Above the 21-day EMA.
Belief, 2026-10-30SPY 0.0803NVDA 0.0732TSLA 0.9209XLE 0.9281Try it
rma(x, n)

Wilder's smoothing, 1 / n: what RSI and ATR are built from.

ExampleC > rma(C, 14)Above a Wilder-smoothed 14-day average.
Belief, 2026-10-30SPY 0.0857NVDA 0.0725TSLA 0.9227XLE 0.9354Try it
linreg(x, n)

The least-squares line through the window, read at the current bar: a smoothed level, not the slope.

Examplelinreg(C, 20) > ref(linreg(C, 20), -5)The 20-day regression level is higher than a week ago: rising.
Belief, 2026-10-30SPY 0.1916NVDA 0.157TSLA 0.9118XLE 0.7215Try it
roc(x, n)

Percent change over n bars: roc(C, 20) = 5 means up 5% in 20 sessions.

Exampleroc(C, 20) > 5Up more than 5% over the last 20 sessions.
Belief, 2026-10-30SPY 0.0537NVDA 0.0537TSLA 0.681XLE 0.897Try it
cum(x)

Running total from the first bar loaded.

Examplecum(C > C[-1]) > cum(C < C[-1])More up days than down days across all the history loaded (about 1,500 sessions).
Belief, 2026-10-30SPY 0.9463NVDA 0.9463TSLA 0.9463XLE 0.9463Try it
highestbars(x, n)

How many bars ago the window's high was set, 0 to n − 1 (0 = this bar). The window includes the current bar.

Examplehighestbars(H, 20) <= 3The 20-day high was set in the last four sessions.
Belief, 2026-10-30SPY 0.0576NVDA 0.0566TSLA 0.6049XLE 0.7483Try it
lowestbars(x, n)

How many bars ago the window's low was set (0 = this bar).

Examplelowestbars(L, 20) >= 15The 20-day low is at least 15 sessions old.
Belief, 2026-10-30SPY 0.0614NVDA 0.06TSLA 0.1557XLE 0.7969Try it

Indicators

rsi(x, n)

Relative strength index, 0 to 100 (Wilder). rsi(C, 14) is the usual one.

Examplersi(C, 14) > 50Momentum on the up side.
Belief, 2026-10-30SPY 0.0919NVDA 0.073TSLA 0.9267XLE 0.9318Try it
atr(n)

Average true range over n bars, in price.

ExampleH - L > 2 * atr(14)Today's range is more than twice the average.
Belief, 2026-10-30SPY 0.0758NVDA 0.0642TSLA 0.0584XLE 0.0537Try it
atr_pct(n)

ATR as a percent of the close: 3 means 3%. Comparable across symbols.

Exampleatr_pct(14) > 3A typical day moves more than 3%.
Belief, 2026-10-30SPY 0.0537NVDA 0.5548TSLA 0.848XLE 0.0537Try it
macd(x [, fast, slow, signal])

MACD line: ema(fast) − ema(slow). Defaults 12, 26, 9.

Examplemacd(C) > 0The 12-day EMA is above the 26-day.
Belief, 2026-10-30SPY 0.311NVDA 0.087TSLA 0.8979XLE 0.943Try it
macdsignal(x [, fast, slow, signal])

The MACD signal line: an EMA of the MACD line.

Examplemacd(C) > macdsignal(C)MACD above its signal line.
Belief, 2026-10-30SPY 0.1658NVDA 0.1236TSLA 0.8968XLE 0.7144Try it
macdhist(x [, fast, slow, signal])

MACD histogram: line minus signal.

Examplemacdhist(C) > ref(macdhist(C), -1)The histogram is rising.
Belief, 2026-10-30SPY 0.0711NVDA 0.1232TSLA 0.2482XLE 0.7416Try it
bbupper(x, n [, up, dn])

Upper Bollinger band: sma + up × std. Default 2.

ExampleC > bbupper(C, 20, 2)A close above the upper band.
Belief, 2026-10-30SPY 0.0537NVDA 0.0537TSLA 0.2572XLE 0.1996Try it
bbmid(x, n)

Middle band: the simple average.

ExampleC > bbmid(C, 20)Above the middle band (the 20-day average).
Belief, 2026-10-30SPY 0.0816NVDA 0.0709TSLA 0.9156XLE 0.9133Try it
bblower(x, n [, up, dn])

Lower Bollinger band: sma − dn × std (dn defaults to up).

ExampleC < bblower(C, 20, 2)A close under the lower band.
Belief, 2026-10-30SPY 0.5882NVDA 0.3603TSLA 0.0538XLE 0.0562Try it
adx(n)

Trend strength, 0 to 100, with no direction. Above 25 is usually called trending.

Exampleadx(14) > 25A trending market, up or down.
Belief, 2026-10-30SPY 0.0613NVDA 0.0578TSLA 0.0632XLE 0.0708Try it
diplus(n)

+DI: the upward directional movement ADX is built from.

Examplediplus(14) > diminus(14)Up moves have been stronger than down moves.
Belief, 2026-10-30SPY 0.0594NVDA 0.0637TSLA 0.847XLE 0.8252Try it
diminus(n)

−DI: the downward directional movement.

Examplediminus(14) > 25Strong downward movement.
Belief, 2026-10-30SPY 0.9404NVDA 0.9389TSLA 0.4008XLE 0.0747Try it
stochk(n [, d, slow])

Stochastic %K, 0 to 100: where the close sits in the n-bar range, smoothed over slow (default 3).

Examplestochk(14) < 20Near the bottom of its 14-day range.
Belief, 2026-10-30SPY 0.1424NVDA 0.5475TSLA 0.0537XLE 0.0636Try it
stochd(n [, d, slow])

Stochastic %D: the d-bar average of %K (default 3).

Examplestochk(14) > stochd(14)%K above %D.
Belief, 2026-10-30SPY 0.2304NVDA 0.2832TSLA 0.2868XLE 0.7043Try it
cci(n)

Commodity channel index: typical price against its average, in units of mean deviation.

Examplecci(20) > 100Strong upward deviation.
Belief, 2026-10-30SPY 0.0537NVDA 0.0583TSLA 0.5437XLE 0.6023Try it
willr(n)

Williams %R, −100 to 0: 0 is the top of the n-bar range.

Examplewillr(14) > -20In the top fifth of the 14-day range.
Belief, 2026-10-30SPY 0.0651NVDA 0.0646TSLA 0.5461XLE 0.7694Try it
obv()

On-balance volume: adds the day's volume on an up close, subtracts it on a down close.

Exampleobv() > sma(obv(), 20)Volume flow above its 20-day average.
Belief, 2026-10-30SPY 0.1367NVDA 0.0925TSLA 0.1037XLE 0.9409Try it

Signals

crossup(a, b)

1 on the bar where a crosses above b (it was at or below b on the bar before), 0 otherwise. As a whole rule it answers 0.95 or 0.05.

Examplecrossup(C, sma(C, 50))Crossed above the 50-day today.
Belief, 2026-10-30SPY 0.05NVDA 0.05TSLA 0.05XLE 0.05Try it
crossdown(a, b)

1 on the bar where a crosses below b.

Examplecrossdown(sma(C, 20), sma(C, 50))The 20-day crossed under the 50-day today.
Belief, 2026-10-30SPY 0.05NVDA 0.95TSLA 0.05XLE 0.05Try it
barssince(cond)

Bars since a condition was last true (0 = true on this bar). Not known until it has been true once.

Examplebarssince(C > highest(C, 20)) > 30More than 30 sessions since the last 20-day closing breakout.
Belief, 2026-10-30SPY 0.0797NVDA 0.0637TSLA 0.0578XLE 0.0537Try it

Maths

abs(x)

Absolute value.

Exampleabs(C / C[-1] - 1) > 0.02Moved more than 2% either way today.
Belief, 2026-10-30SPY 0.2193NVDA 0.9106TSLA 0.1973XLE 0.4331Try it
sqrt(x)

Square root (negative input is not a number).

Examplestd(log(C / C[-1]), 20) * sqrt(252) > 0.4Annualized 20-day volatility above 40%.
Belief, 2026-10-30SPY 0.0537NVDA 0.1389TSLA 0.2867XLE 0.0537Try it
log(x)

Natural logarithm (zero or negative input is not a number).

Examplelog(C / C[-20]) > 0.05A 20-session log return above 5%.
Belief, 2026-10-30SPY 0.0537NVDA 0.0537TSLA 0.6655XLE 0.89Try it
sign(x)

−1, 0 or 1.

Examplesum(sign(C - C[-1]), 10) > 2More up days than down days over ten sessions, by at least three.
Belief, 2026-10-30SPY 0.5NVDA 0.1194TSLA 0.1318XLE 0.8416Try it
iif(cond, a, b)

a where the condition holds, b otherwise. Use it to switch a threshold by regime.

Examplersi(C, 14) < iif(C > sma(C, 200), 40, 30)Oversold, with a looser line (40) in an uptrend and a stricter one (30) below the 200-day.
Belief, 2026-10-30SPY 0.4642NVDA 0.7816TSLA 0.0537XLE 0.0537Try it
ref(x, -n)

Any series n bars back: the offset for things that are not a price letter.

Examplesma(C, 50) > ref(sma(C, 50), -10)The 50-day average is higher than ten sessions ago: rising.
Belief, 2026-10-30SPY 0.2481NVDA 0.2352TSLA 0.8547XLE 0.9395Try it
between(x, a, b)

1 when x is inside [a, b] (inclusive, either order), else 0.

Examplebetween(rsi(C, 14), 40, 60)RSI in the neutral band. As a whole rule it answers 0.95 or 0.05.
Belief, 2026-10-30SPY 0.95NVDA 0.05TSLA 0.05XLE 0.05Try it
least(a, b)

The smaller of two series, bar by bar.

Exampleleast(O, C) - L > 2 * abs(C - O)A long lower wick: twice the body.
Belief, 2026-10-30SPY 0.0941NVDA 0.1245TSLA 0.1878XLE 0.179Try it
greatest(a, b)

The larger of two series, bar by bar.

ExampleH - greatest(O, C) > 2 * abs(C - O)A long upper wick: twice the body.
Belief, 2026-10-30SPY 0.0564NVDA 0.0714TSLA 0.1727XLE 0.1666Try it

Recursion

rec(seed, step)

A series built from its own previous value: inside step, self is the previous bar's result (seed before the first bar). Only arithmetic, comparisons and abs/sqrt/log/sign/iif/least/greatest/between may touch self.

ExampleC > rec(C, self + 0.1 * (C - self))Above a home-made exponential average (smoothing 0.1).
Belief, 2026-10-30SPY 0.0786NVDA 0.0737TSLA 0.9187XLE 0.9249Try it

Patterns

doji()

Body at most 10% of the day's range.

Expands to
(H > L) and (abs(C - O) <= 0.1 * (H - L))
Belief, 2026-10-30SPY 0.0579NVDA 0.0735TSLA 0.1254XLE 0.1441Try it
dragonfly_doji()

Doji with a long lower wick (60%+ of the range) and almost no upper wick.

Expands to
((H > L) and (abs(C - O) <= 0.1 * (H - L))) and ((H - greatest(O, C)) <= 0.1 * (H - L)) and ((least(O, C) - L) >= 0.6 * (H - L))
Belief, 2026-10-30SPY 0.0579NVDA 0.0735TSLA 0.0973XLE 0.1409Try it
gravestone_doji()

Doji with a long upper wick and almost no lower wick.

Expands to
((H > L) and (abs(C - O) <= 0.1 * (H - L))) and ((least(O, C) - L) <= 0.1 * (H - L)) and ((H - greatest(O, C)) >= 0.6 * (H - L))
Belief, 2026-10-30SPY 0.0537NVDA 0.0537TSLA 0.0696XLE 0.1266Try it
spinning_top()

Small body (10–30% of range) with wicks of at least a quarter of the range on both sides.

Expands to
(H > L) and (abs(C - O) <= 0.3 * (H - L)) and (abs(C - O) > 0.1 * (H - L)) and ((H - greatest(O, C)) >= 0.25 * (H - L)) and ((least(O, C) - L) >= 0.25 * (H - L))
Belief, 2026-10-30SPY 0.0562NVDA 0.0718TSLA 0.2832XLE 0.209Try it
marubozu()

Body at least 90% of the range: almost no wicks.

Expands to
(H > L) and (abs(C - O) >= 0.9 * (H - L))
Belief, 2026-10-30SPY 0.0537NVDA 0.0556TSLA 0.0551XLE 0.1449Try it
hammer()

Lower wick at least twice the body, upper wick at most 10% of the range, closing below the close five bars back.

Expands to
((H > L) and (abs(C - O) > 0) and ((least(O, C) - L) >= 2 * abs(C - O)) and ((H - greatest(O, C)) <= 0.1 * (H - L))) and (C < C[-5])
Belief, 2026-10-30SPY 0.0941NVDA 0.1245TSLA 0.0735XLE 0.179Try it
hanging_man()

Hammer shape, closing above the close five bars back.

Expands to
((H > L) and (abs(C - O) > 0) and ((least(O, C) - L) >= 2 * abs(C - O)) and ((H - greatest(O, C)) <= 0.1 * (H - L))) and (C > C[-5])
Belief, 2026-10-30SPY 0.0941NVDA 0.1245TSLA 0.1396XLE 0.179Try it
shooting_star()

Upper wick at least twice the body, lower wick at most 10% of the range, after a five-bar rise.

Expands to
((H > L) and (abs(C - O) > 0) and ((H - greatest(O, C)) >= 2 * abs(C - O)) and ((least(O, C) - L) <= 0.1 * (H - L))) and (C > C[-5])
Belief, 2026-10-30SPY 0.0537NVDA 0.0537TSLA 0.0696XLE 0.1666Try it
inverted_hammer()

Shooting-star shape after a five-bar decline.

Expands to
((H > L) and (abs(C - O) > 0) and ((H - greatest(O, C)) >= 2 * abs(C - O)) and ((least(O, C) - L) <= 0.1 * (H - L))) and (C < C[-5])
Belief, 2026-10-30SPY 0.0537NVDA 0.0537TSLA 0.0696XLE 0.1666Try it
engulfing_bull()

A green body that engulfs yesterday's red body.

Expands to
(C[-1] < O[-1]) and (C > O) and (O <= C[-1]) and (C >= O[-1]) and (abs(C - O) > abs(C[-1] - O[-1]))
Belief, 2026-10-30SPY 0.0597NVDA 0.0763TSLA 0.2167XLE 0.1025Try it
engulfing_bear()

A red body that engulfs yesterday's green body.

Expands to
(C[-1] > O[-1]) and (C < O) and (O >= C[-1]) and (C <= O[-1]) and (abs(C - O) > abs(C[-1] - O[-1]))
Belief, 2026-10-30SPY 0.0604NVDA 0.0932TSLA 0.0708XLE 0.1565Try it
harami_bull()

A small green body inside yesterday's red body.

Expands to
(C[-1] < O[-1]) and (C > O) and (abs(C - O) < abs(C[-1] - O[-1])) and (O >= C[-1]) and (C <= O[-1])
Belief, 2026-10-30SPY 0.0604NVDA 0.0932TSLA 0.0708XLE 0.1565Try it
harami_bear()

A small red body inside yesterday's green body.

Expands to
(C[-1] > O[-1]) and (C < O) and (abs(C - O) < abs(C[-1] - O[-1])) and (O <= C[-1]) and (C >= O[-1])
Belief, 2026-10-30SPY 0.0597NVDA 0.0763TSLA 0.1487XLE 0.1025Try it
piercing_line()

After a red day, opens below its close and closes above the middle of its body (but under its open).

Expands to
(C[-1] < O[-1]) and (C > O) and (O < C[-1]) and (C > (O[-1] + C[-1]) / 2) and (C < O[-1])
Belief, 2026-10-30SPY 0.0561NVDA 0.0715TSLA 0.2393XLE 0.1025Try it
dark_cloud()

After a green day, opens above its close and closes below the middle of its body (but above its open).

Expands to
(C[-1] > O[-1]) and (C < O) and (O > C[-1]) and (C < (O[-1] + C[-1]) / 2) and (C > O[-1])
Belief, 2026-10-30SPY 0.0597NVDA 0.0763TSLA 0.0708XLE 0.1085Try it
morning_star()

A red bar, a small bar (half its body or less) that stays under its close, then a green bar closing above the middle of the first.

Expands to
(C[-2] < O[-2]) and (abs(C[-1] - O[-1]) <= 0.5 * abs(C[-2] - O[-2])) and (greatest(O[-1], C[-1]) <= C[-2]) and (C > O) and (C > (O[-2] + C[-2]) / 2)
Belief, 2026-10-30SPY 0.0579NVDA 0.0682TSLA 0.2069XLE 0.1509Try it
evening_star()

A green bar, a small bar that stays above its close, then a red bar closing below the middle of the first.

Expands to
(C[-2] > O[-2]) and (abs(C[-1] - O[-1]) <= 0.5 * abs(C[-2] - O[-2])) and (least(O[-1], C[-1]) >= C[-2]) and (C < O) and (C < (O[-2] + C[-2]) / 2)
Belief, 2026-10-30SPY 0.1524NVDA 0.0975TSLA 0.1487XLE 0.1036Try it
three_white_soldiers()

Three green bars, each closing higher and opening inside the previous body.

Expands to
(C > O) and (C[-1] > O[-1]) and (C[-2] > O[-2]) and (C > C[-1]) and (C[-1] > C[-2]) and (O >= O[-1]) and (O <= C[-1]) and (O[-1] >= O[-2]) and (O[-1] <= C[-2])
Belief, 2026-10-30SPY 0.0552NVDA 0.0732TSLA 0.0867XLE 0.1025Try it
three_black_crows()

Three red bars, each closing lower and opening inside the previous body.

Expands to
(C < O) and (C[-1] < O[-1]) and (C[-2] < O[-2]) and (C < C[-1]) and (C[-1] < C[-2]) and (O <= O[-1]) and (O >= C[-1]) and (O[-1] <= O[-2]) and (O[-1] >= C[-2])
Belief, 2026-10-30SPY 0.0604NVDA 0.0932TSLA 0.0708XLE 0.0915Try it
tweezer_bottom()

Red then green, with lows within 0.1% of each other.

Expands to
(C[-1] < O[-1]) and (C > O) and (abs(L - L[-1]) <= 0.001 * C[-1])
Belief, 2026-10-30SPY 0.0537NVDA 0.0537TSLA 0.054XLE 0.0537Try it
tweezer_top()

Green then red, with highs within 0.1%.

Expands to
(C[-1] > O[-1]) and (C < O) and (abs(H - H[-1]) <= 0.001 * C[-1])
Belief, 2026-10-30SPY 0.0537NVDA 0.0664TSLA 0.1487XLE 0.0663Try it
inside_bar()

Today's high and low are inside yesterday's (equal counts).

Expands to
(H <= H[-1]) and (L >= L[-1])
Belief, 2026-10-30SPY 0.0537NVDA 0.0564TSLA 0.0795XLE 0.0998Try it
outside_bar()

Today's high above yesterday's and low below it.

Expands to
(H > H[-1]) and (L < L[-1])
Belief, 2026-10-30SPY 0.0614NVDA 0.0943TSLA 0.3172XLE 0.0814Try it
gap_up()

Today's whole range is above yesterday's high: an unfilled gap up.

Expands to
L > H[-1]
Belief, 2026-10-30SPY 0.0537NVDA 0.0537TSLA 0.0577XLE 0.5559Try it
gap_down()

Today's whole range is below yesterday's low.

Expands to
H < L[-1]
Belief, 2026-10-30SPY 0.8761NVDA 0.8033TSLA 0.2768XLE 0.0546Try it

Not available on Ora: intraday

The grammar knows these names, but Ora runs rules on daily bars, so they return a 422 (see Error messages).

NameMeaning
vwap()Volume-weighted average price
opening_range_high([m]) opening_range_low([m])High / low of the first m minutes
minutes_since_open() time_of_day()Clock time inside the session
rvol(n)Relative volume against the previous n bars
gap()Percent gap from the previous close
C@5m, sma(C@1h, 20) …Another timeframe after @

Information, not investment advice. Beliefs and probabilities on this page are real responses for the session shown and change with every session.

Create an account Open the Playground Everything here also lives in the console, next to your keys and usage.