VectarisQL
VectarisQL is the small, positional language typed into query-bar rows across Vectaris — not a database, and not a server-side query engine. Every row is parsed and evaluated entirely in the browser, against data the platform has already fetched.
What it is
A VectarisQL row is one line of text that self-describes what it means — the row type is derived from the text itself, never from a hidden flag stored alongside it. There's no schema to declare and no connection string: a Chart tab's query bar and a DataGrid tab's query bar both take rows written in this same language, and parsing happens client-side against bars, positions, and orders the platform already holds in memory.
Row types
Four row shapes, decided by classifyRow from the row's own text:
- Indicator — the first token contains
(, e.g.RSI(14). - Collection — the first token's head (before any
:or@) matches a known collection keyword (ORDERS,POSITIONS,BALANCES,ACCOUNTS) or a collection name the connected broker declares (e.g.FILLS). - Symbol-only — used only by modules whose query support is symbol selection alone, with no
data series, indicators, or collections — a bare
SYMBOL[@ROUTE][:ADAPTER]. - Data series — everything else; the default when nothing above matches.
AAPL 1D 30D
RSI(14) OPTIONS:{PANEL:NEW}
ORDERS WHERE STATUS='Filled' ORDER BY TIME DESC
A data series row, an indicator row, and a collection row, in that order.
Where it appears
- Chart — the multi-row query bar accepts data-series and indicator rows.
- DataGrid — accepts data-series and collection rows; a new DataGrid tab seeds a row like
AAPL 1D 30D. - Options chain, SuperDOM, Time & Sales, Analyze — each wires the same query-bar component
with symbol-only support, so their query bar takes just
SYMBOL[@ROUTE][:ADAPTER]. - Watchlist takes bare, upper-cased ticker symbols through its own add-symbol flow. It does
not run through this parser, so
@ROUTE/:ADAPTERqualifiers and the other row types don't apply there. - The AI assistant is briefed on the QueryBuilder/VectarisQL module in its system prompt so it
can explain or open it, but its own tools (
add_chart,change_symbol, …) take structured parameters, not raw VectarisQL text.
Casing and quoting
Symbols, routes, collection names, and OPTIONS:{} keys and enum values are all upper-cased on
parse — type spy 1d 30d and it becomes SPY 1D 30D. Adapter labels (:Schwab) round-trip with
whatever casing you typed — they're free-form broker identifiers, not language keywords. Quoted
strings ('...', "...") and ISO dates keep their casing exactly as typed, and WHERE string
literals are not force-uppercased.
Reference
- VectarisQL grammar — every row shape, slot, and unit.
- VectarisQL options —
OPTIONS:{...}keys per row type. - VectarisQL collections by broker — what each connected broker exposes.