Signal rules
Signal rules are the strategy’s scorecard: which signals count, how hard they count, which must fire, and the three gates that decide whether a coin earns a model call.
Authored on the strategy. Bind / propagation materializes a dense copy onto every bound agent. The money path reads the agent copy only — there is no runtime merge back to the strategy.
Every SignalId has exactly one rule. Sparse edits change named signals; the rest keep their current triple.
Rule shape
Each rule is:
| Field | Meaning |
|---|---|
| Signal | Which detector (from the platform catalog) |
| Allocation | Off · Normal · Important · Critical |
| Required | Must-fire flag for the Required gate |
| Params | Per-signal knobs (strict schema; shape differs by signal) |
Allocation
| Tier | Weight in the aggregate | Meaning |
|---|---|---|
| Off | Excluded | Trackable in explainability; does not score |
| Normal | 1× | Standard — the create seed for report-covered modules |
| Important | 2× | Counts twice a Normal |
| Critical | 3× | Counts three times a Normal |
Only triggered signals with allocation above Off enter the aggregate. Scaling every non-zero tier by the same factor would not change the result — the four named tiers give useful ratios without fake decimal precision.
Required does not change allocation. A Required Critical still contributes 3× like any Critical; Required only feeds the must-fire gate.
If every signal is Off, nothing can score and no model call is spent.
Report membership does not gate scoring. Allocation > Off is the sole per-signal scoring gate — a signal can score with or without its module on the report.
Aggregate score
aggregate = Σ (score × allocation) / Σ allocation
Over triggered, allocation-above-Off signals only. Signal scores are self-scaled by their evaluators; platform calibration constants are not author params.
The three gates
All three must pass before the strategy spends a model call on a coin.
| Gate | Question | Default |
|---|---|---|
| Min score | How convinced must the weighted scorecard be? | 0.5 |
| Min must-fire (Required count) | How many REQ-flagged, non-Off signals must actually fire? | 0 (gate off) |
| Min ATR % | How much must the coin be moving (ATR ÷ price × 100)? | 0.5 |
Min score
Weighted average of every scoring signal — Off 0 · Normal 1× · Important 2× · Critical 3×. Below this, evaluation stops before construction; nothing is spent.
Example. 0.30 — permissive, more marginal setups. 0.75 — only strongly aligned reads; quiet stretches are normal.
Min must-fire
Count over REQ-flagged rows with allocation above Off that fired this cycle. Separate from score: a coin can clear the average and still fail when the signals you insisted on stayed silent.
Example. 0 — Required flags mark intent but block nothing. 1 — at least one must-fire signal live. Setting the count above how many signals you flagged REQ makes the gate unreachable.
Min ATR %
Volatility floor. Below it, range is too tight for stop and target to clear fees — cycle stops before construction.
Example. 0.10 — almost never blocks. 2.00 — only fast-moving coins; calm majors sit out.
Create seed
Every signal starts Off. The platform does not invent a scoring weight from the report.
| Field | Seed |
|---|---|
| Allocation | Off for every signal (dense row set — full catalog) |
| Params | Canonical registry defaults per signal |
| Required | false |
Authoring is what puts a signal in play (Normal / Important / Critical). Report membership drives perception (inReport — whether that module’s columns appear in the briefing); it does not gate allocation or scoring. A custom-only report can still score any enabled signal.
Changing report sections does not rewrite the scorecard. Realign weights deliberately when perception changes.
Params and discovery
Each signal has its own strict parameter object (including empty {} for structural signals). Undeclared keys are refused. Tunables carry unit and meaning in the live catalog — this page does not enumerate every signal.
| Surface | What it returns |
|---|---|
| Strategy Builder | Full scorecard + per-signal param forms |
| MCP / Commander | list_strategy_signals, get_strategy_signal_definition, get_trading_config_catalog |
Omitting params on an update keeps the existing object byte-for-byte. Supplying params replaces the whole object after validation.
Viability
Before a strategy can be (or stay) active, Required rules must be structurally satisfiable at the strategy timeframe: enough Required, non-Off signals must be available on the ladder. A lower-timeframe-only Required rule cannot be the sole support for a positive must-fire gate at the ladder floor.
Runtime: Required gate passes when fired Required (allocation > Off) ≥ minRequiredCount.
Ownership
| Layer | Role |
|---|---|
| Strategy | Authors the revisioned scorecard + gates |
| Agent | Holds the materialized dense copy used at evaluation |
| Replay | Snapshots effective allocation / params / gate thresholds per decision |
← Strategies overview · Entry policy · Trade levels · Exit policy