Indicators & Algorithms
Choose calculations, configured models, and execution primitives for your strategy.
Indicators and algorithms turn market observations into values, state, or actions. Choose a capability based on its input requirements and lifecycle, then decide how the main SJS strategy will use its output.
The existing indicator catalog and primitive catalog remain the parameter references. These guides explain how to use those capabilities together without assuming that every model has the same interface.
Choose the right access path
| Path | State and lifetime | Typical use |
|---|---|---|
| Local SJS calculation | Explicit state owned by your script | A small bounded rolling window |
await cal(name, params) | Fresh registered L2 calculator instance per call | A calculation using the current context and bar |
context.algos.find(name, id) | An already configured L2 tick instance | Reading persistent session-model state |
| Configured execution primitive | Runtime-managed model callbacks | Requesting an action when its conditions hold |
An indicator value is not an order. A configured model can have side effects, so inspect its contract before adding it to an observation-only experiment.
Read in order
- Getting started: inspect a registered SMA calculation from SJS.
- Configuration: names, types, parameters, and instance IDs.
- Reading values: missing, numeric, structured, and neutral outputs.
- Readiness: history and timing requirements.
- Combining signals: turn valid evidence into an explicit decision.
- State and lifecycle: per-call and persistent state.
- Execution primitives: configured actions and SJS coordination.
- Examples: complete observation-only scripts.
- Debugging: missing values, configuration, and conflicting actions.
Keep SJS as the main algorithm. Add L3 policies when higher-level coordination is needed.
For parameter catalogs and known metadata differences, use the reference guide. Compare environments in the capability matrix, or look up shared terms in the glossary.