Market Microstructure · Signal Surveillance · Labeled AI Training Data

Plug in your feed. Get the dataset your research needs.

Stockurai runs on top of a real-time market data feed. Configure code-free algorithms to your questions, and every signal they generate becomes a structured, labeled record: market state, z-score profile, decisions and outcome. No years-long engineering project.

Get Your Own Instance See Sample Data
How It Works

From raw feed to research dataset in three steps

STEP 01
Connect the feed
Stockurai runs on a real-time Massive equities feed. It isn’t a data vendor or a screener. It’s the research layer between the raw feed and your dataset.
STEP 02
Configure, don’t code
Build multi-condition algorithms from dozens of indicators across timeframes from 5-minute to daily. Changing a hypothesis takes minutes, not a development sprint.
STEP 03
Collect the dataset
Every signal is written live with its full market state, z-score profile, decisions and outcome. Because each record is captured at the moment of the signal, there’s no look-ahead bias. Run the same algorithms as backtests to get history in the same format.
Who It’s For

One platform, four kinds of teams

One platform, four different reasons to use it.

ML & AI Development
Labeled training data without a labeling project
Every signal arrives labeled: features captured at the moment of decision, outcomes measured over several horizons, and the price path in between.
Labeled Events No Look-Ahead Feature-Rich
Proprietary Trading Leadership
Your playbooks, running against the whole market, all day
Turn desk playbooks into algorithms and evaluate them continuously across the entire market or chosen segments. See which are working, which are fading, and when market behavior shifts, while it’s happening rather than in next quarter’s review.
Playbook Surveillance Regime Shifts Strategy Attribution
Market Research
A custom dataset for every hypothesis
Turn a research question into an algorithm, run it live and as a backtest, and get a dataset built for that question, with structural levels, z-score profiles and outcomes already attached.
Hypothesis Testing Live + Backtest Microstructure
Decision Science
A live decision lab
Every signal produces three decisions: systematic, human and AI. Each is recorded with its context and outcome, so you can measure the cost of overrides, when judgment beats rules, and how often people and AI agree.
Human vs. System AI Agreement Decision Quality

What the platform captures

Every signal event carries all of these layers, captured live.

Running live since April 2026: 8,200+ live signal events across 135 symbols, 43,000 tracked price paths, 18,000+ automated trades and 87,000+ backtest signals.

Market Statistics
real-time · multi-timeframe
Price, volume, volatility, momentum, structural levels and derived indicators, captured across 5-minute, 15-minute, hourly and daily timeframes simultaneously
Algorithmic Evaluation
expandable library · code-free
An expandable library of configurable algorithms, built without code from dozens of indicators, each applying structured multi-condition decision logic to the incoming market state in real time
Signal Events
labeled · timestamped
The resulting signals — structured, labeled events capturing the full environmental state and every condition met, each with its timestamp and trigger price
Z-Score Profiles
normalized · multi-timeframe
Distance from no-trend, EMA 9/50/200, Keltner, Bollinger, VWAP, prior-day, first-5-minute and day-range references across 5M, 15M, 1H and 1D, normalized by each reference’s own band width, with RSI and EMA state
Decision Records
machine · human · AI
Three parallel records for every signal: what a purely systematic approach would do, what the trader actually did and why, and how the AI Desk Manager graded the setup
End-to-End Audit Trail
complete cycle · outcome-labeled
The full lifecycle of each signal from market state through algorithmic evaluation, signal generation, decisions (machine, human and AI), execution, and final outcome — a complete, auditable record of every cycle
Sample Data

Custom dataset examples

The following sections illustrate a signal event broken out by layer. Field names come from the live schema; values are demonstrative.

