RisbotBeta
Reference

Default Values

Every setting's default and accepted range in one table.

Every number on this page is a copy of one that lives in the bot's code. Nothing here is policy - the pages linked from each row are where a setting is actually explained, and this page exists only so you can see all the figures at once, and so you can tell where each one comes from.

That last part matters more than it sounds. A default has three possible sources, and they behave differently when you go looking for one:

SourceWhat it means
Column defaultA default declared beside the column in the bot's own model, which the app applies whenever it creates your row. It is not a database default - the database stores none for any of these columns - so it is the app, never the database, that fills it in.
Written at provisioningThe column has no default at all. The value is written explicitly, once, when your account is created on your first message to the bot.
Not stored at allA screen's starting state, rebuilt each time you open it. Nothing is saved until you change something.

Each table is followed by a note on when its limits are actually checked. Refusing your reply at the prompt and refusing a trade at the exchange are very different guarantees, and this is the only page where you can see which is which.

Risk Management

SettingDefaultAccepted rangeWhere it is set
Max Risk Per Trade1%Greater than 0, up to 10Written at provisioning
Dollar Risk CapEnabledEnabled / DisabledColumn default
Collateral Balance$0.000 or greaterWritten at provisioning
Buffer Percent2%0 to 5Column default
Balance Range15-25%0 < min < max ≤ 100Column defaults, one per side
Max Loss Trades2A whole number from 1 to 100Column default
Max Percent Loss2%Greater than 0, up to 100Column default
Daily Loss Limit modeReject TradesReject Trades / Cap Risk / Notify OnlyColumn default
Daily Loss Limit statusEnabledEnabled / DisabledColumn default
Trading DaysMonday to Friday allowed, Saturday and Sunday offEach of the seven, allowed or notColumn default per day
Trading Days modeReject TradesReject Trades / Notify OnlyColumn default
Trading Days statusEnabledEnabled / DisabledColumn default
UTC OffsetUTC+0A real offset between -12 and +14 - whole hours, or one of -9.5, -3.5, 3.5, 4.5, 5.5, 5.75, 6.5, 8.75, 9.5, 10.5, 12.75, 13.75Column default

Max Risk Per Trade and Collateral Balance are the two rows above that are not column defaults. Their columns are NOT NULL with nothing behind them, so a new account is given both explicitly when it is created. The result you see is identical; what differs is where to look when the number is not what you expected.

There is one UTC Offset per person, not one per bot. Daily Loss Limit and Trading Days both write and read the same value, and so does your web profile's time zone - three places to change it, one clock underneath. So UTC+0 is only where a bot starts when you have no time zone yet: a bot you add once you have one - on the website or on another bot - starts on it instead.

Where the risk bounds are enforced

Every range in this table is checked at the prompt, when you reply to it, so a value outside the range is never stored and the panel keeps what it had.

Buffer Percent's 5% ceiling is the one bound here that lives in the trading code rather than the settings schema - it exists so a buffer can never reserve so much of your exchange balance that no trade fits. It is still a prompt-time check: it runs before the value is saved, and never again. At trade time a stored buffer is only applied, not re-checked.

What the settings themselves bound is checked later, and elsewhere:

  • Max Risk Per Trade is a ceiling on sizing, applied when a trade is calculated - and again at the prompt when you type an Initial Risk % into Sniper or Manual Entry.
  • Daily Loss Limit and Trading Days are checked at trade time, against the day as your UTC Offset defines it.
  • Balance Range never refuses anything. It only decides whether you get a warning.

Trading

Most of these are the starting values of the Sniper and Manual Entry screens rather than stored settings - they are rebuilt each time you open the panel, so an account that has never opened either screen still sees them. The three exceptions are named in the last column: Initial Risk % and Symbol are remembered per screen, and your symbol list is seeded the first time you use it.

SettingDefaultAccepted rangeWhere it is set
Sniper sideBuyBuy / SellNot stored
Timeframe5m1m, 5m, 15m, 1h, 4hNot stored
Candle Lookback2A whole numberNot stored
SL Buffer$10Dollars; 5 / 10 / 20 offered as buttonsNot stored
Target modeFixed Risk:RewardFixed Risk:Reward / Take ProfitNot stored
Fixed Risk:Reward2A numberNot stored
Manual Entry sideBuyBuy / SellNot stored
Order TypeLimitLimit / MarketNot stored
Initial Risk %0.5%Greater than 0, up to your Max Risk Per TradeNullable column, remembered per screen; the default is what a screen shows before you have chosen. On Sniper an active preset's own risk wins
SymbolBTCUSDT.PAny symbol on your listNullable column, remembered per screen
Symbol listBTCUSDT.P, ETHUSDT.PYours to change; no limit on its lengthSeeded on first use
Sniper presetsBTC 5m, ETH 5mYours to rename, update or deleteWritten at provisioning

Where the trading bounds are enforced

Prices and numbers are validated at the prompt - a reply that is not a positive number comes straight back. Initial Risk % is the exception worth knowing: it is checked at the prompt against your current Max Risk Per Trade, and again when the trade is sized, so lowering that ceiling after typing a risk does not leave a stale value able to trade.

App Lock

