RisbotBeta
Risk Management

Daily Loss Limit

Stopping trading after a set number of losses or percentage lost.

Daily Loss Limit is a circuit breaker for the day. It is the only rule in the bot that turns a trade away for something that happened on earlier trades - every other check looks only at the signal in front of it.

Before the detail, one distinction the rest of the page depends on. There are two separate caps here, and they measure different things:

CapCountsWhat it is really for
📉 Max Loss TradesHow many trades have lost or are still open todayDiscipline. It stops the session, not the damage.
📊 Max Percent LossHow many dollars today has lost or has at riskProtection. This is the one that bounds what a bad day can cost.

They are not two ways of saying the same thing. Three losses can cost very different amounts depending on how each was sized, so a trade count can never bound your losses - and a percentage cap can be nowhere near spent while you are on your eighth trade of a day that is plainly not working. Set either, or both. Both trip independently, and either one is enough to stop a trade.

Where to find it

Main menu → 📊 Risk Management → 🛑 Daily Loss Limit, or send /daily_loss_limit.

🛑 Daily Loss Limit ────────────────── 📊 Remaining Trades: 2 (1 active) 💰 Remaining Percent: 4.19% - 0.81% on hold ────────────────── 📉 Max Loss Trades: 3 trades 📊 Max Percent Loss: 5% ($132.26) 📐 Equals at least 2 losing trades at Max Risk Per Trade (2.5%) 🕐 UTC Offset: UTC+2 Mode: 🚫 Reject Trades Status: ✅ Enabled Tap a field below to update it. 📖 How this panel works9:35 PM

Reading the top block

The two lines above the divider are today, right now. They are computed with the same code the guard itself runs, so the panel can never promise you room that a trade would then be refused.

LineMeaning
📊 Remaining TradesHow many more losing-or-open trades fit under the count cap. (1 active) is how many of the used ones are still open.
💰 Remaining PercentWhat is left of the day's budget, as a percentage of your balance. - 0.81% on hold is the part tied up in positions that are still open.

Either line reads Not set in two cases: when its own cap is not configured, and - even with that cap set - whenever Status below is ⛔ Disabled, because a guard that is off is counting nothing down. 💰 Remaining Percent has a third case of its own - it needs your live balance to price what today has used, so it reads Not set while the account is disconnected or the exchange cannot be reached. Not set above a cap that is plainly set is one of those two cases, never a lost setting.

Opening this panel goes to the exchange first and catches up on every trade the bot is still tracking, so the figures are current as of the moment you looked - not as of the last trade the bot placed.

What counts against the caps

Both caps are built from the same two ingredients:

  • Losses already realised today - trades that closed on the exchange at a net loss.
  • Positions still open - counted at the full worst-case loss they could still take, as though every one of them will hit its stop.

Both are counted on the day the money is at risk, not the day the trade was opened. A position you opened last night and still hold counts toward today, and if it closes at a loss today, that loss is today's. The caps exist to bound what one day can lose, and that loss lands today - so it uses today's budget even though yesterday's sizing already allowed for it. When this happens, the panel names the trade first, above the Remaining lines:

🛑 Daily Loss Limit ────────────────── Note: BTCUSDT (opened 5 Oct) closed today, so its loss counts today. 📊 Remaining Trades: 2 💰 Remaining Percent: 4.19% ────────────────── 📉 Max Loss Trades: 3 trades 📊 Max Percent Loss: 5% ($132.26) 📐 Equals at least 2 losing trades at Max Risk Per Trade (2.5%) 🕐 UTC Offset: UTC+2 Mode: 🚫 Reject Trades Status: ✅ Enabled Tap a field below to update it. 📖 How this panel works9:35 PM

The bot's card on your account page names them the same way, above its guardrails.

That second point is what makes the guard conservative rather than optimistic. An open trade has not made you money yet, so it is treated as money already at risk. It also means the figures move as trades close, in both directions: a position that closes at a profit stops being counted at all.

Wins never buy back room

A winning trade does not offset a loss, and does not return any budget. Ten wins after three losses leaves the day exactly as close to the limit as it was.

This is deliberate. "I am up on the day, one more will not hurt" is precisely the reasoning a daily loss limit exists to interrupt.

A leg you have marked breakeven does not reduce what this guard counts either, even though it does free budget for adds. Until a trade is actually a win, the guard assumes it is not.

How each cap trips

The count cap compares losses today + open positions against your number, and stops you when it reaches it. A cap of 3 refuses the next trade once three have lost or are still open. Only those three kinds count, so a day of trades that closed in profit never uses the cap up at all - you can be well past your third trade with the count still at zero.

The percent cap works in dollars. Your percentage is taken of your live total balance - exchange balance plus Collateral Balance - recalculated at the moment of the check, not snapshotted at the start of the day. It then adds the risk of the trade being asked for to what today has already used, and compares the projected total against the budget.

That forward look matters. Without it, the very first trade of the day always passes - nothing has been spent yet - even when that single trade is sized larger than the whole day's budget. Comparing the projected total refuses it up front instead of after the fact. A trade that lands exactly on the budget is spending it, not exceeding it, so it is allowed; the next one is not.

The panel translates the percent cap for you when both it and Max Risk Per Trade are set:

📐 Equals at least 2 losing trades at Max Risk Per Trade (2.5%)

