Post-Trade Cooldown (Candle-basiert)
After a trade, no new signals are allowed for N candles. Prevents over-trading and immediate re-entries after a stop-out.
Core idea
After exiting a trade — whether at a profit or a loss — the cooldown blocks new entries for a fixed number of candles. Only afterwards is the strategy active again.
Why?
- Emotional protection: After a stop-out, there is a tendency to jump right back in (revenge trading). The cooldown forces a pause.
- Market structure: Often the market needs a few bars to "reset" after a setup. An immediate re-entry often lands in the same unfavourable price area.
- Overtrading: Without a cooldown, a strategy can generate an extreme number of trades in whipsaw markets — each with costs (spread, funding).
Botty implementation
strategies/conditions.py → filter condition cooldown. Stateful — managed in the runner (counts bars since the last exit), not in FILTER_FUNCTIONS.
# in runner.py:
if cooldown_candles > 0 and bars_since_last_trade < cooldown_candles:
signal = FLAT # signal suppressed
Parameter: cooldown_candles (default: 0 = disabled).
Recommendations
- With high signal frequency (EMA crossover): 2–5 candles cooldown
- With pattern entries (Holy Grail, Outside-Inside): often unnecessary, since signals are rare anyway
- No overly long cooldowns in trending markets — you miss the continuation
Trade-off
A cooldown helps in whipsaw markets and hurts in strong trends where fast re-entries would be profitable. Backtesting usually shows a trade-off: lower trade count, but higher win rate.