Why
Without a stop-loss, every trade is an unbounded bet. Markets can move further than you think possible — and hoping is not a strategy. Van Tharp and Ed Seykota agree on one point: the most important thing is to keep losses small.
Mechanics in Botty
Botty places entry and stop grouped atomically via bulk_orders(grouping="normalTpsl"). As a result, a position never exists without a stop — not even for a few seconds.
execution/ensure_stop_loss() additionally checks on every tick whether an open position has an associated reduce-only stop. If not → an emergency stop is placed immediately.
How is the stop positioned?
- Structure-based — below the last swing low / above the last swing high.
- ATR-based — entry − n · ATR. Botty default:
ATR_STOP_MULTIPLIER(config.py). - Percentage-based — fixed distance (e.g. 2%).
- Time-based — close the position after X candles without profit (less classical).
Risk per trade
risiko_usd = Account-Value × Risk%. Choose the position size so that exactly this amount is lost on a stop hit. Usually 0.5–2% per trade (Botty: see config.py → POSITION_SIZE_PCT and MAX_POSITION_USD).
Common beginner mistakes
- Moving the stop further away as soon as it threatens to trigger. → turns small losses into catastrophes.
- Stops at obvious levels (round numbers, recent highs/lows). → high probability of getting spiked out.
- No stop on volatile assets, justified with "it always wicks around briefly anyway" → no.