Runtime
The runtime executes strategy decisions against market data.
The current runtime path is shared across backtests, replay, signals, and automation where practical. That parity matters: a strategy should not have one decision path for backtests and another for runtime unless the difference is explicit.
Runtime Responsibilities
- load project config and plugins
- prepare market data and context
- call strategy logic on closed candles
- enrich signals with indicators, AI, and ML context
- apply runtime gates
- place or skip orders
- store signals, evaluations, orders, and diagnostics
Execution Model
signalsevaluates every enabled setup once unless command-line filters narrow the run.signals-daemonkeeps only recent deterministic calculation state and rebuilds it safely after gaps or configuration changes.- each calculation is identified by its connector, market universe, account, deployment composition, symbol, interval, and computed strategy revision.
- strategy-level
selection.tickersoverrides the deployment ticker list; active-position symbols remain managed after selection changes. - the daemon reloads project settings and pause controls every cycle, so an affected strategy rebuilds without restarting the process.
- Bybit closed candles can arrive through a persistent WebSocket with REST recovery; the dashboard has a separate market WebSocket gateway.
- signal/evaluation persistence happens before optional screenshots.
- live strategy settings are read from
tradejs.config.ts; Redis stores accounts, optional pause state, heartbeats, signals, evaluations, and trades.
strategyRevision covers the exact strategy package, its direct TradeJS
runtime dependencies, @tradejs/node, and the parsed complete config.
deploymentCompositionId covers the execution target, enabled states, ticker
and asset-class selections, and all strategy revisions. Both are recomputed from
the strict runtime package manifest; neither is an operator-maintained counter.
The app displays the version-controlled strategy configuration read-only, strategy analytics, drawdown, orders, and pause/resume. Runtime charts mark recorded strategy-revision changes, and the Revisions action lists the current revision together with changes observed in the selected trade window. Strategy-card returns, win rate, drawdown, exposure, and related statistics use closed trades only. Active trades remain visible in the summary and order list, but their unrealized PnL does not enter those statistics until the trade closes. Research evidence may be produced locally or in CI, but the server and UI do not require it or show an evidence status.
Related: