Readiness
Separate initialization, coverage, output validity, and freshness.
Readiness has several parts: the model must exist, its inputs must be available, its output must have the expected shape, and that output must be suitable for the decision time.
Check history coverage
A time-window calculator can return a finite result from fewer rows than expected. The current SMA averages available rows and does not enforce a specific row count for minutes.
If a strategy requires a minimum count, uninterrupted coverage, or a particular sampling cadence, verify that requirement explicitly. Do not use a finite result as a substitute for those checks.
Check configured state
A configured session model can be present before enough observations have initialized its state. Use its own documented readiness contract, including any required companion models or retained history.
Distinguish three outcomes: missing configuration, configured but not ready, and ready with neutral evidence. They imply different next steps and should not collapse into the same numeric fallback.
Account for execution order
The shared runner executes L3 and SJS before the applicable L2/L1 callbacks, then native Pine. A configured model read during SJS is not guaranteed to include the current frame's later update.
A calculator called directly by SJS receives the current bar, but its data query still has its own coverage and timestamp behavior. Establish which observation each piece of evidence represents.
Account for warmup and gaps
Local script windows, external session warmup, and model-internal initialization are separate mechanisms. A reconnect or gap may require your strategy to pause decisions even though an old model output is still present.
See market-data warmup before assuming a live preload and a historical starting window produce identical initial state.
Continue with combining signals.