Algorithm & scoring
Which algorithm fired, every condition with its trigger time and price, and how the score built to the signal.
{
  "symbol": "XYZ",
  "algorithm": "P15 - Multi-TF Bull",
  "algorithm_id": 816,
  "strategy": "MM Premarket Positioning - Long",
  "side": "long",
  "category": "buy",
  "score": 70,
  "conditions": [
    { "name": "Price Above KCB U3 on 2 Time Frames",
      "score": 10, "logic": "AND",
      "triggers": [
        { "time": "09:41:03 EDT",
          "event": "Price Above Keltner U3 on 5 min",
          "price_crossing": 17.1012 },
        { "time": "09:52:17 EDT",
          "event": "Price Above Keltner U3 15m",
          "price_crossing": 17.1188 } ] },
    { "name": "RVOL 5m Above 1.5",
      "score": 30, "logic": "AND",
      "triggers": [
        { "time": "09:58:40 EDT",
          "event": "RVOL 5m Above 1.5",
          "value": 1.62 } ] },
    { "name": "Price Above AVWAP Center",
      "score": 30, "logic": "AND",
      "triggers": [
        { "time": "10:04:48 EDT",
          "event": "Price Above AVWAP Center",
          "price_crossing": 17.0215 } ] }
  ],
  "rules": ["Multi-TF Bull Confirmed → BUY (score gte 70)"],
  "score_history": [
    { "type": "created", "score": 10,
      "timestamp": "2026-03-26T13:52:17Z" },
    { "type": "updated", "score": 40,
      "timestamp": "2026-03-26T13:58:40Z" },
    { "type": "updated", "score": 70,
      "timestamp": "2026-03-26T14:04:48Z" }
  ],
  "signal_time": "2026-03-26T14:04:48Z",
  "on_feed": true,
  "group": { "name": "XLB Basket", "mode": "live" },
  "outcome": "loss",
  "outcome_pct": -0.865,
  "training_image": "snapshots/xyz_20260326_1404.png"
}
Human decisions
What the trader did with the signal, the market at that moment, and the reasoning behind it.
{
  "event_action": {
    "action_type": "create_card",
    "reason": "Premarket level hold",
    "card_category": "watchlist",
    "price_at_action": 17.02,
    "timestamp": "2026-03-26T13:52:19Z"
  },
  "card_action": {
    "action_type": "move_card",
    "previous_category": "watchlist",
    "new_category": "buy",
    "previous_score": 40,
    "new_score": 70,
    "price_at_action": 17.12,
    "volume_at_action": 10121,
    "market_conditions": {
      "spy_trend_30m": "EVEN",
      "qqq_trend_30m": "EVEN",
      "active_buy_cards": 4,
      "active_watchlist_cards": 11
    },
    "thoughts": "Holding above AVWAP, volume confirming.",
    "timestamp": "2026-03-26T14:05:02Z"
  },
  "trade": {
    "trade_type": "auto",
    "trade_position": "long",
    "trade_shares": 1000,
    "trade_amount": 17128.20,
    "trade_price": 17.128,
    "trade_stop_price": 16.96,
    "trade_pnl": -148.20,
    "trade_pnl_percent": -0.865
  },
  "manual_close": null
}
AI evaluation
An independent AI grade and trade plan for the same setup, scored on price, timing, market and fundamentals.
{
  "model_version": "v3",
  "grade": 68,
  "letter_grade": "C+",
  "price_score": 7,
  "price_detail": "Above 5m EMA 20; extended vs daily.",
  "time_score": 4,
  "time_detail": "First 35 minutes; spreads still wide.",
  "market_score": 3,
  "market_detail": "Broad bear regime; SPY flat.",
  "fundamentals_detail": "Earnings in 33 days.",
  "tamer_phase": "early",
  "pattern_from_play": "Multi-TF Bull",
  "rec_tp": 17.56,
  "rec_tp_pct": 2.5,
  "rec_sl": 16.96,
  "rec_sl_pct": 1.0,
  "rec_size": 0.5,
  "rec_shot_clock": 15,
  "rationale": "Valid setup, poor timing against
    the regime. Half size, tight clock.",
  "dm_status": "accepted",
  "accepted_at": "2026-03-26T14:04:58Z",
  "prompt_tokens": 2841,
  "completion_tokens": 412
}
Outcome path
How the trade moved, not just how it ended, alongside the algorithm’s running performance.
{
  "entry_time": "2026-03-26T14:04:52Z",
  "exit_time": "2026-03-26T14:15:07Z",
  "entry_price": 17.128,
  "exit_price": 16.980,
  "take_profit_pct": 3.0,
  "stop_loss_pct": 1.0,
  "result": "LOSS",
  "is_winner": 0,
  "pnl_dollars": -148.20,
  "pnl_pct": -0.865,
  "r_multiple": -0.865,
  "exit_reason": "trailing_stop",
  "hold_time_min": 10.25,
  "mfe_pct": 0.711,
  "time_to_mfe_min": 9.77,
  "mae1_at_mfe": 0.078,
  "mae2_post_mfe": 0.270,
  "algorithm_stats": {
    "total_trades": 212, "wins": 114, "losses": 98,
    "win_rate": 0.538,
    "avg_win": 96.40, "avg_loss": -71.15,
    "ev_per_trade": 18.97, "ev_per_dollar": 0.0011,
    "profit_factor": 1.58, "expectancy_r": 0.21,
    "avg_mfe": 1.12, "avg_mae1": 0.31, "avg_mae2": 0.44,
    "avg_time_to_mfe_sec": 742,
    "ev_by_session": { "open": -4.10, "mid": 31.20,
                       "close": 12.85 },
    "ev_by_exit_reason": { "take_profit": 168.40,
                           "trailing_stop": -22.70,
                           "stop_loss": -102.30 }
  }
}
Structural levels
Session levels, VWAP and anchored VWAP bands, Keltner channels and regime at the moment of the signal.
{
  "critical_levels": {
    "premarket_30_min_high": 17.30,
    "premarket_30_min_low": 16.94,
    "first_5_min_high": 17.21,
    "first_5_min_low": 17.02,
    "prior_day_high": 17.42,
    "prior_day_low": 16.88,
    "prior_day_close": 17.05,
    "expiration_date": "2026-03-27"
  },
  "vwap":  { "center": 17.78, "upper": 18.11, "lower": 17.45 },
  "avwap": { "center": 17.02, "upper": 17.38, "lower": 16.66 },
  "keltner": {
    "atr": 0.05, "middle": 16.95,
    "upper_1": 17.00, "upper_2": 17.05, "upper_3": 17.10,
    "lower_1": 16.90, "lower_2": 16.85, "lower_3": 16.80
  },
  "hoffman_no_trend": false,
  "regime": {
    "overall": "bear_trend",
    "phase": "in_progress",
    "large_cap": "bear_trend",
    "small_cap": "range",
    "sector": "bull_trend",
    "sector_etf": "XLB",
    "sector_name": "Materials"
  }
}
Market state
Multi-timeframe features and index context, computed from the live market data feed.
{
  "price": 17.13,
  "trend_30m": "UP",
  "ema_20":      { "5m": 17.04, "1h": 16.91, "1d": 16.22 },
  "ema_50":      { "5m": 17.07, "1h": 16.85, "1d": 15.98 },
  "ema_200":     { "5m": 16.98, "1h": 16.40, "1d": 14.87 },
  "stoch_rsi_k": { "5m": 71.4,  "1h": 58.2,  "1d": 44.9 },
  "stoch_rsi_d": { "5m": 64.8,  "1h": 52.1,  "1d": 47.3 },
  "rvol":        { "5m": 1.62,  "30m": 1.12, "1d": 0.94 },
  "volume_day": 412880,
  "avg_vol_per_30m": 318400,
  "prior_day_volume": 9841200,
  "days_to_earnings": 33,
  "market_context": {
    "spy": { "price": 654.74, "trend_30m": "EVEN",
             "prior_day_high": 659.72, "prior_day_low": 655.52 },
    "qqq": { "price": 583.29, "trend_30m": "EVEN",
             "prior_day_high": 590.61, "prior_day_low": 584.69 },
    "iwm": { "price": 251.08, "trend_30m": "EVEN",
             "prior_day_high": 253.05, "prior_day_low": 250.25 },
    "vix": 24.6
  },
  "time_features": { "hour_et": 10, "day_of_week": 3,
                     "minutes_since_open": 34 }
}
Z-score profile at entry
Distance from each structural reference, normalized by that reference’s own band: ATR units for EMAs and Keltner, band width for Bollinger and VWAP, and range width for session levels. Sorted by magnitude, per timeframe.
5M
no_trend+2.84
keltner+2.31
ema9+1.12
ema50+0.94
ema200+0.71
bollinger+0.66
prior_day-0.42
first_5m+0.38
RSI71.4
EMAbullish
15M
no_trend+1.96
ema50+1.41
keltner+1.18
ema9+0.87
bollinger+0.52
ema200+0.49
prior_day-0.31
RSI63.2
EMAbullish
1HR
no_trend+1.12
ema200+0.96
ema50+0.61
keltner+0.44
RSI58.2
EMAbullish
1D
ema200+1.74
ema50+1.21
no_trend-0.88
day_range-0.47
keltner+0.33
prior_day-0.29
bollinger+0.18
ema9+0.07
RSI44.9
EMAmixed

