Skip to main content

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:

FieldMeaning
SignalWhich detector (from the platform catalog)
AllocationOff · Normal · Important · Critical
RequiredMust-fire flag for the Required gate
ParamsPer-signal knobs (strict schema; shape differs by signal)

Allocation

TierWeight in the aggregateMeaning
OffExcludedTrackable in explainability; does not score
NormalStandard — the create seed for report-covered modules
ImportantCounts twice a Normal
CriticalCounts 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.

GateQuestionDefault
Min scoreHow 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.

FieldSeed
AllocationOff for every signal (dense row set — full catalog)
ParamsCanonical registry defaults per signal
Requiredfalse

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.

SurfaceWhat it returns
Strategy BuilderFull scorecard + per-signal param forms
MCP / Commanderlist_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

LayerRole
StrategyAuthors the revisioned scorecard + gates
AgentHolds the materialized dense copy used at evaluation
ReplaySnapshots effective allocation / params / gate thresholds per decision

Strategies overview · Entry policy · Trade levels · Exit policy