Data series
A data series row asks for OHLCV bars for one symbol — it's the row type a Chart or DataGrid tab starts with, and the shape every other row type is compared against first when the parser decides what a row means.
Symbol expression
Slot 0 of a data series row — and of every other row type that takes a symbol — is
SYMBOL[@ROUTE][:ADAPTER]:
SYMBOL— the ticker or instrument identifier, e.g.AAPL,SPY,BTC-USD,BRK.B,ES. Upper-cased on parse.@ROUTE(optional) — forces exchange/ECN routing, e.g.@ISLAND,@NASDAQ,@CME. Upper-cased on parse.:ADAPTER(optional) — forces a specific adapter/credential, e.g.:Schwab. Quote it if the label has spaces (:"Schwab Test"). Adapter labels round-trip with the casing you typed — they're free-form broker identifiers, not language keywords.
SPY@ISLAND:"Schwab Test" reads as: symbol SPY, routed to ISLAND, forced onto the adapter
labeled Schwab Test.
The three slots
A data series row is three whitespace-separated, positional slots, plus an optional OPTIONS:{}
tail:
SYMBOL[@ROUTE][:ADAPTER] INTERVAL RANGE [OPTIONS:{KEY:VALUE, ...}]
Slot 1 is the interval, slot 2 is the range. Nothing is named — position carries the meaning, which is why the symbol always comes first and the interval always comes second.
Interval units
NUMBER + UNIT, adapter-validated:
| Unit | Meaning | Example |
|---|---|---|
S |
second | 1S |
M |
minute | 5M |
H |
hour | 1H |
D |
day | 1D |
W |
week | 1W |
MO |
month | 1MO |
Range forms
- Shorthand —
1D,5D,30D,1MO,3MO,1Y,YTD,MAX. - ISO range —
2024-01-01/2024-12-31. - ISO from-date — a single ISO date (
2024-01-01) means from that date through now.
OPTIONS: style, extended hours, axis
Data series rows accept an OPTIONS:{} tail with three keys:
| Key | Values |
|---|---|
STYLE |
CANDLE, BAR, LINE, AREA, HEIKIN-ASHI, RENKO, HOLLOW |
EXTENDED |
TRUE, FALSE |
AXIS |
INHERIT, LEFT, RIGHT |
See VectarisQL options for the full per-row-type key reference.
Examples
AAPL 1D 30D
AAPL 5M 5D
SPY@ISLAND:Schwab 1H 30D
BTC-USD 1D 2024-01-01
ES 15M 2024-01-01/2024-06-30
AAPL 1D 1Y OPTIONS:{STYLE:LINE, AXIS:RIGHT}
Two rows the parser rejects:
AAPL 1D 30D OPTIONS:{STYLE:LINE
AAPL 1D 30D OPTIONS:{FOO:BAR}
The first never closes its OPTIONS:{} block — the row still parses what it can, but the missing
} is reported as an error. The second closes the block cleanly, but FOO isn't a key OPTIONS
recognizes for data-series rows — STYLE, EXTENDED, and AXIS are the only three. (A malformed
interval like AAPL 17X 30D is not one of these two — the row parser accepts any interval text
at this stage; interval validity is checked later, against the connected adapter's supported
units, not by the row grammar itself.)
See the VectarisQL grammar for the exhaustive slot and unit tables.