Safety model
The design assumes you will make mistakes, and that markets will do something unexpected. The defaults are chosen to make bad outcomes smaller and visible.
Guard rails
| Rail | Effect |
|---|---|
| Dry-run default | New bots and restarts use simulated fills. |
| Typed confirmation | Going live needs the bot's exact name. |
| Funds checked per entry | Bots share the wallet's money first come first serve. A bot opens only when its margin is free, and nothing opens when the balance cannot be read. |
| Wallet loss budget | Caps cumulative loss across all bots, shown in dollars and in stop-outs. |
| Live unlocks after 20 dry rounds | The header offers Go live up front only once a bot has logged 20 dry rounds. The manager's own checks decide, not the page. |
| Per-bot stops | A loss stop and a round cap per bot. |
| Own position only | A bot only closes the position it opened, never "the first open position". |
| Every round counted | If a result cannot be read, the modelled result is booked, so a loss stop is never skipped. |
| Stale-feed exit | Closes an open round if prices stop arriving. |
| Graceful shutdown | Stopping, or the manager exiting, closes open rounds first. |
| Bounded settings | Position size and leverage must stay inside validated ranges. |
Keys
Signing keys stay on your computer, outside the project folder, in a file only you can read. They are never uploaded, logged or synced.
What the rails do not do
- They do not make a losing strategy profitable.
- They cannot protect against everything: venue outages, gaps and slippage can still cost money.
- Results are measured from balance changes, so deposits or other activity during a round can distort that round.
Risk
Trading involves risk of loss. Only use funds you can afford to lose. This is not financial advice.