market_BTCUSDT
BTC market character on a 15-minute window · core · 2026-08-01 — 2026-08-28 (28 days)
Schema
| Column | Type | Meaning |
|---|---|---|
| timestamp_ms | BIGINT | Snapshot time, ms UTC (every ~5 s). |
| symbol | VARCHAR | Instrument. |
| price | DOUBLE | Last price at snapshot. |
| bar_close_15m | DOUBLE | Close of the last completed 15-minute bar. |
| price_source | VARCHAR | Where `price` came from (ws / rest). |
| price_age_ms | BIGINT | Age of `price` at snapshot time. |
| atr | DOUBLE | ATR(14) on 15-minute bars. |
| atr_pct | DOUBLE | ATR as % of price. |
| rsi | DOUBLE | RSI(14) on 15-minute bars. |
| rsi_5m | DOUBLE | RSI(14) on 5-minute bars. |
| rsi_15m | DOUBLE | RSI(14) on 15-minute bars. |
| bb_lower | DOUBLE | Bollinger lower band (20, 2σ). |
| bb_middle | DOUBLE | Bollinger middle band. |
| bb_upper | DOUBLE | Bollinger upper band. |
| bb_width | DOUBLE | (upper − lower) / middle. |
| vwap | DOUBLE | Session VWAP (current formula, see vwap_formula_version). |
| vwap_legacy | DOUBLE | VWAP by the previous formula, kept for comparison. |
| vwap_formula_version | VARCHAR | Which VWAP definition `vwap` uses. |
| ema_20 | DOUBLE | EMA(20) on 15-minute closes. |
| ema_50 | DOUBLE | EMA(50). |
| ema_200 | DOUBLE | EMA(200). |
| volume | DOUBLE | Volume of the current 15-minute bar. |
| volume_avg10 | DOUBLE | Average volume of the last 10 bars. |
| delta | DOUBLE | Buy volume − sell volume in the window. |
| smoothed_delta | DOUBLE | EMA of `delta`. |
| cvd_local | DOUBLE | Cumulative volume delta since session start. |
| best_bid | DOUBLE | Best bid at snapshot. |
| best_ask | DOUBLE | Best ask at snapshot. |
| spread_pct | DOUBLE | (ask − bid) / mid × 100. |
| bid_volume | DOUBLE | Quantity on the 20 best bid levels. |
| ask_volume | DOUBLE | Quantity on the 20 best ask levels. |
| btc_5m_change | DOUBLE | BTC/USDT 5-minute return, %. |
| btc_trend_15m | VARCHAR | BTC 15-minute trend label. |
| htf_trend | VARCHAR | Higher-timeframe trend label. |
| trend_1h | VARCHAR | 1-hour trend label. |
| trend_4h | VARCHAR | 4-hour trend label. |
| adx | DOUBLE | ADX(14) on 15-minute bars. |
| regime | VARCHAR | Market regime label used by our own system (trend / range / squeeze …). |
| best_support | DOUBLE | Nearest support level below price. |
| best_resistance | DOUBLE | Nearest resistance level above price. |
| support_levels | DOUBLE[] | List of detected support levels. |
| resistance_levels | DOUBLE[] | List of detected resistance levels. |
| levels_provider | VARCHAR | Which detector produced the levels. |
| levels_zone | VARCHAR | Zone label relative to the levels. |
| levels_strength | TINYINT | Strength score of the nearest level. |
| btc_influence | VARCHAR | How strongly BTC is steering this symbol (label). |
Conventions shared by all streams — UTC
milliseconds, integer prices, what side means where, how gaps are
marked and how to rebuild the book — are in the
data dictionary. The same text is
returned by GET /v1/schema/market_BTCUSDT and the MCP tool
get_schema.
Sample rows (demo hour)
| timestamp_ms | symbol | price | bar_close_15m | price_source | price_age_ms | atr | atr_pct | rsi | rsi_5m | rsi_15m | bb_lower | bb_middle | bb_upper | bb_width | vwap | vwap_legacy | vwap_formula_version | ema_20 | ema_50 | ema_200 | volume | volume_avg10 | delta | smoothed_delta | cvd_local | best_bid | best_ask | spread_pct | bid_volume | ask_volume | btc_5m_change | btc_trend_15m | htf_trend | trend_1h | trend_4h | adx | regime | best_support | best_resistance | support_levels | resistance_levels | levels_provider | levels_zone | levels_strength | btc_influence |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1787011204314 | BTC/USDT | 64540.94 | 64523.671875 | ws_agg_trade | 95 | 93.14797973632812 | 0.0014436249621212482 | 67.02189636230469 | 69.48029327392578 | 67.02189636230469 | 64240.515625 | 64370.6328125 | 64500.75 | 0.004042701795697212 | 63785.0 | 221646.609375 | rolling_2 | 64353.48828125 | 64135.09765625 | 63581.96484375 | 54.11172866821289 | 70.99213409423828 | 54.11172866821289 | -0.10899899899959564 | -385.4873352050781 | 64540.93 | 64540.94 | 0.0 | 7.39452 | 2.78804 | 0.0 | neutral | up | up | up | 43.65774154663086 | trend_hivol | 64035.82 | 64904.21 | [63483.21, 63798.98, 64035.82] | [64904.21, 65300.0] | deepseek | distribution | 7 | bearish |
| 1787011208189 | BTC/USDT | 64540.94 | 64523.671875 | ws_agg_trade | 156 | 93.14797973632812 | 0.0014436249621212482 | 67.02189636230469 | 69.48029327392578 | 67.02189636230469 | 64240.515625 | 64370.6328125 | 64500.75 | 0.004042701795697212 | 63785.0 | 221646.609375 | rolling_2 | 64353.48828125 | 64135.09765625 | 63581.96484375 | 54.11172866821289 | 70.99213409423828 | 54.11172866821289 | -0.10899899899959564 | -385.4873352050781 | 64540.93 | 64540.94 | 0.0 | 7.39452 | 2.78804 | 0.0 | neutral | up | up | up | 43.65774154663086 | trend_hivol | 64035.82 | 64904.21 | [63483.21, 63798.98, 64035.82] | [64904.21, 65300.0] | deepseek | distribution | 7 | bearish |
| 1787011213467 | BTC/USDT | 64549.99 | 64523.671875 | ws_agg_trade | 662 | 93.14797973632812 | 0.0014436249621212482 | 67.02189636230469 | 69.48029327392578 | 67.02189636230469 | 64240.515625 | 64370.6328125 | 64500.75 | 0.004042701795697212 | 63785.0 | 221646.609375 | rolling_2 | 64353.48828125 | 64135.09765625 | 63581.96484375 | 54.11172866821289 | 70.99213409423828 | 54.11172866821289 | -0.10899899899959564 | -385.4873352050781 | 64549.99 | 64550.0 | 0.0 | 6.0030399999999995 | 1.09565 | 0.0 | neutral | up | up | up | 43.65774154663086 | trend_hivol | 64035.82 | 64904.21 | [63483.21, 63798.98, 64035.82] | [64904.21, 65300.0] | deepseek | distribution | 7 | bearish |
Work with this stream in the SQL console and the backtest runner — the data stays with us, the results go to you. Get access