It says at least because most trades risk less than the full per-trade ceiling, so the real number of losses the budget absorbs is usually higher.

The three modes

The mode applies to whichever cap tripped.

ModeWhat happens
🚫 Reject TradesThe signal is turned away before anything reaches the exchange, and logged with the reason.
⚖️ Cap RiskThe trade is placed, sized down to whatever the budget still has room for.
🔔 Notify OnlyThe trade is placed in full. You get one warning message.

Cap Risk does not soften both caps

Cap Risk can only shrink a trade to fit a dollar budget. The count cap has no dial to turn down - a fourth trade against a limit of three is a fourth trade - so it still rejects. So does a percent budget with nothing left in it at all: there is no smaller trade to place.

A capped trade is marked as such on its confirmation, so the smaller size is never silent:

(capped from requested 1.5%)

There is one case where capping cannot help. If the room left is so small that the trade sized down to it falls under the exchange's minimum order size, the trade is rejected - and the message says so, rather than blaming the minimum:

Daily loss limit reached - only 0.2% of the daily loss budget is left, and the requested
1.5% capped down to that sizes BTCUSDT below its minimum order size. The budget resets on
the next local day.

What a rejection says

Every rejection arrives as a Trade Rejected notification - where it appears on one line after Reason: - and is written to your history. The wording differs by which cap tripped, because the advice differs. The wording below is the bot's own; the figures in it are an example.

The count cap:

Daily loss limit reached (3/3 losing-or-open trades today (2 realized, 1 open)). This
worker won't take new trades until the next local day.

The percent cap, with the budget partly spent:

Daily loss limit reached ($35.00/$40.00 (3.50%/4%) daily risk used). This trade needs
$10.00 (1%) and only $5.00 (0.50%) is left today. The budget resets on the next local day.

And the one worth recognising on sight - a single trade asking for more than the day's entire budget:

This trade risks $100.00 (10%), more than the entire daily loss budget of $40.00 (4%).
Waiting for the next local day won't help - lower this trade's initial risk to 4% or less,
or raise the daily loss limit.

Every other rejection here clears at midnight. That one does not: tomorrow's budget is the same percentage of the same balance, so the trade is refused identically every day until a setting changes. It is reachable because Max Risk Per Trade and this cap are deliberately not validated against each other - either can be edited on its own, in any order, and a cross-check between them would only be friction you could route around.

In Notify Only mode nothing is rejected and one message is sent instead, ending:

Notify-only mode is active, so new trades will still be placed.

That message is sent once per local day, on the first trade that trips the guard, so a day you have chosen to trade through does not fill the chat.

What counts as a day

Midnight, in the offset you set here - not UTC, and not the exchange's clock.

✏️ Update 🕐 UTC Offset Current: UTC+2 Reply with your UTC offset, e.g. 2, -5, or 5.5. Must be a real offset between -12 and 14. Changes all your bots and your web profile. Reply to this message with the new value. 📖 How this panel works9:35 PM

Reply with a number of hours. Half-hour zones work, and so do the handful of other real-world fractions: 3.5, 4.5, 5.5, 5.75, 6.5, 8.75, 9.5, 10.5, 12.75 and 13.75, on either side of zero where a place actually keeps that offset (-9.5 and -3.5 are the only negative ones).

This offset is shared with every bot you have and your web profile

There is one clock per person, not one per bot. The 🕐 Set UTC Offset button on this panel, the one on Trading Days, and your time zone on the website all write the same value - change it in any of them and the rest move with it.

A city chosen on the website follows daylight saving. A number typed into a bot here does not, unless it happens to match what your city is on right now - see Your time zone for what that does to the field there.

The buttons stay separate rather than becoming one only so that saving a new offset returns you to the screen you started from.

Turning it on

The Status button at the bottom of the panel is the master switch. A new account starts with it on, stopping the day at 2 losing trades or 2% of the balance. Configuring a cap does not arm the guard on its own; if you turn Status off, it has to be enabled again.

Enabling requires 📉 Max Loss Trades specifically. Not "one of the two caps" - the count. A guard configured with only 📊 Max Percent Loss cannot be armed at all: tapping Status gives you a popup and the switch does not move.

Set a Max Loss Trades count first

So a percent-only budget, which is the cap that actually bounds what the day costs you, still needs a trade count set beside it before either of them does anything.

Accepted values

SettingRangeDefault
📉 Max Loss TradesA whole number from 1 to 1002
📊 Max Percent LossGreater than 0, up to 1002%
🕐 UTC OffsetA real offset between -12 and +14UTC+0
ModeReject Trades / Cap Risk / Notify OnlyReject Trades
StatusEnabled / DisabledEnabled

Each prompt states its own rule:

✏️ Update 📉 Max Loss Trades Current: 3 trades Must be a whole number from 1 to 100. Reply to this message with the new value. 📖 How this panel works9:35 PM
✏️ Update 📊 Max Percent Loss Current: 5% Must be greater than 0 and up to 100. Reply to this message with the new value. 📖 How this panel works9:35 PM

What the guard does not cover

  • Adds are exempt. Add To Position is governed by that trade's own ceiling and budget, not by this guard. Once a position exists, managing it is never blocked here.
  • It is per account. Each account keeps its own count and its own budget. Nothing is pooled across accounts, even accounts reached through the same bot.
  • It is not per symbol. One budget covers everything you trade.

On this page