market_ETHUSDT
ETH 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_ETHUSDT 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1787011205300 | ETH/USDT | 1914.06 | 1913.1700439453125 | ws_agg_trade | 739 | 3.4683094024658203 | 0.0018128600204363465 | 60.368675231933594 | 62.92268371582031 | 60.368675231933594 | 1902.1468505859375 | 1908.053466796875 | 1913.960205078125 | 0.0061913239769637585 | 1902.406982421875 | 6263.78173828125 | rolling_2 | 1908.50927734375 | 1906.162109375 | 1895.475341796875 | 628.79150390625 | 995.7681884765625 | 628.79150390625 | 78.15849304199219 | 559.5908813476562 | 1913.89 | 1913.9 | 5e-06 | 157.7798 | 59.5985 | 0.0 | neutral | up | up | up | 31.0835018157959 | trend_hivol | 1883.91 | 1910.53 | [1870.6, 1883.91] | [1910.53, 1919.59, 1930.84] | deepseek | accumulation | 7 | neutral |
| 1787011208596 | ETH/USDT | 1914.07 | 1913.1700439453125 | ws_agg_trade | 45 | 3.4683094024658203 | 0.0018128600204363465 | 60.368675231933594 | 62.92268371582031 | 60.368675231933594 | 1902.1468505859375 | 1908.053466796875 | 1913.960205078125 | 0.0061913239769637585 | 1902.406982421875 | 6263.78173828125 | rolling_2 | 1908.50927734375 | 1906.162109375 | 1895.475341796875 | 628.79150390625 | 995.7681884765625 | 628.79150390625 | 78.15849304199219 | 559.5908813476562 | 1914.05 | 1914.06 | 5e-06 | 136.5572 | 73.042 | 0.0 | neutral | up | up | up | 31.0835018157959 | trend_hivol | 1883.91 | 1910.53 | [1870.6, 1883.91] | [1910.53, 1919.59, 1930.84] | deepseek | accumulation | 7 | neutral |
| 1787011213484 | ETH/USDT | 1914.35 | 1913.1700439453125 | ws_agg_trade | 102 | 3.4683094024658203 | 0.0018128600204363465 | 60.368675231933594 | 62.92268371582031 | 60.368675231933594 | 1902.1468505859375 | 1908.053466796875 | 1913.960205078125 | 0.0061913239769637585 | 1902.406982421875 | 6263.78173828125 | rolling_2 | 1908.50927734375 | 1906.162109375 | 1895.475341796875 | 628.79150390625 | 995.7681884765625 | 628.79150390625 | 78.15849304199219 | 559.5908813476562 | 1914.34 | 1914.35 | 5e-06 | 102.3218 | 74.5041 | 0.0 | neutral | up | up | up | 31.0835018157959 | trend_hivol | 1883.91 | 1910.53 | [1870.6, 1883.91] | [1910.53, 1919.59, 1930.84] | deepseek | accumulation | 7 | neutral |
Work with this stream in the SQL console and the backtest runner — the data stays with us, the results go to you. Get access