Manual · 3 of 5
Indicator reference
How to read this page
- Name. Column =
<feed>_<indicator>, e.g.bn_spot_rsi. Pick the feed in the explorer to see the exact names. - Timing. Every indicator value on a row is the value as of the previous completed bar. It was known before this bar opened. Raw open / high / low / close / volume are the row's own bar. See Data & integrity.
- Unit. The badge names one of the unit classes below. Price-level indicators are stored as a % distance from the close (dev %), so “price above the moving average” is
bn_spot_sma<0. - Observed range. min … max over the full history (1 Jan 2020 → 3 Sep 2026, a survey of every bar), with the average and the standard deviation. They describe reality, not the formula's limits; use them to pick thresholds that actually occur.
- Null %. Share of bars without a value: the warm-up window at the start of the history, after an exchange gap, or “no event yet” for the event-distance columns. Null never matches a comparison.
- Example. The small link under each name runs a ready-made condition on the selected feed.
Four decimals
bn_spot_rsi=50) rarely matches — use ranges.Unit classes
| Badge | Range | How to read |
|---|---|---|
| dev % | open, usually within ±3 | (indicator ÷ close − 1) × 100. 0 = the line is exactly at the close. NEGATIVE = the line is below the price, i.e. the price is ABOVE it. Positive = the line is above the price. |
| % of close | open, signed | indicator ÷ close × 100. The sign is the indicator's own (a MACD above zero stays positive); the size is a percentage of the close, so it is comparable across coins, exchanges and years. |
| % of close | 0 and up | indicator ÷ close × 100; never negative. |
| % | open, signed | A ratio multiplied by 100. +1 means +1 %. |
| % | 0 and up | A ratio multiplied by 100; never negative. |
| % | depends on the indicator | The indicator's own percentage definition (TA-Lib already computes it in percent). |
| 0–100 | 0 to 100 | Classic oscillator scale. 50 is neutral for RSI-type indicators. |
| −100–100 | −100 to 100 | Zero is neutral; the sign gives the direction. |
| −100–0 | −100 to 0 | Williams %R scale: near 0 = close at the top of the range, near −100 = at the bottom. |
| CCI | ±466.67 at most (14-bar CCI) | Unbounded in theory; ±100 are the usual hot / cold lines. |
| −1–1 | −1 to 1 | A balance or a correlation. 0 = balanced. |
| rank 0–1 | 1/window to 1 | Percentile rank of the latest value inside its window. 0.95 = in the top 5 % of the window; 0.10 = bottom 10 %. |
| ratio | open | Dimensionless statistic; compare it with its own history rather than with a fixed line. |
| %³ / %⁴ | open | Central moments of percentage returns (skew- and tail-type information in raw form). |
| exchange units | as served by the exchange | Not normalized. Prices are in the feed's quote currency (USDT, USD or KRW); volumes in base or quote units. Compare within one feed only. |
| ln(1+bars) | 0 to 6.5117 (672 bars) | Natural log of (1 + bars since the event). 0 = the event was on the previous bar, 0.6931 = one bar before that, 1.3863 = 3 bars, 4.5747 = 96 bars (1 day), 6.5117 = the 672-bar cap. |
| bars | 0 to 671 | A plain bar count (15-minute bars). |
| 0–1 | 0 to 1 | A share. 0.55 = 55 %. |
All 110 indicators (interactive)
Showing 110 of 110 indicators on Binance Spot (bn_spot). Ranges are observed values over the full history (1 Jan 2020 → 3 Sep 2026); null % is the share of bars where the value is missing (warm-up, exchange gaps or no event), and “since” is the first bar that carried a value.
Moving averages & trendlines
Where the price sits relative to a smoothed line. All of these are stored as a distance from the close in percent (dev %): negative means the price is above the line.
| Indicator | What it measures | Window | Unit | BTC observed | ETH observed | Null % B / E | How to read |
|---|---|---|---|---|---|---|---|
bn_spot_smaSimple moving average bn_spot_sma<0 and bn_spot_adx>=25 → | The plain 30-bar average of closes, as a % distance from the close. (SMA30 ÷ close − 1) × 100 | 30 bars · 7.5 h | dev % open, usually within ±3 | -10.89 … 37.88 avg -0.0072 · σ 0.9878 | -11.62 … 37.21 avg -0.0049 · σ 1.29 | 0.27 / 0.27 since 20200101.0730 | < 0: price above its average (bullish bias). > 0: below. −1 = the average sits 1 % under the price. |
bn_spot_emaExponential moving average bn_spot_ema<0 and p:bn_spot_ema>=0 → | A 30-bar average that weights recent bars more (multiplier 2/31). (EMA30 ÷ close − 1) × 100 | 30 bars · 7.5 h | dev % open, usually within ±3 | -10.51 … 33.27 avg -0.0073 · σ 0.8502 | -11.18 … 33.28 avg -0.005 · σ 1.11 | 0.27 / 0.27 since 20200101.0730 | Same reading as sma; reacts faster to new bars. |
bn_spot_wmaWeighted moving average bn_spot_wma<-1 → | Linearly weighted 30-bar average (newest bar weight 30, oldest 1). (WMA30 ÷ close − 1) × 100 | 30 bars · 7.5 h | dev % open, usually within ±3 | -10.74 … 29.33 avg -0.0047 · σ 0.7634 | -14.76 … 28.98 avg -0.0031 · σ 0.9959 | 0.27 / 0.27 since 20200101.0730 | Same reading as sma. |
bn_spot_demaDouble exponential MA bn_spot_dema<0 and bn_spot_sma>0 → | A low-lag 30-bar average: 2·EMA − EMA(EMA). (DEMA30 ÷ close − 1) × 100 | 30 bars (58-bar warm-up) | dev % open, usually within ±3 | -14.03 … 16.94 avg 1.99e-4 · σ 0.5836 | -19.24 … 20.67 avg 2.58e-4 · σ 0.7594 | 0.47 / 0.47 since 20200101.1445 | Hugs the price more closely than ema; its sign flips earlier. |
bn_spot_temaTriple exponential MA abs(bn_spot_tema)<0.2 → | An even lower-lag 30-bar average: 3·EMA − 3·EMA(EMA) + EMA(EMA(EMA)). (TEMA30 ÷ close − 1) × 100 | 30 bars (87-bar warm-up) | dev % open, usually within ±3 | -16.09 … 14.2 avg 2.88e-4 · σ 0.492 | -18.77 … 16.63 avg 3.47e-4 · σ 0.6396 | 0.67 / 0.67 since 20200101.2200 | Fastest of the MA family; small values are normal (std ≈ 0.5). |
bn_spot_trimaTriangular moving average bn_spot_trima<-1.5 → | A doubly-smoothed 30-bar average with the heaviest weight in the middle of the window. (TRIMA30 ÷ close − 1) × 100 | 30 bars · 7.5 h | dev % open, usually within ±3 | -11.95 … 40.45 avg -0.0072 · σ 1.06 | -12.74 … 38.88 avg -0.0047 · σ 1.38 | 0.27 / 0.27 since 20200101.0730 | Smoothest of the simple family; good for 'is the price well above the middle of the last 7 hours'. |
bn_spot_t3Tillson T3 bn_spot_t3<0 and p:bn_spot_t3>=0 → | A very smooth, low-lag average built from six chained EMAs. (T3 ÷ close − 1) × 100 | 5 bars, vfactor 0.7 (24-bar warm-up) | dev % open, usually within ±3 | -17.31 … 15.65 avg -7.81e-4 · σ 0.4193 | -16.63 … 18.63 avg -4.12e-4 · σ 0.544 | 0.24 / 0.24 since 20200101.0615 | Small values (std ≈ 0.4); use it for sign changes rather than size. |
bn_spot_kamaKaufman adaptive MA bn_spot_kama<-1 → | An average that speeds up in trends and slows down in chop (efficiency ratio). (KAMA30 ÷ close − 1) × 100 | 30 bars · 7.5 h | dev % open, usually within ±3 | -15.43 … 19.1 avg -0.0029 · σ 0.8454 | -20.76 … 26.34 avg -0.0081 · σ 1.11 | 0.28 / 0.28 since 20200101.0745 | Flat in sideways markets, so |kama| stays small until a real move. |
bn_spot_mamaMESA adaptive MA bn_spot_mama>bn_spot_fama and bn_spot_ma… → | Ehlers' adaptive average that follows the dominant price cycle. (MAMA ÷ close − 1) × 100 | fast 0.5 / slow 0.05 (32-bar warm-up) | dev % open, usually within ±3 | -10.22 … 17.24 avg -0.0024 · σ 0.4575 | -16.03 … 23.96 avg -0.0019 · σ 0.5964 | 0.29 / 0.29 since 20200101.0815 | Bullish when the MAMA line is above the FAMA line: {P}_mama>{P}_fama. |
bn_spot_famaFollowing adaptive MA bn_spot_mama>bn_spot_fama and p:bn_spot_… → | The slower companion line of MAMA. (FAMA ÷ close − 1) × 100 | fast 0.5 / slow 0.05 (32-bar warm-up) | dev % open, usually within ±3 | -10.97 … 30.45 avg -0.0107 · σ 0.8465 | -17.08 … 31.82 avg -0.0096 · σ 1.1 | 0.29 / 0.29 since 20200101.0815 | Cross of mama over fama = the MESA buy signal. |
bn_spot_sarParabolic SAR bn_spot_sar<0 and p:bn_spot_sar>=0 → | The parabolic stop-and-reverse level. (SAR ÷ close − 1) × 100 | step 0.02, max 0.2 | dev % open, usually within ±3 | -27.38 … 22.81 avg -0.0489 · σ 1.17 | -32.79 … 33.67 avg -0.0646 · σ 1.53 | 0.08 / 0.08 since 20200101.0030 | < 0: SAR below the price = uptrend. > 0: downtrend. A sign flip is a reversal signal. |
bn_spot_midpointMidpoint of closes bn_spot_midpoint<-1 → | Halfway between the highest and lowest close of the last 14 bars. ((max close + min close) ÷ 2 ÷ close − 1) × 100 | 14 bars · 3.5 h | dev % open, usually within ±3 | -13.85 … 24.73 avg -0.0138 · σ 0.612 | -16.52 … 22.02 avg -0.0188 · σ 0.7974 | 0.16 / 0.16 since 20200101.0330 | < 0: price in the upper half of its 3.5-hour close range. |
bn_spot_midpriceMidprice bn_spot_midprice>1 → | Halfway between the highest high and lowest low of the last 14 bars. ((max high + min low) ÷ 2 ÷ close − 1) × 100 | 14 bars · 3.5 h | dev % open, usually within ±3 | -13.35 … 24.71 avg -0.0332 · σ 0.6128 | -16.05 … 22.74 avg -0.0483 · σ 0.7967 | 0.16 / 0.16 since 20200101.0330 | Same reading as midpoint, using the full bar range. |
bn_spot_ht_trendlineHilbert trendline bn_spot_ht_trendline<0 and bn_spot_sma<0 → | TA-Lib's instantaneous trendline from the Hilbert transform. (HT_TRENDLINE ÷ close − 1) × 100 | adaptive (63-bar warm-up) | dev % open, usually within ±3 | -11.36 … 31.38 avg -0.0056 · σ 0.9341 | -15.47 … 32.45 avg -0.0053 · σ 1.22 | 0.50 / 0.50 since 20200101.1600 | A smooth trend proxy without a fixed period. |
bn_spot_linearregLinear regression value bn_spot_linearreg>0.5 → | The 14-bar least-squares line evaluated at the latest bar. (LINEARREG14 ÷ close − 1) × 100 | 14 bars · 3.5 h | dev % open, usually within ±3 | -15.98 … 12.03 avg 8.87e-5 · σ 0.3815 | -15.02 … 14.13 avg 1.47e-4 · σ 0.4951 | 0.16 / 0.16 since 20200101.0330 | How far the close is from its own short trend line. |
bn_spot_linearreg_interceptRegression intercept bn_spot_linearreg_intercept<-2 → | Where the 14-bar regression line started (its value 13 bars back). (intercept ÷ close − 1) × 100 | 14 bars · 3.5 h | dev % open, usually within ±3 | -16.21 … 40.26 avg -0.0065 · σ 1.22 | -22.11 … 42.42 avg -0.0045 · σ 1.59 | 0.16 / 0.16 since 20200101.0330 | Big positive = the price fell over the window; big negative = it rose. |
bn_spot_tsfTime-series forecast bn_spot_tsf<bn_spot_linearreg → | The 14-bar regression line extended one bar ahead. (TSF14 ÷ close − 1) × 100 | 14 bars · 3.5 h | dev % open, usually within ±3 | -16.78 … 10.88 avg 5.93e-4 · σ 0.4093 | -15.65 … 13.13 avg 5.04e-4 · σ 0.5316 | 0.16 / 0.16 since 20200101.0330 | Compare with linearreg: tsf < linearreg means the line slopes down. |
bn_spot_adaptive_dmaVolatility-adaptive MA bn_spot_adaptive_dma<0 → | An average whose speed rises with the 7-day volatility rank (rv_rank). y = α·close + (1−α)·y₋₁, α = clip(0.03 + 0.27·rv_rank, 0.03, 0.30) | α 0.03–0.30 (768-bar warm-up ≈ 8 days) | dev % open, usually within ±3 | -12.21 … 11.34 avg -0.0032 · σ 0.4787 | -12.1 … 13.95 avg -0.0044 · σ 0.6328 | 5.00 / 5.00 since 20200109.0000 | Tracks fast in volatile weeks and slowly in calm ones. Null for the first 8 days of a feed. |
Bands
Distance from each band in percent of the close. Because they are distances, the upper band is normally positive and the lower band negative.
| Indicator | What it measures | Window | Unit | BTC observed | ETH observed | Null % B / E | How to read |
|---|---|---|---|---|---|---|---|
bn_spot_bbands_upperBollinger upper band bn_spot_bbands_upper<0 → | SMA20 plus two standard deviations. (upper ÷ close − 1) × 100 | 20 bars · 5 h, 2σ | dev % open, usually within ±3 | -4.46 … 61.46 avg 0.8409 · σ 1.21 | -5.2 … 57.29 avg 1.12 · σ 1.57 | 0.20 / 0.20 since 20200101.0500 | < 0: the close is ABOVE the upper band (stretched). Typical value ≈ +0.9. |
bn_spot_bbands_middleBollinger middle band bn_spot_bbands_middle<0 and p4:bn_spot_b… → | The 20-bar simple average (the band's centre). (SMA20 ÷ close − 1) × 100 | 20 bars · 5 h | dev % open, usually within ±3 | -11.32 … 30.45 avg -0.0047 · σ 0.8021 | -15.95 … 30.32 avg -0.0032 · σ 1.05 | 0.20 / 0.20 since 20200101.0500 | < 0: price above the band centre. |
bn_spot_bbands_lowerBollinger lower band bn_spot_bbands_lower>0 → | SMA20 minus two standard deviations. (lower ÷ close − 1) × 100 | 20 bars · 5 h, 2σ | dev % open, usually within ±3 | -27.84 … 8.45 avg -0.8503 · σ 1.1 | -32.1 … 10.31 avg -1.13 · σ 1.4 | 0.20 / 0.20 since 20200101.0500 | > 0: the close is BELOW the lower band. Typical value ≈ −0.9. |
bn_spot_accbands_upperAcceleration band upper bn_spot_accbands_upper<0 → | SMA20 of high × (1 + 4·(H−L)/(H+L)). (upper ÷ close − 1) × 100 | 20 bars · 5 h | dev % open, usually within ±3 | -6.8 … 50.82 avg 1.02 · σ 1.17 | -7.91 … 52.08 avg 1.34 · σ 1.51 | 0.20 / 0.20 since 20200101.0500 | < 0: close above the acceleration band = breakout territory. |
bn_spot_accbands_lowerAcceleration band lower bn_spot_accbands_lower>0 → | SMA20 of low × (1 − 4·(H−L)/(H+L)). (lower ÷ close − 1) × 100 | 20 bars · 5 h | dev % open, usually within ±3 | -26.29 … 14.85 avg -1.03 · σ 1.06 | -33.46 … 17.55 avg -1.34 · σ 1.34 | 0.20 / 0.20 since 20200101.0500 | > 0: close below the lower acceleration band. |
MACD & price differences
Differences of prices, expressed as a percentage of the close so that they mean the same thing at $20,000 and at $120,000.
| Indicator | What it measures | Window | Unit | BTC observed | ETH observed | Null % B / E | How to read |
|---|---|---|---|---|---|---|---|
bn_spot_macdMACD line bn_spot_macd>0 and p:bn_spot_macd<=0 → | EMA12 minus EMA26, in % of the close. (EMA12 − EMA26) ÷ close × 100 | 12 / 26 / 9 (33-bar warm-up) | % of close open, signed | -11.46 … 2.78 avg 0.0036 · σ 0.3615 | -10.85 … 3.57 avg 0.0025 · σ 0.4744 | 0.30 / 0.30 since 20200101.0830 | > 0: bullish regime; < 0: bearish. Crossing zero upward = golden cross, downward = death cross. |
bn_spot_macd_signalMACD signal bn_spot_macd>bn_spot_macd_signal and p:b… → | EMA9 of the MACD line, in % of the close. EMA9(MACD) ÷ close × 100 | 12 / 26 / 9 | % of close open, signed | -9.15 … 2.52 avg 0.0036 · σ 0.3401 | -8.97 … 3.24 avg 0.0026 · σ 0.4469 | 0.30 / 0.30 since 20200101.0830 | MACD above its signal (macd > macd_signal) = momentum improving. |
bn_spot_macd_histMACD histogram Streak(bn_spot_macd_hist@entity)>=3 → | MACD minus its signal line, in % of the close. (MACD − signal) ÷ close × 100 | 12 / 26 / 9 | % of close open, signed | -2.63 … 2.4 avg -4.67e-5 · σ 0.1087 | -2.83 … 2.96 avg -9.34e-5 · σ 0.1415 | 0.30 / 0.30 since 20200101.0830 | Sign = which side of the signal line; growing bars = momentum building. Works well with Streak(). |
bn_spot_plus_dm+DM bn_spot_plus_dm>bn_spot_minus_dm*2 → | Wilder-smoothed upward directional movement. +DM14 ÷ close × 100 | 14 bars · 3.5 h | % of close 0 to … | 0.0471 … 26.28 avg 1.17 · σ 0.9308 | 0.0705 … 32.65 avg 1.54 · σ 1.16 | 0.16 / 0.16 since 20200101.0330 | Compare with minus_dm: plus_dm > minus_dm = buyers pushing the highs. |
bn_spot_minus_dm−DM bn_spot_minus_dm>bn_spot_plus_dm*2 → | Wilder-smoothed downward directional movement. −DM14 ÷ close × 100 | 14 bars · 3.5 h | % of close 0 to … | 0.0501 … 43.92 avg 1.25 · σ 1.15 | 0.0827 … 51.95 avg 1.66 · σ 1.51 | 0.16 / 0.16 since 20200101.0330 | minus_dm > plus_dm = sellers pushing the lows. |
bn_spot_trangeTrue range bn_spot_trange>=1 → | The previous bar's true range in % of the close. max(H−L, |H−prev C|, |L−prev C|) ÷ close × 100 | 1 bar | % of close 0 to … | 0 … 20.45 avg 0.4088 · σ 0.4149 | 0 … 26.26 avg 0.5359 · σ 0.5202 | 0.08 / 0.08 since 20200101.0030 | A single-bar volatility. ≥ 1 is a big bar for BTC. |
bn_spot_linearreg_slopeRegression slope bn_spot_linearreg_slope>0.1 → | Slope of the 14-bar regression line, in % of the close per bar. LINEARREG_SLOPE14 ÷ close × 100 | 14 bars · 3.5 h | % of close open, signed | -2.69 … 1.36 avg 5.04e-4 · σ 0.0946 | -2.6 … 1.71 avg 3.58e-4 · σ 0.1237 | 0.16 / 0.16 since 20200101.0330 | > 0 rising trend, < 0 falling; 0.1 = +0.1 % per 15 minutes. |
bn_spot_stddevStandard deviation bn_spot_stddev<0.2 → | One standard deviation of closes over 20 bars, in % of the close. STDDEV20 ÷ close × 100 | 20 bars · 5 h | % of close 0 to … | 0.0167 … 15.51 avg 0.4228 · σ 0.4141 | 0.0278 … 13.82 avg 0.5639 · σ 0.5254 | 0.20 / 0.20 since 20200101.0500 | Half the Bollinger band width. Low values = squeeze. |
bn_spot_avgdevAverage deviation bn_spot_avgdev>1 → | Mean absolute deviation of closes over 14 bars, in % of the close. AVGDEV14 ÷ close × 100 | 14 bars · 3.5 h | % of close 0 to … | 0.0093 … 10.63 avg 0.2937 · σ 0.3054 | 0.0134 … 11.03 avg 0.3917 · σ 0.3878 | 0.16 / 0.16 since 20200101.0330 | A robust cousin of stddev. |
Momentum & oscillators
Bounded indicators with the standard reading levels traders use. The translator applies these defaults when you say 'overbought' or 'oversold'.
| Indicator | What it measures | Window | Unit | BTC observed | ETH observed | Null % B / E | How to read |
|---|---|---|---|---|---|---|---|
bn_spot_rsiRSI bn_spot_rsi<=30 → | Relative strength index — the balance of recent up-closes vs down-closes. RSI(close, 14), Wilder smoothing | 14 bars · 3.5 h | 0–100 0 to 100 | 4.23 … 96.7 avg 50.49 · σ 11.19 | 4.87 … 95.57 avg 50.54 · σ 11.4 | 0.17 / 0.17 since 20200101.0345 | ≥ 70 overbought, ≤ 30 oversold, 50 neutral. |
bn_spot_adxADX bn_spot_adx>=25 and bn_spot_plus_di>bn_s… → | Trend strength regardless of direction. ADX(14) = Wilder average of DX | 14 bars (27-bar warm-up) | 0–100 0 to 100 | 4.93 … 80.47 avg 26.12 · σ 11.48 | 4.82 … 81.54 avg 26.89 · σ 11.56 | 0.26 / 0.26 since 20200101.0700 | ≥ 25 trending, ≥ 40 strong trend, < 20 no trend. The direction comes from plus_di / minus_di. |
bn_spot_adxrADX rating bn_spot_adxr>=30 → | Average of the current ADX and the ADX 14 bars ago. (ADX + ADX₋₁₄) ÷ 2 | 14 bars (40-bar warm-up) | 0–100 0 to 100 | 5.78 … 76.73 avg 26.12 · σ 10.38 | 5.93 … 78.18 avg 26.89 · σ 10.43 | 0.35 / 0.35 since 20200101.1015 | A smoother ADX; same levels. |
bn_spot_dxDX bn_spot_dx>=50 → | The unsmoothed directional index behind ADX. |+DI − −DI| ÷ (+DI + −DI) × 100 | 14 bars · 3.5 h | 0–100 0 to 100 | 2.00e-4 … 97.43 avg 26.12 · σ 19.08 | 1.00e-4 … 97.99 avg 26.9 · σ 19.27 | 0.17 / 0.17 since 20200101.0345 | Spiky; prefer adx for regimes. |
bn_spot_plus_di+DI bn_spot_plus_di>bn_spot_minus_di and p:b… → | Positive directional indicator. +DM14 ÷ TR14 × 100 | 14 bars · 3.5 h | 0–100 0 to 100 | 1.1 … 77.09 avg 20.9 · σ 7.81 | 1.02 … 83.12 avg 20.98 · σ 7.89 | 0.17 / 0.17 since 20200101.0345 | plus_di > minus_di = bullish direction; a cross is a classic entry. |
bn_spot_minus_di−DI bn_spot_minus_di>bn_spot_plus_di and bn_… → | Negative directional indicator. −DM14 ÷ TR14 × 100 | 14 bars · 3.5 h | 0–100 0 to 100 | 0.7351 … 80.84 avg 21.48 · σ 7.63 | 0.5549 … 79.87 avg 21.73 · σ 7.91 | 0.17 / 0.17 since 20200101.0345 | minus_di > plus_di = bearish direction. |
bn_spot_rocRate of change bn_spot_roc>=2 → | Percent change of the close over 10 bars. (close ÷ close₋₁₀ − 1) × 100 | 10 bars · 2.5 h | % depends on the indicator | -21.79 … 24.23 avg 0.0153 · σ 1.01 | -25.58 … 28.37 avg 0.0212 · σ 1.32 | 0.14 / 0.14 since 20200101.0245 | Already a percent: 2 = +2 % in 2.5 hours. |
bn_spot_ppoPercentage price oscillator bn_spot_ppo>0.5 → | MACD-style spread as a percent of the slow average. (SMA12 − SMA26) ÷ SMA26 × 100 | 12 / 26, SMA | % depends on the indicator | -12.22 … 6.2 avg 0.0072 · σ 0.5036 | -11.07 … 6.48 avg 0.0087 · σ 0.6579 | 0.24 / 0.24 since 20200101.0630 | Same sign logic as macd, slightly different scale. |
bn_spot_aroon_upAroon up bn_spot_aroon_up>=70 and bn_spot_aroon_d… → | How recently the 14-bar high was set (100 = on the latest bar). (14 − bars since the high) ÷ 14 × 100 | 14 bars · 3.5 h | 0–100 0 to 100 | 0 … 100 avg 46.99 · σ 35.92 | 0 … 100 avg 46.85 · σ 35.95 | 0.17 / 0.17 since 20200101.0345 | ≥ 70 with aroon_down ≤ 30 = fresh uptrend. |
bn_spot_aroon_downAroon down bn_spot_aroon_down>=70 and bn_spot_aroon… → | How recently the 14-bar low was set. (14 − bars since the low) ÷ 14 × 100 | 14 bars · 3.5 h | 0–100 0 to 100 | 0 … 100 avg 45.46 · σ 35.69 | 0 … 100 avg 44.61 · σ 35.54 | 0.17 / 0.17 since 20200101.0345 | ≥ 70 with aroon_up ≤ 30 = fresh downtrend. |
bn_spot_aroonoscAroon oscillator bn_spot_aroonosc>=50 → | Aroon up minus Aroon down. aroon_up − aroon_down | 14 bars · 3.5 h | −100–100 -100 to 100 | -100 … 100 avg 1.53 · σ 60.9 | -100 … 100 avg 2.23 · σ 60.85 | 0.17 / 0.17 since 20200101.0345 | > 0 bullish, < 0 bearish; ±50 strong. |
bn_spot_cciCommodity channel index bn_spot_cci<=-100 → | How far the typical price is from its average, scaled by the mean deviation. (TP − SMA(TP)) ÷ (0.015 · mean deviation), TP = (H+L+C)/3 | 14 bars · 3.5 h | CCI ±466.67 at most (14-bar CCI) | -466.7 … 466.7 avg 2.48 · σ 109.1 | -466.7 … 462.7 avg 2.83 · σ 109.4 | 0.16 / 0.16 since 20200101.0330 | ≥ 100 hot, ≤ −100 cold. The 14-bar formula cannot exceed ±466.67. |
bn_spot_cmoChande momentum bn_spot_cmo<=-50 → | Net up-moves vs down-moves over 14 bars. (Σup − Σdown) ÷ (Σup + Σdown) × 100 | 14 bars · 3.5 h | −100–100 -100 to 100 | -91.55 … 93.39 avg 0.9731 · σ 22.38 | -90.26 … 91.14 avg 1.07 · σ 22.8 | 0.17 / 0.17 since 20200101.0345 | ≥ 50 overbought, ≤ −50 oversold. |
bn_spot_imiIntraday momentum index bn_spot_imi<=30 → | Share of candle body that was green over 14 bars. Σ green bodies ÷ Σ all bodies × 100 | 14 bars · 3.5 h | 0–100 0 to 100 | 0 … 100 avg 50.53 · σ 15.4 | 0 … 100 avg 50.61 · σ 15.67 | 0.16 / 0.16 since 20200101.0330 | ≥ 70 overbought, ≤ 30 oversold (like an RSI of candle bodies). |
bn_spot_mfiMoney flow index bn_spot_mfi<=20 → | A volume-weighted RSI using typical price × volume. MFI(14) | 14 bars · 3.5 h | 0–100 0 to 100 | 0 … 100 avg 50.04 · σ 17.1 | 0 … 100 avg 50.16 · σ 17.83 | 0.17 / 0.17 since 20200101.0345 | ≥ 80 overbought, ≤ 20 oversold. |
bn_spot_stoch_kSlow stochastic %K bn_spot_stoch_k>bn_spot_stoch_d and p:bn… → | Where the close sits in the recent high-low range, smoothed. SMA3 of fast %K(5) | 5, 3, 3 (8-bar warm-up) | 0–100 0 to 100 | 0 … 100 avg 51.54 · σ 23.05 | 0.1705 … 100 avg 51.76 · σ 22.78 | 0.13 / 0.13 since 20200101.0215 | ≥ 80 overbought, ≤ 20 oversold; %K crossing above %D from below 20 is a classic buy setup. |
bn_spot_stoch_dSlow stochastic %D bn_spot_stoch_d>=80 → | The signal line of the slow stochastic. SMA3 of slow %K | 5, 3, 3 | 0–100 0 to 100 | 1.26 … 99.96 avg 51.54 · σ 21.12 | 1.3 … 99.27 avg 51.76 · σ 20.88 | 0.13 / 0.13 since 20200101.0215 | Use with stoch_k for crosses. |
bn_spot_stochf_kFast stochastic %K bn_spot_stochf_k<=5 → | The raw stochastic: close position inside the 5-bar range. (C − min L5) ÷ (max H5 − min L5) × 100 | 5 bars | 0–100 0 to 100 | 0 … 100 avg 51.54 · σ 28.31 | 0 … 100 avg 51.76 · σ 27.95 | 0.11 / 0.11 since 20200101.0145 | Very jumpy; 0 = closed at the 5-bar low. |
bn_spot_stochrsi_kStochastic RSI %K bn_spot_stochrsi_k<=10 → | A stochastic applied to RSI — RSI's position inside its own recent range. StochRSI(14, 5, 3) %K | RSI 14, stoch 5 / 3 (20-bar warm-up) | 0–100 0 to 100 | 0 … 100 avg 50.3 · σ 41.13 | 0 … 100 avg 50.5 · σ 41.07 | 0.21 / 0.21 since 20200101.0515 | ≥ 80 / ≤ 20; more extreme and faster than RSI. |
bn_spot_stochrsi_dStochastic RSI %D bn_spot_stochrsi_k>bn_spot_stochrsi_d an… → | The smoothed StochRSI line. SMA3 of stochrsi_k | RSI 14, stoch 5 / 3 | 0–100 0 to 100 | 0 … 100 avg 50.3 · σ 31.87 | 0 … 100 avg 50.5 · σ 31.87 | 0.21 / 0.21 since 20200101.0515 | Cross of stochrsi_k over stochrsi_d = momentum turn. |
bn_spot_trixTRIX bn_spot_trix>0 and p:bn_spot_trix<=0 → | One-bar percent change of a triple-smoothed EMA. ROC1 of EMA(EMA(EMA(close,30))) | 30 bars (88-bar warm-up) | % depends on the indicator | -0.5279 … 0.2402 avg 9.81e-4 · σ 0.0352 | -0.5549 … 0.3059 avg 0.0012 · σ 0.0463 | 0.67 / 0.67 since 20200101.2215 | Sign = smoothed trend direction; tiny numbers (std ≈ 0.035). |
bn_spot_ultoscUltimate oscillator bn_spot_ultosc<=30 → | Buying pressure averaged over three windows. ULTOSC(7, 14, 28) | 7 / 14 / 28 | 0–100 0 to 100 | 11.77 … 89.21 avg 51.11 · σ 8.59 | 13 … 86.11 avg 51.18 · σ 8.45 | 0.26 / 0.26 since 20200101.0715 | ≥ 70 overbought, ≤ 30 oversold. |
bn_spot_willrWilliams %R bn_spot_willr<=-80 → | Close position inside the 14-bar range, on a −100…0 scale. (max H − C) ÷ (max H − min L) × −100 | 14 bars · 3.5 h | −100–0 -100 to 0 | -100 … 0 avg -47.89 · σ 27.01 | -100 … 0 avg -47.62 · σ 26.7 | 0.16 / 0.16 since 20200101.0330 | ≥ −20 overbought, ≤ −80 oversold. |
bn_spot_bopBalance of power bn_spot_bop>=0.8 → | How much of the bar's range the close won from the open. (C − O) ÷ (H − L) | 1 bar | −1–1 -1 to 1 | -1 … 1 avg 0.0058 · σ 0.5368 | -1 … 1 avg 0.0077 · σ 0.5306 | 0.07 / 0.07 since 20200101.0015 | +1 = opened at the low and closed at the high; −1 the reverse. |
bn_spot_natrNormalized ATR bn_spot_natr>=1 → | Average true range as a percent of the price. ATR14 ÷ close × 100 | 14 bars · 3.5 h | % 0 to … | 0.017 … 7.18 avg 0.4086 · σ 0.2888 | 0.0203 … 8.28 avg 0.5355 · σ 0.3602 | 0.17 / 0.17 since 20200101.0345 | The everyday volatility gauge: ≈ 0.4 % is typical for BTC, ≥ 1 is a wild stretch. |
Candle shape
The size and shape of the previous bar.
| Indicator | What it measures | Window | Unit | BTC observed | ETH observed | Null % B / E | How to read |
|---|---|---|---|---|---|---|---|
bn_spot_rangeBar range bn_spot_range>=1 → | Height of the bar (high − low) as a % of the close before it. (H − L) ÷ prev close × 100 | 1 bar | % 0 to … | 0 … 24.34 avg 0.4088 · σ 0.4139 | 0 … 25.6 avg 0.5357 · σ 0.5188 | 0.08 / 0.08 since 20200101.0030 | ≥ 1 is a big bar for BTC; the average is ≈ 0.4. |
bn_spot_bodyCandle body bn_spot_body>=1 → | Close vs open as a signed percent. (C − O) ÷ O × 100 | 1 bar | % open, signed | -11.92 … 22.61 avg 0.0016 · σ 0.3367 | -11.56 … 23.77 avg 0.0022 · σ 0.4325 | 0.07 / 0.07 since 20200101.0015 | > 0 green, < 0 red; ≥ 1 = a big green candle. |
bn_spot_clvClose location value bn_spot_clv>=0.8 → | Where the close sits inside the bar. (2C − H − L) ÷ (H − L); null when H = L | 1 bar | −1–1 -1 to 1 | -1 … 1 avg 0.0175 · σ 0.6203 | -1 … 1 avg 0.0195 · σ 0.61 | 0.08 / 0.08 since 20200101.0015 | +1 closed at the high, −1 at the low; |clv| ≥ 0.8 is an 'extreme' close. |
Returns
Log returns over several horizons, already in percent. ret_log is the 15-minute return of the previous bar; the short / mid / long names are 1 h, 4 h and 8 h.
| Indicator | What it measures | Window | Unit | BTC observed | ETH observed | Null % B / E | How to read |
|---|---|---|---|---|---|---|---|
bn_spot_ret_log1-bar return abs(bn_spot_ret_log)>=1 → | Log return of the previous bar. ln(C ÷ C₋₁) × 100 | 1 bar · 15 min | % open, signed | -12.69 … 20.4 avg 0.001 · σ 0.3364 | -12.39 … 21.32 avg 0.0012 · σ 0.4323 | 0.08 / 0.08 since 20200101.0030 | ±1 is a sharp 15-minute move for BTC (std ≈ 0.34). |
bn_spot_ret_log_short1-hour return bn_spot_ret_log_short>=2 → | Log return over the last 4 bars. ln(C ÷ C₋₄) × 100 | 4 bars · 1 h | % open, signed | -20.1 … 25.94 avg 0.0041 · σ 0.6581 | -24.79 … 31.83 avg 0.005 · σ 0.8536 | 0.10 / 0.10 since 20200101.0115 | ±2 = a sharp hour. |
bn_spot_ret_log_mid4-hour return bn_spot_ret_log_mid<=-2 → | Log return over the last 16 bars. ln(C ÷ C₋₁₆) × 100 | 16 bars · 4 h | % open, signed | -41.57 … 26.19 avg 0.0163 · σ 1.28 | -40.41 … 30.23 avg 0.0197 · σ 1.67 | 0.18 / 0.18 since 20200101.0415 | std ≈ 1.3. |
bn_spot_ret_log_long8-hour return bn_spot_ret_log_long>=3 → | Log return over the last 32 bars. ln(C ÷ C₋₃₂) × 100 | 32 bars · 8 h | % open, signed | -45.6 … 35.05 avg 0.0325 · σ 1.78 | -47.87 … 37.47 avg 0.0389 · σ 2.33 | 0.29 / 0.29 since 20200101.0815 | std ≈ 1.8. |
bn_spot_weighted_ret_by_volumeVolume-weighted mean return bn_spot_weighted_ret_by_volume>0.05 → | Average 1-bar return over the day, weighting bars by their volume. Σ(ret·vol) ÷ Σvol × 100 | 96 bars · 1 day | % open, signed | -2.05 … 1.13 avg -0.0067 · σ 0.1169 | -2.47 … 1.93 avg -0.0128 · σ 0.1633 | 0.73 / 0.73 since 20200102.0015 | > 0: the heavy-volume bars were up bars. |
bn_spot_signed_return_run_sumRun return bn_spot_signed_return_run_sum>=2 → | Cumulative return of the current same-sign run of bars. Σ ret_log while the sign persists; resets on a sign change, a zero or a gap | current run | % open, signed | -21.18 … 29 avg 0.0052 · σ 0.6342 | -24.79 … 29.6 avg 0.0113 · σ 0.8254 | 0.08 / 0.08 since 20200101.0030 | How far the current push has already gone: ≥ 2 = a 2 % run without a red bar. |
bn_spot_ret_medianMedian return bn_spot_ret_median>0.02 → | Median 1-bar return of the last day. median(ret_log over 96) | 96 bars · 1 day | % open, signed | -0.3619 … 0.4075 avg 0.0011 · σ 0.0313 | -0.5058 … 0.3603 avg 0.0028 · σ 0.0409 | 0.73 / 0.73 since 20200102.0015 | Tiny numbers (±0.03); the sign tells the day's typical bar. |
bn_spot_ret_q10Return 10th percentile bn_spot_ret_q10<=-0.6 → | The 10 % worst 1-bar return of the last two days. quantile(ret_log, 0.10) over 192 | 192 bars · 2 days | % open, signed | -2.78 … -0.0385 avg -0.2918 · σ 0.1803 | -3.24 … -0.0411 avg -0.3886 · σ 0.2403 | 1.38 / 1.38 since 20200103.0015 | Typically −0.3; ≤ −0.6 marks a turbulent two days. |
bn_spot_ret_q90Return 90th percentile bn_spot_ret_q90>=0.6 → | The 10 % best 1-bar return of the last two days. quantile(ret_log, 0.90) over 192 | 192 bars · 2 days | % open, signed | 0.044 … 1.95 avg 0.2962 · σ 0.1745 | 0.0481 … 2.63 avg 0.3897 · σ 0.2258 | 1.38 / 1.38 since 20200103.0015 | Typically +0.3. |
bn_spot_finite_decay_retDecay-weighted return bn_spot_finite_decay_ret>=0.2 → | An average of recent returns that forgets old bars quickly (weights 0.9ⁱ). Σ 0.9ⁱ·ret₋ᵢ ÷ Σ 0.9ⁱ × 100 | 32 bars · 8 h, factor 0.9 | % open, signed | -2.55 … 1.21 avg 0.001 · σ 0.076 | -2.61 … 1.83 avg 0.0012 · σ 0.0992 | 0.29 / 0.29 since 20200101.0815 | A fast momentum reading; ≥ 0.2 is strong. |
Volatility & return distribution
How wide and how skewed the recent return distribution is.
| Indicator | What it measures | Window | Unit | BTC observed | ETH observed | Null % B / E | How to read |
|---|---|---|---|---|---|---|---|
bn_spot_rv_shortRealized volatility 4 h bn_spot_rv_short>=1 → | Standard deviation of 1-bar returns over 4 hours, in %. std(ret_log over 16) × 100 | 16 bars · 4 h | % 0 to … | 0.0124 … 7.12 avg 0.2526 · σ 0.2072 | 0.0147 … 8.09 avg 0.3324 · σ 0.2559 | 0.18 / 0.18 since 20200101.0415 | Average ≈ 0.26; ≥ 1 is very volatile. |
bn_spot_rv_longRealized volatility 1 d bn_spot_rv_long<=0.15 → | Standard deviation of 1-bar returns over a day, in %. std(ret_log over 96) × 100 | 96 bars · 1 day | % 0 to … | 0.0278 … 3.81 avg 0.2784 · σ 0.1857 | 0.0314 … 4.22 avg 0.3638 · σ 0.2291 | 0.73 / 0.73 since 20200102.0015 | Average ≈ 0.28. rv_rank ranks this value over 7 days. |
bn_spot_ret_skewReturn skew bn_spot_ret_skew<=-1.5 → | Skewness of the day's 1-bar returns. unbiased sample skew over 96 | 96 bars · 1 day | ratio open | -9.01 … 8.07 avg -0.0383 · σ 1.2 | -8.94 … 8.43 avg -0.0469 · σ 1.23 | 0.73 / 0.73 since 20200102.0015 | > 0: a few big up bars; < 0: a few big down bars. |
bn_spot_ret_kurtReturn kurtosis bn_spot_ret_kurt>=10 → | Excess kurtosis (fat tails) of two days of returns. unbiased excess kurtosis over 192 (normal = 0) | 192 bars · 2 days | ratio open | -0.5075 … 166.8 avg 7.13 · σ 10.26 | -0.608 … 163.4 avg 6.99 · σ 10.85 | 1.38 / 1.38 since 20200103.0015 | High values mean a couple of outlier bars dominate the window. |
bn_spot_ret_ir_shortInformation ratio 8 h bn_spot_ret_ir_short>=0.3 → | Mean return divided by its volatility over 8 hours. mean(ret) ÷ std(ret) over 32 | 32 bars · 8 h | ratio open | -0.913 … 0.7148 avg 0.0075 · σ 0.16 | -0.7103 … 0.6614 avg 0.0083 · σ 0.1635 | 0.29 / 0.29 since 20200101.0815 | A smooth-trend score: ≥ 0.3 = a steady climb. |
bn_spot_ret_ir_longInformation ratio 1 d bn_spot_ret_ir_long<=-0.2 → | Mean return divided by its volatility over a day. mean(ret) ÷ std(ret) over 96 | 96 bars · 1 day | ratio open | -0.3715 … 0.3682 avg 0.0066 · σ 0.0935 | -0.3555 … 0.4596 avg 0.007 · σ 0.0955 | 0.73 / 0.73 since 20200102.0015 | ≤ −0.2 = a steady slide. |
bn_spot_ret_moment33rd central moment bn_spot_ret_moment3<-5 → | Third central moment of % returns (raw skew information). E[(r − r̄)³] × 100³ | 192 bars · 2 days | %³ / %⁴ open | -20.23 … 44.65 avg 0.0155 · σ 0.9689 | -19.87 … 61.1 avg 0.0177 · σ 1.45 | 1.38 / 1.38 since 20200103.0015 | Sign like skew; use ret_skew unless you need the raw moment. |
bn_spot_ret_moment44th central moment bn_spot_ret_moment4>=20 → | Fourth central moment of % returns (raw tail information). E[(r − r̄)⁴] × 100⁴ | 192 bars · 2 days | %³ / %⁴ 0 to … | 0 … 1,272 avg 1.54 · σ 35.05 | 0 … 1,622 avg 2.42 · σ 45.23 | 1.38 / 1.38 since 20200103.0015 | Always ≥ 0; spikes with crash bars. |
bn_spot_ret_l2Return energy 8 h bn_spot_ret_l2>=4 → | Root of the sum of squared returns over 8 hours. √Σ ret² × 100 | 32 bars · 8 h | % 0 to … | 0.0997 … 31.3 avg 1.52 · σ 1.15 | 0.1249 … 34.47 avg 1.99 · σ 1.42 | 0.29 / 0.29 since 20200101.0815 | Average ≈ 1.6; ≥ 4 is a stormy 8 hours. |
bn_spot_range_l2Range energy 8 h bn_spot_range_l2>=6 → | Root of the sum of squared bar ranges over 8 hours. √Σ range² × 100 | 32 bars · 8 h | % 0 to … | 0.1261 … 47.69 avg 2.65 · σ 1.95 | 0.1664 … 54.8 avg 3.46 · σ 2.42 | 0.29 / 0.29 since 20200101.0815 | Average ≈ 2.7. |
Percentile ranks
Where the latest value sits inside its own recent window, from 0 to 1. Ranks are the easiest way to say 'unusually high' without picking a number.
| Indicator | What it measures | Window | Unit | BTC observed | ETH observed | Null % B / E | How to read |
|---|---|---|---|---|---|---|---|
bn_spot_ret_rank_shortReturn rank 1 d bn_spot_ret_rank_short>=0.95 → | Percentile of the latest 1-bar return within the day. rank(ret_log) ÷ 96, ties averaged | 96 bars · 1 day | rank 0–1 0 to 1 | 0.0104 … 1 avg 0.5044 · σ 0.2885 | 0.0104 … 1 avg 0.5046 · σ 0.2885 | 0.73 / 0.73 since 20200102.0015 | ≥ 0.95 = one of the five best bars of the day. |
bn_spot_ret_rank_longReturn rank 2 d bn_spot_ret_rank_long<=0.05 → | The same over two days. rank(ret_log) ÷ 192 | 192 bars · 2 days | rank 0–1 0 to 1 | 0.0052 … 1 avg 0.5021 · σ 0.2889 | 0.0052 … 1 avg 0.5021 · σ 0.2887 | 1.38 / 1.38 since 20200103.0015 | ≤ 0.05 = a bottom-5 % bar over two days. |
bn_spot_volume_rank_shortVolume rank 1 d bn_spot_volume_rank_short>=0.9 → | Percentile of the latest volume within the day. rank(volume) ÷ 96 | 96 bars · 1 day | rank 0–1 0 to 1 | 0.0104 … 1 avg 0.4976 · σ 0.2987 | 0.0104 … 1 avg 0.4977 · σ 0.2972 | 0.72 / 0.72 since 20200102.0000 | ≥ 0.9 = a heavy bar for today. |
bn_spot_volume_rank_longVolume rank 7 d bn_spot_volume_rank_long>=0.95 → | Percentile of the latest volume within the week. rank(volume) ÷ 672 | 672 bars · 7 days | rank 0–1 0 to 1 | 0.0015 … 1 avg 0.4984 · σ 0.2935 | 0.0015 … 1 avg 0.497 · σ 0.2944 | 4.43 / 4.43 since 20200108.0000 | ≥ 0.95 = a volume spike by weekly standards (the stricter one). |
bn_spot_range_rankRange rank 1 d bn_spot_range_rank>=0.95 → | Percentile of the latest bar height within the day. rank(range) ÷ 96 | 96 bars · 1 day | rank 0–1 0 to 1 | 0.0104 … 1 avg 0.499 · σ 0.2963 | 0.0104 … 1 avg 0.4993 · σ 0.2951 | 0.73 / 0.73 since 20200102.0015 | ≥ 0.95 = one of the biggest bars today. |
bn_spot_clv_rankCLV rank 1 d bn_spot_clv_rank>=0.9 → | Percentile of the latest close-location value within the day. rank(clv) ÷ 96 | 96 bars · 1 day | rank 0–1 0 to 1 | 0.0104 … 1 avg 0.505 · σ 0.2884 | 0.0104 … 1 avg 0.5051 · σ 0.2882 | 0.73 / 0.73 since 20200102.0000 | High = closes near the high are unusual today. |
bn_spot_rv_rankVolatility rank 7 d bn_spot_rv_rank<=0.15 → | Percentile of today's realized volatility (rv_long) within the week. rank(rv_long) ÷ 672 | 672 bars (768-bar warm-up) | rank 0–1 0 to 1 | 0.0015 … 1 avg 0.4851 · σ 0.3105 | 0.0015 … 1 avg 0.4859 · σ 0.3119 | 5.00 / 5.00 since 20200109.0000 | ≤ 0.15 squeeze (calm), ≥ 0.9 explosion. |
bn_spot_emv_rankEMV rank 1 d bn_spot_emv_rank>=0.9 → | Percentile of ease-of-movement within the day. rank(emv) ÷ 96 | 96 bars (121-bar warm-up) | rank 0–1 0 to 1 | 0.0104 … 1 avg 0.5029 · σ 0.2999 | 0.0104 … 1 avg 0.5025 · σ 0.2997 | 0.90 / 0.90 since 20200102.0630 | High = price moving easily on little volume. |
Regression & correlation
Trend fits of the log price and the relationship between returns and volume changes.
| Indicator | What it measures | Window | Unit | BTC observed | ETH observed | Null % B / E | How to read |
|---|---|---|---|---|---|---|---|
bn_spot_logprice_slopeLog-price trend slope bn_spot_logprice_slope>=0.02 → | Slope of ln(close) against time over the last day, in % per bar. LINEARREG_SLOPE(ln C, 96) × 100 | 96 bars · 1 day | % open, signed | -0.5391 … 0.2278 avg 9.67e-4 · σ 0.0353 | -0.5861 … 0.3044 avg 0.0012 · σ 0.0465 | 0.72 / 0.72 since 20200102.0000 | 0.02 ≈ +2 % per day of steady drift; the sign = trend direction. |
bn_spot_logprice_residLog-price trend residual bn_spot_logprice_resid<=-2 → | How far the close is above (+) or below (−) its own 1-day trend line, in %. (ln C − LINEARREG(ln C, 96)) × 100 | 96 bars · 1 day | % open, signed | -22.79 … 14.8 avg -0.0014 · σ 1.08 | -25.55 … 20.51 avg -0.0017 · σ 1.42 | 0.72 / 0.72 since 20200102.0000 | ≥ 2 overheated vs its trend; ≤ −2 washed out. |
bn_spot_ret_dlogvol_corrReturn–volume correlation bn_spot_ret_dlogvol_corr>=0.3 → | Correlation between 1-bar returns and changes in log volume over a day. CORREL(ret_log, Δln volume, 96) | 96 bars · 1 day | −1–1 -1 to 1 | -0.6266 … 0.6196 avg -0.0196 · σ 0.2076 | -0.6831 … 0.6091 avg -0.0299 · σ 0.214 | 0.73 / 0.73 since 20200102.0015 | > 0: volume rises on up bars (buyers active); < 0: volume rises on down bars. |
bn_spot_ret_dlogvol_partial_corrPartial correlation (range-controlled) bn_spot_ret_dlogvol_partial_corr<=-0.2 → | The same correlation after removing the effect of bar range. partial r(ret, Δln vol | range) over 192 | 192 bars · 2 days | −1–1 -1 to 1 | -0.4011 … 0.3691 avg -0.0173 · σ 0.1116 | -0.4541 … 0.3327 avg -0.0278 · σ 0.1082 | 1.39 / 1.39 since 20200103.0015 | Same reading, less driven by volatility. |
bn_spot_ret_dlogvol_slopeReturn-on-volume beta bn_spot_ret_dlogvol_slope>0.1 → | How much return a unit change in log volume 'buys', in %. β of ret_log ~ Δln volume over 96, × 100 | 96 bars · 1 day | % open, signed | -2.28 … 1.35 avg -0.0193 · σ 0.1528 | -2.64 … 1.51 avg -0.032 · σ 0.1875 | 0.73 / 0.73 since 20200102.0015 | Positive = volume expansion coincides with up moves. |
bn_spot_ret_dlogvol_residReturn-on-volume residual abs(bn_spot_ret_dlogvol_resid)>=1 → | The part of the last return that volume does not explain, in %. ret − β·Δln vol − α | 96 bars · 1 day | % open, signed | -11.9 … 21.68 avg -2.17e-4 · σ 0.3286 | -11.8 … 22.26 avg -3.12e-4 · σ 0.4223 | 0.73 / 0.73 since 20200102.0015 | Large |value| = a move that volume did not accompany. |
bn_spot_ret_multivar_residMultivariate return residual abs(bn_spot_ret_multivar_resid)>=1 → | Return unexplained by volume change, bar range and CLV together, in %. residual of ret ~ [1, Δln vol, range, clv] over 192 | 192 bars · 2 days | % open, signed | -6.27 … 18.75 avg 0.0014 · σ 0.2376 | -5.84 … 18.77 avg 0.0027 · σ 0.3004 | 1.39 / 1.39 since 20200103.0015 | Surprise moves relative to the usual microstructure. |
Volume & money flow
Who is doing the trading. ad, adosc and obv are cumulative in exchange units, so compare their CHANGE, not their level.
| Indicator | What it measures | Window | Unit | BTC observed | ETH observed | Null % B / E | How to read |
|---|---|---|---|---|---|---|---|
bn_spot_adAccumulation / distribution line bn_spot_ad-p16:bn_spot_ad>0 → | Chaikin's running sum of CLV × volume. Σ clv × volume | cumulative | exchange units as served by the exchange | -145,290 … 267,994 avg 11,489 · σ 32,555 | -1,519,000 … 2,395,000 avg 110,451 · σ 295,155 | 0.07 / 0.07 since 20200101.0015 | Never compare the level; use differences: {P}_ad-p16:{P}_ad>0. |
bn_spot_adoscChaikin oscillator bn_spot_adosc>0 and p:bn_spot_adosc<=0 → | Fast minus slow EMA of the A/D line. EMA3(AD) − EMA10(AD) | EMA 3 / 10 (9-bar warm-up) | exchange units as served by the exchange | -24,177 … 22,853 avg 52.62 · σ 694.5 | -116,387 … 92,586 avg 512 · σ 5,627 | 0.13 / 0.13 since 20200101.0230 | > 0 accumulation, < 0 distribution (exchange units, feed-specific size). |
bn_spot_obvOn-balance volume bn_spot_obv-p4:bn_spot_obv>0 → | Volume added on up bars and subtracted on down bars. Σ ±volume | cumulative | exchange units as served by the exchange | -443,805 … 446,912 avg 1,506 · σ 46,463 | -2,376,000 … 1,684,000 avg -6,944 · σ 350,538 | 0.07 / 0.07 since 20200101.0015 | Use changes: {P}_obv-p4:{P}_obv>0 = net buying volume in the last hour. |
bn_spot_volume_return_split_imbalanceVolume split imbalance bn_spot_volume_return_split_imbalance>=0.3 → | Volume on the 16 best-return bars vs the 16 worst, over a day. (vol_top16 − vol_bottom16) ÷ (vol_top16 + vol_bottom16) | 96 bars, top / bottom 16 | −1–1 -1 to 1 | -0.7156 … 0.7952 avg -0.0091 · σ 0.1596 | -0.7357 … 0.8172 avg -0.0174 · σ 0.1806 | 0.73 / 0.73 since 20200102.0015 | > 0: the day's volume concentrated on up moves. |
bn_spot_emvEase of movement bn_spot_emv>0.5 → | How far the price moves per unit of volume. tdx EMV(14) | 14 bars (26-bar warm-up) | ratio open | -2.5 … 2.42 avg 1.67e-4 · σ 0.0831 | -3.02 … 2.94 avg -1.68e-4 · σ 0.1057 | 0.25 / 0.25 since 20200101.0645 | Large positive = rising easily on light volume. |
bn_spot_vr_logLog volume ratio bn_spot_vr_log>=0.5 → | Log ratio of up-bar volume to down-bar volume over 12 hours. ln((2·up + flat + ε) ÷ (2·down + flat + ε)) | 48 bars · 12 h | ratio open | -2.07 … 1.78 avg -0.0015 · σ 0.3627 | -1.96 … 2.09 avg -0.0028 · σ 0.3872 | 0.40 / 0.40 since 20200101.1215 | > 0 more volume on up bars. |
bn_spot_vr_imbalanceVolume imbalance bn_spot_vr_imbalance<=-0.3 → | Up-bar volume minus down-bar volume as a share of all volume, over 12 hours. (up − down) ÷ (up + down + flat) | 48 bars · 12 h | −1–1 -1 to 1 | -0.7766 … 0.7107 avg -7.03e-4 · σ 0.175 | -0.7531 … 0.7796 avg -0.0014 · σ 0.1864 | 0.40 / 0.40 since 20200101.1215 | ≤ −0.3 heavy selling volume; ≥ 0.3 heavy buying volume. |
Event distance & streaks
How long ago something happened, stored as ln(1 + bars) so a query can say 'just now' (= 0) or 'more than a day ago' (≥ 4.5747). Null means no such event inside the 672-bar window.
| Indicator | What it measures | Window | Unit | BTC observed | ETH observed | Null % B / E | How to read |
|---|---|---|---|---|---|---|---|
bn_spot_bars_since_volume_spikeBars since volume spike bn_spot_bars_since_volume_spike=0 → | Time since the last volume spike (volume_rank_long ≥ 0.95). ln(1 + bars), cap 672 | 672-bar window and cap | ln(1+bars) 0 to 6.51 | 0 … 5.25 avg 3.01 · σ 1.29 | 0 … 5.25 avg 2.98 · σ 1.29 | 15.47 / 13.49 since 20200108.0015 | 0 = the spike was the previous bar; null = none in the last 7 days. |
bn_spot_bars_since_range_spikeBars since range spike bn_spot_bars_since_range_spike<=1.6094 → | Time since the last bar-height spike (range rank over 672 ≥ 0.95). ln(1 + bars), cap 672 | 672-bar window and cap | ln(1+bars) 0 to 6.51 | 0 … 5.26 avg 2.91 · σ 1.29 | 0 … 5.25 avg 2.89 · σ 1.29 | 13.48 / 11.99 since 20200108.0015 | ≤ 1.6094 = within the last hour. |
bn_spot_bars_since_high_breakoutBars since high breakout bn_spot_bars_since_high_breakout=0 → | Time since the close last broke above the prior 96-bar high. ln(1 + bars), cap 672 | 672-bar cap | ln(1+bars) 0 to 6.51 | 0 … 6.51 avg 4.21 · σ 1.35 | 0 … 6.51 avg 4.21 · σ 1.37 | 4.64 / 5.09 since 20200108.0015 | 0 = breakout on the previous bar. |
bn_spot_bars_since_low_breakoutBars since low breakout bn_spot_bars_since_low_breakout=0 → | Time since the close last broke below the prior 96-bar low. ln(1 + bars), cap 672 | 672-bar cap | ln(1+bars) 0 to 6.51 | 0 … 6.51 avg 4.38 · σ 1.35 | 0 … 6.51 avg 4.41 · σ 1.33 | 6.43 / 6.09 since 20200108.0015 | 0 = breakdown on the previous bar. |
bn_spot_trend_streakTrend streak bn_spot_trend_streak>=3.4965 → | Consecutive bars with the close above EMA20. ln(1 + run length), cap 672 | EMA 20, cap 672 | ln(1+bars) 0 to 6.51 | 0 … 4.74 avg 1.06 · σ 1.21 | 0 … 4.96 avg 1.07 · σ 1.23 | 0.20 / 0.20 since 20200101.0500 | ≥ 3.4965 = 32 bars (8 h) above the EMA. For arbitrary runs use Streak(). |
bn_spot_positive_return_streakGreen streak bn_spot_positive_return_streak>=1.7918 → | Consecutive bars with a positive 1-bar return. ln(1 + run length), cap 96 | cap 96 | ln(1+bars) 0 to 4.57 | 0 … 2.71 avg 0.4928 · σ 0.5498 | 0 … 2.77 avg 0.4958 · σ 0.5521 | 0.08 / 0.08 since 20200101.0030 | 1.7918 = 5 in a row. |
bn_spot_bars_since_clv_extremeBars since extreme close bn_spot_bars_since_clv_extreme=0 → | Time since a bar closed at an extreme (|clv| ≥ 0.8). ln(1 + bars), cap 672 | 672-bar window and cap | ln(1+bars) 0 to 6.51 | 0 … 3.99 avg 1.08 · σ 0.8374 | 0 … 3.89 avg 1.12 · σ 0.8308 | 4.43 / 4.43 since 20200108.0015 | 0 = the previous bar closed at its high or low. |
bn_spot_barssincen_volume_spikeBars since volume spike (raw) bn_spot_barssincen_volume_spike<=4 → | The same distance as bars_since_volume_spike, but as a plain count. bars since volume_rank_long ≥ 0.95, 0–671 | 672 bars | bars 0 to 671 | 0 … 191 avg 101.2 · σ 42.39 | 0 … 191 avg 104.1 · σ 42.31 | 15.47 / 13.49 since 20200108.0015 | ≤ 4 = within the last hour. |
Raw candle columns on this feed
The row's own bar, in exchange units (USDT). Only taker_buy_ratio is lagged like an indicator.
| Column | Meaning | Bar | BTC observed | ETH observed | Null % B / E |
|---|---|---|---|---|---|
bn_spot_openOpen | First trade price of the bar. | this bar | 3,889 … 126,011 avg 49,705 · σ 30,873 | 88.44 … 4,943 avg 2,162 · σ 1,124 | 0.07 / 0.07 since 20200101.0000 |
bn_spot_highHigh | Highest trade price of the bar. | this bar | 4,241 … 126,200 avg 49,797 · σ 30,914 | 97.66 … 4,957 avg 2,168 · σ 1,127 | 0.07 / 0.07 since 20200101.0000 |
bn_spot_lowLow | Lowest trade price of the bar. | this bar | 3,782 … 125,648 avg 49,610 · σ 30,832 | 86 … 4,934 avg 2,157 · σ 1,121 | 0.07 / 0.07 since 20200101.0000 |
bn_spot_closeClose | Last trade price of the bar. | this bar | 3,882 … 126,011 avg 49,705 · σ 30,873 | 88.35 … 4,943 avg 2,162 · σ 1,124 | 0.07 / 0.07 since 20200101.0000 |
bn_spot_volumeVolume | Traded amount in the base coin (BTC or ETH). | this bar | 0 … 40,371 avg 712.1 · σ 1,163 | 0 … 256,455 avg 6,313 · σ 8,169 | 0.07 / 0.07 since 20200101.0000 |
bn_spot_quote_volumeQuote volume | Traded amount in the quote currency (USDT / KRW). | this bar | 0 … 1.09e+9 avg 23,540,000 · σ 30,650,000 | 0 … 578,900,000 avg 12,250,000 · σ 17,200,000 | 0.07 / 0.07 since 20200101.0000 |
bn_spot_tradesTrades | Number of trades in the bar. | this bar | 0 … 1,755,000 avg 27,493 · σ 32,347 | 0 … 1,269,000 avg 18,040 · σ 26,713 | 0.07 / 0.07 since 20200101.0000 |
bn_spot_taker_buy_baseTaker buy volume | Volume bought at market (aggressive buys), base units. | this bar | 0 … 19,926 avg 351.6 · σ 581.1 | 0 … 128,878 avg 3,136 · σ 4,079 | 0.07 / 0.07 since 20200101.0000 |
bn_spot_taker_buy_quoteTaker buy quote volume | The same in quote currency. | this bar | 0 … 561,900,000 avg 11,610,000 · σ 15,400,000 | 0 … 324,800,000 avg 6,084,000 · σ 8,590,000 | 0.07 / 0.07 since 20200101.0000 |
bn_spot_taker_buy_ratioTaker buy ratio | taker_buy_base ÷ volume of the previous bar: the share of volume that was market buying (0–1). ≥ 0.55 = buyers dominant. | previous bar | 0.0772 … 0.9429 avg 0.4888 · σ 0.0887 | 0.0862 … 0.931 avg 0.4968 · σ 0.0877 | 0.08 / 0.08 since 20200101.0015 |
Cross-market columns
These have no feed prefix. They are computed from two feeds at the same bar and lagged like indicators.
| Column | Meaning | Range | Example |
|---|---|---|---|
x_binance_basisBinance basis | Binance perpetual vs spot close, in %. Positive = futures trade above spot (contango / long demand). | observed −9.6 … +1.5, typically ±0.07 | x_binance_basis>0.1 |
x_okx_basisOKX basis | OKX perpetual vs spot close, in %. | observed −7.0 … +7.5 | x_okx_basis<0 |
x_krw_premiumKimchi premium | Upbit price (converted to USDT with the Upbit KRW/USDT rate) vs Binance, in %. Negative = 'reverse premium'. | observed −10.3 … +6.8; available from 2024-06-07 | x_krw_premium<0 |
Identity and calendar columns
Derived from the bar's UTC start time — never from a clock — so they are identical in history and live.
| Column | Meaning | Values | Example |
|---|---|---|---|
dateBar start (UTC) | YYYYMMDD.HHMM as a number. The bar that opened at 09:30 UTC on 1 Sep 2026 is 20260901.0930 (results show 20260901.093 because trailing zeros are dropped). | 20200101.0000 and up | date>=today-7 |
entityCoin | BTC or ETH — one row per coin per bar. | BTC, ETH | entity=ETH |
dayWeekday | Monday … Sunday in UTC. Quote it. | Monday–Sunday | day in ('Saturday','Sunday') |
day_numDay of month | 1–31. | 1–31 | day_num=1 |
monthMonth | 1–12. | 1–12 | month=12 |
yearYear | Four-digit year. | 2020 and up | year>=2024 |
hour_progressMinute of the hour, % | 0, 25, 50 or 75: which quarter of the hour the bar starts in. 0 = the bar on the hour. | 0 / 25 / 50 / 75 | hour_progress=0 |
day_progressTime of day, % | Minutes since 00:00 UTC ÷ 1440 × 100. 0 = the midnight bar; 50 = the 12:00 bar; each bar adds 1.0417. | 0 … 98.96 | day_progress=0 |
month_progressProgress through the month, % | Minutes since the 1st ÷ minutes in the month × 100. | 0 … <100 | month_progress<5 |
year_progressProgress through the year, % | Minutes since 1 January ÷ minutes in the year × 100. | 0 … <100 | year_progress>=95 |
intervalInterval | Always 15 (minutes). | 15 | interval=15 |
What each feed carries
| bn_spot | bn_perp | okx_spot | okx_perp | cb_spot | up_spot | |
|---|---|---|---|---|---|---|
| 110 indicators | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| open · high · low · close · volume | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| quote_volume | ✓ | ✓ | ✓ | ✓ | — | ✓ |
| trades · taker_buy_base · taker_buy_quote · taker_buy_ratio | ✓ | ✓ | — | — | — | — |
| price currency | USDT | USDT | USDT | USDT | USD | KRW |
The internal up_krwusdt feed (Upbit KRW/USDT rate, from 7 June 2024) exists only to build x_krw_premium; it is not selectable in the app.
Standard reading levels
When a plain-language question says “overbought”, “spike” or “squeeze” without a number, the translator uses these conventional levels. They are starting points, not rules — the observed ranges above show what each indicator really does.
| Indicator | Levels |
|---|---|
rsi | ≥ 70 overbought · ≤ 30 oversold |
mfi | ≥ 80 · ≤ 20 |
stoch_k / stoch_d / stochrsi_* | ≥ 80 · ≤ 20 |
willr | ≥ −20 · ≤ −80 |
cci | ≥ 100 · ≤ −100 |
cmo | ≥ 50 · ≤ −50 |
ultosc / imi | ≥ 70 · ≤ 30 |
adx | ≥ 25 trending · ≥ 40 strong · < 20 no trend |
volume_rank_long / volume_rank_short | ≥ 0.95 spike · ≥ 0.9 heavy |
rv_rank | ≤ 0.15 squeeze · ≥ 0.9 explosion |
taker_buy_ratio | ≥ 0.55 buyers dominant · ≤ 0.45 sellers dominant |
body / range | ≥ 1 big candle (1 % of price) |
ret_log | ≥ 1 jump · ≤ −1 drop (15 minutes); ret_log_short ±2 for an hour |
macd | > 0 golden regime · < 0 death regime; a sign change = cross |
sar | < 0 uptrend · > 0 downtrend; a sign change = reversal |
bbands_upper / bbands_lower | upper < 0 = above the band · lower > 0 = below the band |
ln(1 + bars) lookup
The event-distance columns store the natural log of one plus the number of bars since the event, capped at 672 (96 for positive_return_streak).
| Bars since | Stored value | Meaning |
|---|---|---|
| 0 | 0 | event on the previous bar |
| 1 | 0.6931 | 1 bar earlier |
| 2 | 1.0986 | 2 bars (30 min) |
| 3 | 1.3863 | 3 bars (45 min) |
| 4 | 1.6094 | 4 bars (1 h) |
| 8 | 2.1972 | 8 bars (2 h) |
| 16 | 2.8332 | 16 bars (4 h) |
| 32 | 3.4965 | 32 bars (8 h) |
| 96 | 4.5747 | 96 bars (1 day) |
| 192 | 5.2626 | 192 bars (2 days) |
| 672 | 6.5117 | 672 bars (7 days, the cap) |
Reading it in a condition
bn_spot_bars_since_high_breakout=0— the breakout was on the previous bar.bn_spot_bars_since_volume_spike<=1.6094— a volume spike within the last hour.bn_spot_trend_streak>=3.4965— the close has been above EMA20 for 32 bars or more.- For arbitrary “in a row” questions,
Streak()in the query language is simpler than converting logs.