Risk

Risk product landing page

Pre-trade gating that prevents bad trades from reaching your broker.

Risk is the layer between your strategy and your money. Set rules around sector concentration, daily and weekly loss caps, consecutive-loss cooldowns, net exposure limits, and entry-quality gates โ€” and any signal that doesn't pass gets blocked before it ever reaches the broker.

What it does

  • Rule engine โ€” configurable rules that evaluate against live state before order placement. Sector caps, daily and weekly loss limits, consecutive-loss cooldowns, no-adding-to-losers, net exposure gates, entry-quality (SMA trend) checks.
  • Live exposure tracking โ€” per-user, per-day risk state computed from live positions in real time. Realised P&L, consecutive losses, cooldown clock, total notional exposure.
  • Pre-trade /risk/check API โ€” programmatic gating for external clients. Same rules, same engine. Strategy signals can opt in to cloud gating per portfolio, or external clients can call the endpoint directly before placing their own orders.

When to use it

  • You've had a bad month and want a daily loss cap to force you to stop trading after a drawdown threshold.
  • You tend to over-concentrate in one sector and want a hard cap.
  • You have a rule ("never add to a losing position") and want it enforced programmatically instead of relying on discipline.
  • You're building an external executor on top of TraderTape's signal API and want the same gating logic the web UI uses.

When NOT to use it

  • You trade discretionarily and don't want rules fighting you. Risk is opt-in per portfolio โ€” you don't have to use it at all.
  • You only use paper portfolios. Risk rules still run on paper but blocking a paper trade is less meaningful. Main value is live execution.

Current status

Risk is the least-developed of the four products. The engine itself (risk_engine.py) is wired into the order placement path today โ€” when you approve a signal and click Place, risk rules evaluate before the order goes out. But the UI surfaces for rule editing, exposure dashboards, and the /v1/risk/check public API haven't been built yet.

Until they ship, you can:

  • Edit rules via Settings โ€” the existing rule builder is in the Risk Rules card.
  • See current exposure via the dashboard risk banner โ€” /app/wealth/dashboard shows a risk status strip when rules are active.
  • Inspect state via the API โ€” GET /api/risk/state and GET /api/risk/exposure exist but aren't under /v1/.

The dedicated Risk product pages (Rules, Exposure) will ship in Phase 5 of the architecture refactor. Until then, Risk is an engine without a UI home โ€” but it's a real engine, not a placeholder.

Needs a broker?

No for editing rules and inspecting state. Yes (transitively) for enforcement during live trading, since rules only fire when orders are actually being placed.

Planned phases

  1. /api/v1/risk/check public endpoint โ€” external clients can call the same rule engine TraderTape uses internally.
  2. gating flag on portfolios โ€” cloud | client | none. Scanner calls risk.check() when gating=cloud. Wires the currently-broken gap between signal generation and risk enforcement.
  3. Dedicated UI surfaces โ€” /app/risk/rules (editor) and /app/risk/exposure (live dashboard).

Until Phase 5 ships, use Settings โ†’ Risk Rules to configure rules.