Manual · 5 of 5
Examples
How to use these
- Every example is a condition — the part after
#. The app adds its display columns and shows the Outcome summary, the table and the panels. - The numbers are descriptive history, not forecasts, and they move as bars arrive. A next-day average of +0.3 % over 8,000 bars is a tendency; over 6 bars it is an anecdote.
- Change
entity=BTCtoentity=ETH, swap the feed prefix or use the dropdowns, and add a date window to narrow the period.
Not investment advice
Oversold, overbought and crosses
Classic oscillator setups. Remember: every indicator is the previous completed bar's value, so p: means one bar before that.
RSI at or below 30
Try this →#bn_spot_rsi<=30 and entity=BTC
Every BTC bar whose RSI (as of the previous close) was 30 or lower.
8,606 matching bars · next-day average +0.06 %
Overbought inside a trend
Try this →#bn_spot_rsi>=70 and bn_spot_adx>=25 and entity=BTC
RSI 70+ while ADX says a trend is in force — overbought that often keeps going.
8,656 matching bars · next-day average +0.35 %
Oversold but turning up
Try this →#bn_spot_rsi<30 and bn_spot_rsi-p4:bn_spot_rsi>5 and entity=BTC
RSI under 30 and at least 5 points higher than an hour earlier.
715 matching bars · next-day average -0.25 %
Stochastic cross below 20
Try this →#bn_spot_stoch_k>bn_spot_stoch_d and p:bn_spot_stoch_k<=p:bn_spot_stoch_d and bn_spot_stoch_k<20 and entity=BTC
%K crossed above %D on the previous bar while still under 20.
3,383 matching bars · next-day average +0.12 %
MACD golden cross (the moment)
Try this →#bn_spot_macd>0 and p:bn_spot_macd<=0 and entity=BTC
MACD is positive now and was not one bar earlier — an event, not a state.
4,366 matching bars · next-day average +0.12 %
MACD death cross
Try this →#bn_spot_macd<0 and p:bn_spot_macd>=0 and entity=BTC
The mirror image.
4,365 matching bars · next-day average +0.12 %
Parabolic SAR flips to uptrend
Try this →#bn_spot_sar<0 and p:bn_spot_sar>=0 and entity=BTC
SAR moved below the price on the previous bar.
9,419 matching bars · next-day average +0.14 %
Trend and mean reversion
dev % columns are distances from the close: negative = price above the line.
Price above both averages in a trend
Try this →#bn_spot_sma<0 and bn_spot_ema<0 and bn_spot_adx>=25 and entity=BTC
Close above the 30-bar SMA and EMA with ADX ≥ 25.
48,708 matching bars · next-day average +0.19 %
Three rising MACD histogram bars in an uptrend
Try this →#Streak(bn_spot_macd_hist@entity)>=3 and bn_spot_sma<0 and entity=BTC
The histogram has been positive for at least three bars and the price is above its average.
74,749 matching bars · next-day average +0.16 %
Closed below the lower Bollinger band
Try this →#bn_spot_bbands_lower>0 and entity=BTC
A positive lower-band distance means the band is above the close.
13,979 matching bars · next-day average +0.14 %
Above the upper band with RSI 70+
Try this →#bn_spot_bbands_upper<0 and bn_spot_rsi>=70 and entity=BTC
Stretched on two measures at once.
4,939 matching bars · next-day average +0.31 %
2 % under the 1-day average close
Try this →#(bn_spot_close/A(bn_spot_close@entity,N=96)-1)*100<-2 and entity=BTC
This bar's close compared with the average of the previous 96 closes.
19,316 matching bars · next-day average +0.46 %
Washed out vs its own trend line
Try this →#bn_spot_logprice_resid<=-2 and entity=BTC
Close at least 2 % below the 1-day log-price regression line.
7,490 matching bars · next-day average +0.27 %
Sharp moves
Use ratios with p: joins for exact horizons, or the pre-computed return columns.
ETH down 5 % or more in a day
Try this →#bn_spot_close/p96:bn_spot_close<=0.95 and entity=ETH
Close divided by the close 96 bars earlier is 0.95 or less.
17,314 matching bars · next-day average +0.46 %
Up 2 % in the last hour
Try this →#bn_spot_ret_log_short>=2 and entity=BTC
The 4-bar log return (already in %) is 2 or more.
1,985 matching bars · next-day average +0.45 %
Down 3 % within an hour
Try this →#bn_spot_close/p4:bn_spot_close<=0.97 and entity=BTC
A fast flush: only 656 bars in six and a half years.
656 matching bars · next-day average +2.34 %
A 1 % bar in either direction
Try this →#abs(bn_spot_ret_log)>=1 and entity=BTC
abs() turns the signed return into a size.
3,927 matching bars · next-day average +0.77 %
Up 5 % versus one day ago
Try this →#bn_spot_close/p96:bn_spot_close>=1.05 and entity=BTC
The same ratio idea, upward.
11,817 matching bars · next-day average +0.13 %
Breakouts
Max / Min windows look at the previous bars only (the current bar is excluded), which is exactly what a breakout needs.
New 1-day high on heavy volume
Try this →#bn_spot_close>Max(p:bn_spot_high@entity,N=96) and bn_spot_volume_rank_short>=0.9 and entity=BTC
Close above the highest high of the previous 96 bars, with today's volume rank ≥ 0.9.
3,367 matching bars · next-day average +0.35 %
New 7-day high
Try this →#bn_spot_close>Max(p:bn_spot_high@entity,N=672) and entity=BTC
A 672-bar window is allowed; this one takes about 7 seconds over the whole history.
2,166 matching bars · next-day average +0.60 %
New 1-day low
Try this →#bn_spot_close<Min(p:bn_spot_low@entity,N=96) and entity=BTC
Close under the lowest low of the previous day.
4,835 matching bars · next-day average +0.23 %
Breakout happened on the previous bar
Try this →#bn_spot_bars_since_high_breakout=0 and entity=BTC
The pre-computed event column: 0 means 'just happened'.
3,908 matching bars · next-day average +0.17 %
Volume and order flow
Ranks say 'unusually heavy' without picking a number. Taker columns exist on Binance feeds only.
Volume spike with a big green candle
Try this →#bn_spot_volume_rank_long>=0.95 and bn_spot_body>=1 and entity=BTC
Top-5 % weekly volume and a body of at least 1 %.
939 matching bars · next-day average +0.58 %
Aggressive buyers on heavy volume
Try this →#bn_spot_taker_buy_ratio>=0.6 and bn_spot_volume_rank_short>=0.9 and entity=BTC
60 %+ of the previous bar's volume was market buying, on a top-10 % volume bar.
3,067 matching bars · next-day average +0.12 %
Selling volume while oversold
Try this →#bn_spot_vr_imbalance<=-0.3 and bn_spot_rsi<=35 and entity=BTC
12-hour volume imbalance tilted to down bars.
4,925 matching bars · next-day average -0.05 %
Volatility regimes
rv_rank ranks today's realized volatility against the last 7 days.
Volatility squeeze
Try this →#bn_spot_rv_rank<=0.15 and entity=BTC
Today's volatility is in the calmest 15 % of the week.
38,629 matching bars · next-day average -0.01 %
Volatility explosion
Try this →#bn_spot_rv_rank>=0.9 and bn_spot_natr>=1 and entity=BTC
Top-10 % weekly volatility and an ATR of at least 1 % of price.
3,538 matching bars · next-day average +0.57 %
ATR 20 % below its 1-day average
Try this →#bn_spot_natr/A(bn_spot_natr@entity,N=96)<0.8 and entity=BTC
A window average inside an expression.
60,511 matching bars · next-day average +0.05 %
Streaks and sequences
Streak() counts consecutive bars up to the previous bar; Sum() counts how many of the last N bars satisfied something.
Six green bars in a row
Try this →#Streak(bn_spot_close-bn_spot_open@entity)>=6 and entity=BTC
close − open was positive on each of the previous six bars.
2,006 matching bars · next-day average +0.23 %
Six red bars in a row
Try this →#Streak(bn_spot_close-bn_spot_open@entity)<=-6 and entity=BTC
Negative streaks are negative numbers.
1,899 matching bars · next-day average -0.07 %
At least 6 of the last 8 bars green
Try this →#Sum(bn_spot_close>bn_spot_open@entity,N=8)>=6 and entity=BTC
A boolean inside Sum() counts the true bars.
27,979 matching bars · next-day average +0.18 %
RSI has stayed ≥ 70 for 10 bars
Try this →#Streak(bn_spot_rsi>=70@entity)>=10 and entity=BTC
A condition inside Streak() counts consecutive true bars.
1,451 matching bars · next-day average +0.48 %
20 of the last 30 bars closed above their open
Try this →#Sum(bn_spot_close/bn_spot_open>=1@entity,N=30)>=20 and entity=BTC
Persistent buying over 7.5 hours.
7,059 matching bars · next-day average +0.19 %
Low average RSI, now rising
Try this →#A(bn_spot_rsi@entity,N=16)<40 and bn_spot_rsi>p:bn_spot_rsi and entity=BTC
A 4-hour RSI average under 40 and RSI higher than a bar earlier.
14,455 matching bars · next-day average +0.14 %
Calendar and time of day
Add day_progress=0 whenever you want one row per day (the midnight UTC bar).
Monday midnight bars
Try this →#day='Monday' and day_progress=0 and entity=BTC
One bar per Monday: the 00:00 UTC bar.
349 matching bars · next-day average +0.46 %
Weekend 4-hour drop of 2 %+
Try this →#day in ('Saturday','Sunday') and bn_spot_ret_log_mid<=-2 and entity=BTCWeekday names must be quoted.
1,532 matching bars · next-day average +0.66 %
Every Christmas
Try this →#month=12 and day_num=25 and day_progress=0 and entity=BTC
Six bars, one per year.
6 matching bars · next-day average +0.89 %
The 09:30 UTC bar every day
Try this →#day_progress>=39.08 and day_progress<40.08 and entity=BTC
09:30 = 570 minutes = 39.58 % of the day; a ±0.5 window catches exactly that bar.
2,442 matching bars · next-day average +0.15 %
The 13:30 UTC bar (US cash open, summer time)
Try this →#day_progress>=56 and day_progress<57 and entity=BTC
13:30 = 810 minutes = 56.25 %.
2,441 matching bars · next-day average +0.15 %
Cross-market and other feeds
Cross columns have no feed prefix. Other exchanges are just a different prefix (or the dropdown on the result page).
Reverse kimchi premium while BTC rises
Try this →#x_krw_premium<0 and bn_spot_ret_log_short>0 and entity=BTC
Upbit trading below Binance while the last hour was positive.
19,717 matching bars · next-day average +0.07 %
Futures premium plus a 4-hour rally
Try this →#x_binance_basis>0.1 and bn_spot_ret_log_mid>=2 and entity=BTC
Perpetual at least 0.1 % above spot with a 2 % 4-hour move.
1,491 matching bars · next-day average +0.32 %
BTC stronger than ETH over the last hour
Try this →#bn_spot_ret_log_short>o:bn_spot_ret_log_short and bn_spot_rsi>=60 and entity=BTC
o: reads the other coin's row at the same time.
21,477 matching bars · next-day average +0.26 %
Upbit RSI at or below 30
Try this →#up_spot_rsi<=30 and entity=BTC
The same indicator on the Upbit KRW feed.
7,629 matching bars · next-day average +0.04 %
OKX perpetual up 2 % in an hour
Try this →#okx_perp_ret_log_short>=2 and entity=BTC
Any feed prefix works in a condition.
1,991 matching bars · next-day average +0.48 %
Binance perpetual oversold with a negative basis
Try this →#bn_perp_rsi<=30 and x_binance_basis<0 and entity=BTC
Futures RSI and the basis column together.
6,580 matching bars · next-day average +0.22 %
Dates and periods
A whole-day equality expands to all 96 bars of that day; today is the current UTC day.
Today so far
Try this →#date=today and entity=BTC
All bars of the current UTC day.
53 bars at the time of verification (13:00 UTC).
The last 7 days
Try this →#date>=today-7 and entity=BTC
From midnight seven days ago.
725 matching bars
One specific day
Try this →#date=20250110 and entity=BTC
All 96 bars of 10 January 2025.
96 matching bars
The eight Fed rate-cut announcement bars
Try this →#date in (20200303.1500,20200315.2100,20240918.1800,20241107.1900,20241218.1900,20250917.1800,20251029.1800,20251210.1900) and entity=BTC
Exact 15-minute bars listed with in.
8 matching bars · next-day average -1.85 %
Outcome studies and summaries
nN: looks forward; use it to measure what happened after a setup, or to build a summary in one row.
Oversold, then +2 % the next day (hindsight filter)
Try this →#bn_spot_rsi<=25 and n96:bn_spot_close/bn_spot_close>=1.02 and entity=BTC
Keeps only the setups that worked — useful for inspection, never as a signal.
759 matching bars · next-day average +4.86 % · The next-day average is high by construction: the condition itself demands it.
Compare thresholds side by side
Try this →#bn_spot_rsi<=30,25,20 and entity=BTC
A comma after a value creates one result group per value: 8,606 / 3,460 / 1,157 bars with next-day averages of +0.06 %, +0.05 % and +0.22 %.
The result page shows one table per group.
Both coins as separate groups
Try this →#entity=BTC,ETH and bn_spot_rsi<=30
BTC 8,606 bars (+0.06 %), ETH 9,257 bars (+0.11 %).
One-row summaries
A complete query with aggregates in the column list collapses the matches to one row. These are the exact queries and answers from the verification run.
S(1),A(n96:bn_spot_close/bn_spot_close)@bn_spot_rsi<=30 and entity=BTCTry this →
S(1),Sum(bn_spot_close>bn_spot_open),Average(n4:bn_spot_close/bn_spot_close),Max(n96:bn_spot_close/bn_spot_close),Min(n96:bn_spot_close/bn_spot_close)@entity=BTC and bn_spot_rsi<=20Try this →
S(1),A(n96:bn_spot_close/bn_spot_close)@entity and bn_spot_rsi<=30Try this →
S(1),A(bn_spot_close/bn_spot_open>=1),A(n96:bn_spot_close/bn_spot_close)@entity=BTC and day='Monday' and day_progress=0Try this →
Adapting an example
Change the coin, feed or period
- Coin:
entity=ETH. Both coins as separate groups:entity=BTC,ETH. - Feed: replace the prefix (
bn_spot_→okx_perp_), or write{P}_and choose Market / Exchange in the dropdowns. - Period: add
and date>=20250101,and date>=today-30orand year=2024.
Turn a state into an event
“RSI under 30” matches every bar of an oversold stretch. To find the moment it began, add the previous bar: bn_spot_rsi<30 and p:bn_spot_rsi>=30. The same trick gives crosses, flips and breakouts.
#bn_spot_rsi<30 and p:bn_spot_rsi>=30 and entity=BTCTry this →
Measure instead of listing
Put S(1) and an A(n96:…) in front of the condition to get one row with the count and the average outcome; add commas after a threshold to compare variants in one run.
S(1),A(n96:bn_spot_close/bn_spot_close),A(n4:bn_spot_close/bn_spot_close)@bn_spot_rsi<=30,25,20 and entity=BTCTry this →
Hand it to Deep Analysis
Deep Analysis starts from a condition like these and searches for additional conditions that improve the outcome, validating on unseen data. Open Deep Analysis with a condition you like.