These seven layers are a subset. Stockurai also records backtest signals and condition-level backtest statistics, optimization runs, short interest and borrow availability, spread logs, live and automated trade execution, and market news.

Research Applications

Questions this dataset supports

Machine Learning in Finance

Can models trained on structured signal features outperform those trained on raw OHLCV features?
Which timeframe’s z-score profile carries the most predictive information?
How do gradient boosting, LSTM, and transformer architectures compare on structured signal data?

Proprietary Trading

Which algorithms earn their capital once regime, session and exit behavior are accounted for?
Where do discretionary overrides add or subtract value, and for which strategies?
How much edge is lost between signal and exit, and where do trades leave money on the table?

Market Microstructure

Under what conditions do multi-condition signal convergences predict short-term price movement?
How does signal information content vary across trending, mean-reverting, and volatile market regimes?
Does z-score distance from structural levels at entry predict MFE and MAE?

Decision Science

Does adding conditions to a decision rule improve outcomes, or introduce overfitting and decision paralysis?
Does structured decision support reduce measurable cognitive bias in trading?
What is the cost of overriding systematic logic with discretionary human judgment?

Your own Stockurai instance

Each client gets a dedicated, hosted Stockurai instance.

Dedicated
Your own isolated instance, not a shared account.
Configurable
Code-free algorithms built from dozens of indicators, with conditions, thresholds, timeframes and outcome horizons defined by your team.
Hosted
We set up and manage the servers.

Tell us about your research focus and how you plan to use the platform, and we’ll talk through setting up your instance.

Request a Consultation