market_SOLUSDT
SOL 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_SOLUSDT 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1787011203503 | SOL/USDT | 76.03 | 76.01000213623047 | ws_agg_trade | 1551 | 0.14231596887111664 | 0.001872332184575498 | 57.197086334228516 | 59.1306266784668 | 57.197086334228516 | 75.69617462158203 | 75.88349914550781 | 76.0708236694336 | 0.004937197547405958 | 75.62689971923828 | 288.88250732421875 | rolling_2 | 75.89324188232422 | 75.81261444091797 | 75.56802368164062 | 4839.7099609375 | 7718.51416015625 | 4839.7099609375 | -540.2061157226562 | -15602.7685546875 | 76.01 | 76.02 | 0.000132 | 11190.653 | 13370.688 | 0.0 | neutral | up | up | up | 14.620413780212402 | trend_hivol | 75.5 | 76.22 | [74.63, 75.05, 75.5] | [76.22, 76.49, 76.81, 77.16] | deepseek | accumulation | 7 | neutral |
| 1787011208192 | SOL/USDT | 76.03 | 76.01000213623047 | ws_agg_trade | 161 | 0.14231596887111664 | 0.001872332184575498 | 57.197086334228516 | 59.1306266784668 | 57.197086334228516 | 75.69617462158203 | 75.88349914550781 | 76.0708236694336 | 0.004937197547405958 | 75.62689971923828 | 288.88250732421875 | rolling_2 | 75.89324188232422 | 75.81261444091797 | 75.56802368164062 | 4839.7099609375 | 7718.51416015625 | 4839.7099609375 | -540.2061157226562 | -15602.7685546875 | 76.02 | 76.03 | 0.000132 | 12854.619999999999 | 12587.487 | 0.0 | neutral | up | up | up | 14.620413780212402 | trend_hivol | 75.5 | 76.22 | [74.63, 75.05, 75.5] | [76.22, 76.49, 76.81, 77.16] | deepseek | accumulation | 7 | neutral |
| 1787011213504 | SOL/USDT | 76.05 | 76.01000213623047 | ws_agg_trade | 149 | 0.14231596887111664 | 0.001872332184575498 | 57.197086334228516 | 59.1306266784668 | 57.197086334228516 | 75.69617462158203 | 75.88349914550781 | 76.0708236694336 | 0.004937197547405958 | 75.62689971923828 | 288.88250732421875 | rolling_2 | 75.89324188232422 | 75.81261444091797 | 75.56802368164062 | 4839.7099609375 | 7718.51416015625 | 4839.7099609375 | -540.2061157226562 | -15602.7685546875 | 76.03 | 76.04 | 0.000132 | 11719.737000000001 | 14216.49 | 0.0 | neutral | up | up | up | 14.620413780212402 | trend_hivol | 75.5 | 76.22 | [74.63, 75.05, 75.5] | [76.22, 76.49, 76.81, 77.16] | 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