EngineSQL-Inspired Rules / SQX

Indicators

Choose registered calculation names and verify their data and return-value contracts.

SQX calculations resolve through the registered L2 model catalog. A valid identifier is only the first check: the named model must exist, accept the parameters, and produce a comparable value.

Select an input contract

ModelRelevant input or settingInterpretation
priceCurrent bar closeScalar current price; missing close currently falls back to zero
timetz, then session timezone, then UTCA zero-padded HH:mm:ss string derived from bar time
smaminutesAverage of available historical closes over a requested window
emaminutesEMA computed over the returned historical window
pnlTicksCurrent matching position and barSigned price difference in this implementation, not automatically divided by tick size

Browse the indicator catalog for model parameters, then confirm the behavior needed by your strategy. Names and units are not interchangeable across models.

Use the correct parameter name

TICK ema WITH minutes=3 > ema WITH minutes=10 THEN FINAL skipall

This uses minutes, not a generic period input. The current SMA and EMA implementations request one-minute historical data within a time window. They use returned observations and do not enforce an exact requested bar count.

A five-minute request can contain missing bars or a shorter usable sample. A numeric result alone does not establish full initialization or identical live/backtest coverage.

Calculation lifetime

The multi-rule evaluator creates a calculator instance for each model calculation. Do not assume state from a configured long-lived model is automatically reused just because it has the same name.

For persistent configured session-model state, follow reading algorithm values from SJS. For missing-data and readiness checks, follow algorithm readiness.

Keep a known baseline

Test one calculation and comparison before combining it with other inputs or transmission. Record the bar time, returned value, threshold, and whether the rule matched. If the output is structured, use an appropriate accessor model or SJS instead of assuming dotted property syntax works in SQX.

Continue with actions.

On this page