Risk Management
How bot-level risk limits and strategy exit rules work together to protect your capital.
Three Layers of Protection
plutarc applies risk controls at three independent layers, each serving a different purpose:
Strategy Exit Rules
Exit rules are part of your strategy template. They define when to close a specific position based on market conditions — hard stop losses, take profit targets, trailing stops, break-even stops, chandelier exits, volatility exits, time stops, and signal flip exits. Multiple exit rules can be active simultaneously, and any triggered rule closes the position.
Your hard stop loss is also placed on the exchange itself, as a resting order held by the exchange's matching engine — so it is enforced even if your bot is restarting or loses its connection. When a trailing or break-even rule moves the stop, the resting order is adjusted in place on exchanges that support amending an order, leaving no window in which the position sits unprotected; elsewhere the bot replaces it. Stops trigger on the mark price wherever the exchange lets the order specify a trigger basis — so a single aggressive print (a "wick") that the position's valuation never reflected won't stop you out. On exchanges without a selectable basis the exchange's own default applies.
Strategy Risk Gates
Risk gates are strategy-level components that block entries based on market risk conditions. They run after signals are evaluated but before a trade is opened — so you can see what the strategy would have done while still blocking risky entries. Components like Funding Rate, ATR, Volume Spike, and Volatility Regime Classifier can serve as risk gates, blocking entries when funding is extreme, volatility is too low, or volume is too thin.
Organisation Defaults and Per-Bot Overrides
Risk limits act as hard safety guardrails that override strategy decisions. Even if your strategy signals an entry, the bot will block it if a risk limit would be violated. Risk limits protect against scenarios your strategy may not anticipate — runaway losses, excessive exposure, or execution problems.
They are set in two places. Your organisation defaults apply to every bot and can be configured under Settings → Risk Defaults before you deploy anything. Any individual bot can then override specific limits on its Risk Limits tab; every other limit keeps inheriting your defaults, so changing a default updates the whole fleet at once.
Overriding is explicit. A limit you override stays pinned to that bot even if you later change the organisation default to a different value — so a fleet-wide change can never quietly move a limit you set deliberately.
Think of exit rules as tactical (managing individual trades), risk gates as conditional (blocking entries in risky markets), and risk limits as strategic (protecting the overall account). All three layers are always active.
Position Sizing
Risk Per Trade
Every position is sized from your Risk per trade setting: the bot works out where the strategy's stop loss will sit, then sizes the position so that a stop-loss hit loses exactly this percentage of your account equity (measured in the contract's settlement currency). Tighter stops therefore produce larger positions and wider stops smaller ones — the loss at the stop stays constant.
Leverage does not change your position size. It only reduces the margin locked for the position (and raises the cap on how large a position your available margin can support). A stop-out costs the same fraction of equity at 1× as at 10× — leverage on plutarc is about capital efficiency, not risk appetite.
On small accounts, a very low risk percentage can produce a position below the exchange's minimum order size. The bot then skips the entry rather than oversize it — if your bot is not trading and the activity log shows sizes below the minimum, raise the risk percentage or add equity.
Position Limits
Max Positions per Asset
The maximum number of simultaneous open positions allowed on a single trading instrument. This prevents over-concentration on one symbol. When the limit is reached, new entries for that asset are blocked until an existing position is closed.
Max Positions Total
The maximum number of simultaneous open positions across all instruments. This caps overall exposure. When the limit is reached, no new positions can be opened on any asset until an existing one is closed.
Loss Limits
Per-Trade Loss Backstop
Position sizing already targets your Risk per trade percentage as the loss at the stop, and the stop itself rests on the exchange. On top of that, the bot watches every open position's unrealised loss: if it ever exceeds 1.5× your configured risk per trade, the position is closed immediately at market — regardless of what the strategy's exit rules say. This emergency backstop catches the cases a resting stop can miss: price gapping through the stop level, or a stop that failed to place. It never interferes with normal stop-outs, which occur at 1× your configured risk.
Daily Loss Limit (Kill Switch)
The maximum cumulative loss allowed in a single trading day, expressed as a percentage of equity. When triggered, the bot closes all open positions and halts trading until the next trading day. This prevents a series of losing trades from compounding into catastrophic drawdown.
Consecutive Loss Pause
The number of consecutive losing trades after which the bot automatically pauses new entries. When triggered, the bot enters a cooldown period (configurable duration) during which it manages existing positions but does not open new ones. This helps break losing streaks and prevents emotional or momentum-driven overtrading.
Execution Safety
Max Leverage
The maximum leverage the bot is allowed to use when opening positions. This acts as a bot-level safety cap — even if a symbol is configured with higher leverage, the risk manager will reject orders that exceed this limit.
Exchanges also enforce their own per-symbol maximum leverage (e.g. 100x on BTCUSDT, 50x on ETHUSDT). These limits are shown on the asset configuration page and validated when setting leverage. The effective leverage used is the lowest of: the per-symbol setting, the bot's max leverage cap, and the exchange's per-symbol maximum.
Setting a symbol's leverage above your max leverage cap does not fail loudly at the exchange — the risk manager simply rejects every entry, so the bot runs but never trades. The asset configuration page now warns you the moment a symbol exceeds the cap, and shows the effective cap beside the exchange maximum, whether or not the key is assigned to a bot yet.
Max Slippage
The maximum acceptable slippage (in basis points) between the expected price and the fill price. If an order fills at a price worse than this threshold, the bot logs a warning. This helps detect deteriorating liquidity conditions or exchange issues.
API Error Threshold
The number of consecutive API errors allowed before the bot automatically pauses trading. This protects against scenarios where the exchange API is degraded — the bot stops placing orders rather than operating with unreliable connectivity.
How Exit Rules & Risk Limits Interact
Exit rules and risk limits are evaluated independently and both are always active. The key difference is scope and priority:
- Exit rules act on individual positions — they evaluate market conditions (price relative to stop level, ATR, time held) and close the position when their condition is met.
- Risk limits act on the bot as a whole — they can block new entries (position limits), force-close positions (per-trade loss), halt all trading (daily kill switch), or pause entries (consecutive loss).
- Risk limits always win — if a strategy signals an entry but a risk limit says no, the entry is blocked. If the daily kill switch triggers, all positions are closed even if no exit rule has fired.
Example Scenarios
Scenario: Flash crash
A sudden price drop gaps through your strategy's hard stop loss level. The per-trade loss limit catches the position at the next available price once the loss exceeds the configured percentage, limiting damage beyond what the stop loss could prevent.
Scenario: Choppy market
Your strategy enters and exits repeatedly in a ranging market, accumulating small losses. After the configured number of consecutive losses, the consecutive loss pause halts new entries for the cooldown period, giving the market time to develop a clearer trend.
Scenario: News-driven volatility
An unexpected event causes losses across multiple positions. The daily loss kill switch triggers when cumulative losses hit the threshold, closing all positions and preventing further exposure until the next trading day.
Scenario: Exchange API issues
The exchange API starts returning errors intermittently. After the configured number of consecutive failures, the API error threshold pauses the bot to avoid placing orders that may not execute correctly or that the bot cannot track.
Best Practices
- Always configure both layers. Strategy exit rules handle normal trade management; bot risk limits catch the edge cases your strategy does not anticipate.
- Set the daily loss limit conservatively. A common starting point is 3-5% of equity. This ensures a single bad day cannot significantly damage your account.
- Use the max leverage limit. Even if you configure higher leverage on the exchange, capping it at the bot level prevents accidental over-leveraging during template changes.
- Backtest before deploying. Review the maximum drawdown and worst-case trade in backtest results. Set your risk limits to survive those scenarios with margin to spare.
- Review risk limits periodically. As your equity changes, fixed-percentage limits may need adjusting. What was conservative at launch may become too loose or too tight as the account grows or shrinks.