Model builder

Describe a setup. Sentio compiles it into a spec.

Every trader has a setup that is not on the shelf — a specific combination of a sweep, a displacement, a session, a retest, a confluence. Sentio's Model Builder takes the description in plain English or a chart screenshot, asks a few clarifying questions, and compiles the intent into a DSL of 21 primitives. Nothing invented, nothing hidden, and it cannot go live until it has proven itself against replay data.

The flow

Six steps. From a sentence to a live model.

Every step below is a real thing the builder does — no hand-wave. Steps 4 and 5 are gates: a model that fails replay validation cannot go live, and no primitive that is not in the registry can appear in the spec.

1DESCRIBE

Describe the setup.

Type it out the way you would explain it to another trader. Or attach a chart screenshot — Sentio's vision model reads the geometry and fills in the description for you.

You describe

"ES sweeps London high on 15m, NQ fails to confirm, then bearish displacement + 5m FVG retracement during NY."

2CLARIFY

Answer clarifying questions.

The compiler will not invent operators it does not understand. If your description is ambiguous — which timeframe, which session, retest within how many bars — it asks. You answer in the same chat.

Clarify
Which timeframe for the FVG retest?
5m
Retest within how many bars?
6
3COMPILE

Inspect the compiled spec.

The output is a DSL of 21 primitives — sweeps, gaps, displacement, structure shifts, session windows. Nothing is hidden. If a primitive does not appear in the spec, it is not being evaluated.

Compiled spec
  1. 1. smt_divergence bearish
  2. 2. liquidity_sweep london_high 15m
  3. 3. displacement down 5m
  4. 4. fvg retest ≤ 6
  5. 5. entry session ny
4VALIDATE

Replay-validate against history.

Before you can activate a model, it must produce a non-zero hit rate against ~3000 bars of cached replay data. Compiled specs that fire zero times over the buffer are flagged.

Replay complete
Triggers0
Avg R+0.0
Win rate0%
5ACTIVATE

Activate into the live scanner.

Set the timeframes you want the model to scan on (multi-select), attach discipline rules if you want them scoped to this model, and flip the toggle. It joins the roster alongside the built-in five.

Timeframes + status
LIVE scanning ES + NQ
6REFINE

Refine with follow-up chat.

Every custom model carries a persistent chat. Ask for a tighter displacement threshold, a wider session window, an extra confluence condition — the compiler regenerates the spec, re-runs replay, and shows you the diff.

Parameter diff
min_impulse 1.2 1.5
session_start 09:30 10:00
triggers 18 11
21 primitives

The whole vocabulary. On one page.

The compiler will not use anything outside this list. If you describe a concept it does not recognise, it says so and asks you to phrase it in terms it can compile.

Liquidity & sweeps

  • liquidity_sweep Wick through prior swing or session H/L.
  • key_liquidity Reference to session H/L, PDH/PDL, weekly open.
  • equal_highs Cluster of equal highs — resting sell-side liquidity.
  • equal_lows Cluster of equal lows — resting buy-side liquidity.

Structure & displacement

  • market_structure BOS or CHoCH on a specified timeframe.
  • displacement ATR-qualifying impulse move — up or down.
  • cisd Change in state of delivery — closing through the last opposing candle.
  • order_block Last opposing candle before a displacement leg.

Gaps & polarity

  • fvg Fair value gap on a specified timeframe.
  • inverse_fvg FVG that has been traded through and now flips polarity.
  • bpr Balanced price range — bullish + bearish FVGs overlapping.
  • breaker_block Failed order block — the polarity-flipped zone.

Confirmation & context

  • smt_divergence Correlated tickers disagree (ES sweeps, NQ does not).
  • session_window Constraint: only fire during a named session.
  • retest Return to a level within N bars.
  • confluence Two or more independent conditions align.

Timing & delivery

  • entry Terminal — where the trade would fire.
  • invalidation Where the setup dies.
  • target Target level — R-multiple or liquidity magnet.
  • time_of_day Filter by clock: killzone windows, macro cutoffs.
  • candle_close Require close relative to a level, not just wick.
Why this beats "AI trading bots"

The compiler cannot invent operators. That's the point.

Most AI-driven trading products generate free-form English and hope. Sentio's builder is bounded to a fixed grammar. If an idea cannot be expressed in the DSL, the compiler tells you and asks you to rephrase — rather than silently interpreting your words into something that fires unpredictably. The trade-off is intentional: you get transparency and replay-testability, and you always know what the scanner is actually looking for.

  • Bounded grammar. 21 primitives, all inspectable in the app.
  • Replay-gated. Zero-hit specs cannot activate.
  • Vision-in. Screenshot → filled description, ready to compile.
  • Iterative chat. Refinement persists per model, across sessions.
  • Per-model timeframes. Multi-select which frames the model scans on.
  • Discipline-aware. Attach rules that scope only to this custom model.

Describe the setup only you take. Ship it.

Free plan includes 3 model drafts. Trader is unlimited.