SettingDefaultAccepted rangeWhere it is set
App LockOffOn / OffColumn default
PasswordNoneAt least 4 charactersNullable column, no default
Auto Lock30 minutesImmediately, 10 minutes, 30 minutes, 1 hour, 1 day, or a custom 45m / 2h / 1.5d up to 365 daysColumn default

Where the App Lock bounds are enforced

The password minimum and the custom-duration format are checked at the prompt. Auto Lock is always set to something - 30 minutes until you choose - but it does nothing until App Lock itself is turned on.

Performance

SettingDefaultAccepted rangeWhere it is set
PeriodNone - you pick one each timeToday, This Week, This Month, Last 50 / 100 / 200, or CustomNot stored
Custom trade count-At least 1; anything above 500 is quietly reduced to 500Not stored
Custom date range-YYYY-MM-DD..YYYY-MM-DDNot stored

Where the performance bounds are enforced

Both are checked when your reply is parsed. A count below 1 is refused with a message; a count above 500 is not refused - it is clamped, and the report you get back is of the most recent 500 closed trades.

Settings

SettingDefaultAccepted rangeWhere it is set
NotificationsBoth ONON or OFF eachColumn default per switch. Trade Executed, Trade Rejected and Order Failed have no switch and always send
Collateral wallet addressNone0x and exactly 40 hex charactersNullable column, no default
Collateral wallet networkETHETH / ARB / BASEColumn default
Collateral wallet tokenUSDTUSDT / USDC / ETHColumn default

Where the settings bounds are enforced

The address format is checked at the prompt. The notification switches have nothing to validate - they are read at the moment a message would be sent, so turning one off silences the next notification, not the one already on its way.

Limits you meet at trade time

These are not settings. Nothing in the bot lets you change them, and you only ever meet them as a rejection or a retry.

LimitValueWhat it does
Minimum RR after fees1.0A trade whose net reward-to-risk falls below this is rejected
PostOnly retries3 retries, 20 seconds apartA limit order auto-cancelled for crossing the spread is re-placed; market orders never retry
Leverage ceilingThe symbol's own maximum, from the exchangeA trade needing more than the symbol allows is rejected; 100 is assumed only if the exchange does not answer
Minimum order sizeThe symbol's own minimum, from the exchangeA position that rounds down below it is rejected rather than placed short
Live exchange keysSet by your plan - see PlansConnecting past the limit is allowed; only the oldest connections hold a slot, and a bot outside it is refused at trade time
Trades per daySet by your plan - see PlansCounts an accepted order only, across every bot you hold, and resets at 00:00 UTC

Billing

FigureValueWhere it applies
Plan length1-12 months, or 1-3 yearsChecked when the invoice is created
Invoice lapse1 day after creationAn unpaid invoice closes; what arrived stays as credit
Shortfall forgivenUp to 0.10 USDAn invoice this close to paid counts as paid
New deposit addressAt most once every 24 hoursThe old address still credits you
ConfirmationsERC-20 12, Base 30, Arbitrum 240, BEP-20 15Blocks deep before a payment is credited
Refund window7 days after paymentAlso needs no trade placed since the payment
Plan reminder5 days before a paid plan endsBy email and on every bot you use

Where these numbers are quoted from

If a figure on this page looks wrong, the code is right and this page is stale. These are the things to grep, in the order they are most likely to have moved:

WhatWhere
Every accepted range, as the prompt states itSETTINGS_FIELDS in apps/bot/app/services/telegram_service.py
The validators behind those rangesapps/bot/app/schemas/settings.py
Column defaultsapps/bot/app/models/risk_management.py, apps/bot/app/models/settings.py
The provisioning defaults, and the Initial Risk % a draft and a seeded preset start atDEFAULT_MAX_RISK_PERCENT, DEFAULT_COLLATERAL_BALANCE, DEFAULT_INITIAL_RISK_PERCENT in apps/bot/app/services/account_resolver.py
App Lock durations and the 365-day cap_APP_LOCK_DURATION_PRESETS, _APP_LOCK_MAX_DURATION_SECONDS
Sniper and Manual Entry starting values_SNIPER_DEFAULT_*, _MANUAL_ENTRY_DEFAULT_SYMBOL, _DEFAULT_SYMBOLS
The performance trade-count capMAX_TRADE_LIMIT in apps/bot/app/services/reporting/periods.py
Buffer ceiling and minimum RRMAX_BUFFER_BALANCE_PERCENT_OF_BYBIT_BALANCE, MIN_RR_AFTER_FEES in apps/bot/app/services/webhook_handler.py
Tier limits (Free, Pro, Max)The tiers table, edited from admin's Plans page (apps/bot/app/services/plans_admin.py); read by apps/bot/app/services/entitlements.py
Billing windows and the shortfallinvoice_lapse_days, refund_window_days, shortfall_tolerance_usd in billing_settings, seeded by f2a7c91d3b64_billing_schema.py, lapse shortened by e5c1a7d3f290_invoices_lapse_after_one_day.py
Plan lengths, address cooldown, confirmations, reminderMAX_MONTHS, MAX_YEARS in apps/bot/app/services/billing.py; ROTATE_COOLDOWN in deposit_addresses.py; confirmations in apps/bot/app/chain/tokens.py; REMIND_BEFORE in billing_notify.py
Plan prices and offerstiers.price_monthly and tiers.yearly_months_free, with campaigns in discounts; edited from admin's Plans page and priced by apps/bot/app/services/pricing.py

On this page