Knowledge · Terms · Swing Stop

Swing Stop

Indicator concept
Swing-basierter Stop-Loss
Stop-loss below the low / above the high of the trigger candle. A structural stop exactly at the point where the setup becomes invalid.

Core idea

Many setups have a "touching candle" — the bar that triggers the entry impulse (e.g. the pullback bar in the Holy Grail setup or the inside bar in the outside-inside breakout). A swing stop places the stop-loss exactly below/above this candle.

Logic: If price falls below the low of the trigger candle (for a long), the setup was wrong. The trade thesis has failed — immediate exit.

Calculation

Long:  stop = low_der_triggering_candle
Short: stop = high_der_triggering_candle

In Botty's conditions.py:

def get_swing_stop(df, latest, side):
    if side == LONG:  return float(df["low"].iloc[-2])
    if side == SHORT: return float(df["high"].iloc[-2])

iloc[-2] = second-to-last candle (the signal candle). The stop is then placed on the exchange as a reduce-only order.

Pros

  • Logically grounded — the stop corresponds to the exact invalidation point.
  • Tight stops possible — with a good entry, the stop often sits very close, enabling good R-multiples.
  • No arbitrariness — no "let's just use 2%" without a reason.

When to use?

  • With pattern-based entries (Holy Grail, outside-inside breakout)
  • When the trigger candle has a clearly defined high/low
  • When no better swing level on a higher timeframe is nearby

Alternatives

Stop type When it's better
Swing stop Pattern entries with a clear trigger candle
ATR stop Volatile markets where wicks often pierce the candle low
Fixed % When volatility is unclear, or as a backtesting default