Skip to content
Reference

Risk engine

A trader you follow can place a trade, but that does not mean it lands in your account. Before Signalhouse mirrors anything, the risk engine evaluates it against your account and your rules. Only a trade that passes every check is copied.

How a verdict is reached

The engine runs the checks below in a fixed order, grouped from broadest to most specific: first the preconditions that can stop all copying, then the data-confidence checks that make sure the inputs are trustworthy, then the per-trade account and sizing limits. Evaluation stops at the first rule that fails, and that rule becomes the recorded reason for the rejection. A trade is approved only when nothing fails.

Fail-closed
The engine never trades on incomplete information. If a required input is missing, an oracle is stale, or the index is behind, the copy is rejected rather than forced through on a guess. Rejecting is always the safe default.

Preconditions

These decide whether any copying should happen at all. If one fails, no further checks are needed.

Global kill switch
An operator-level stop. While it is engaged, nothing copies for anyone. It exists so the system can be halted instantly if something looks wrong on-chain or in the venue.
Strategy active
The followed strategy must be in an active state. If a manager pauses it, or it has been moved to a degraded or blocked state, copying stops until it is active again.
Delegation active
Your Drift account must still have the trade-only delegation granted. The moment you revoke that authority on-chain, copying stops, because Signalhouse no longer has permission to act.

Data confidence

A trade is only as trustworthy as the data behind it. These checks make sure the engine is acting on a current, high-confidence view of the market and your account.

Indexer freshness
The on-chain index that reconstructs fills and positions must be current. If it has fallen behind, the engine cannot be sure of your real state, so it waits rather than copies.
Oracle freshness
The market price must be within that market's maximum allowed oracle age. A price that is too old is treated as unusable.
Oracle confidence
The price's confidence interval must sit inside the configured cap. A wide confidence band means the market is uncertain, and the engine declines to size a trade against it.

Account and sizing limits

Account health is a hard floor in both directions. When your account is unhealthy, reduce-only copies are still allowed so you can de-risk, but copies that would increase a position are blocked. A position-increasing copy additionally has to clear every limit below.

Market allowed
The market must be enabled and present in your allowed-markets list. You only ever copy into markets you have opted into.
Size
The copied size must stay within both your maximum copy size and the market's per-trade cap. Sizes that look abnormal relative to the strategy are rejected as a safety measure.
Leverage
The effective limit is the tighter of your setting and the market limit. New notional cannot exceed your free collateral multiplied by that cap.
Drawdown
Your account equity drawdown must remain under the limit you configured. Once you are at your drawdown limit, position-increasing copies stop.
Funding
The market's funding-rate magnitude must stay under your daily funding cap, so you are not copied into a position whose carrying cost you have ruled out.
Reduce-only
If you opted into reduce-only-after-loss and a daily-loss breach has actually occurred, copying is forced reduce-only until the condition clears.