DSL Configuration: Tiers, Time-Based Exits, and Asset Tuning

Updated May 22, 2026 · 1 min read

Configure DSL trailing stop tiers, time-based exits, and per-asset timing, and edit exit parameters on active positions.

This article covers what to put in the exit: block of your strategy YAML. For the architecture and Phase 1/Phase 2 split, see article 23.

Tier defaults

DSL tiers define when the trailing stop-loss floor moves up. The floor only moves up, never down. If the price reverses and hits the floor, the position closes at a profit.

TierTrigger ROELocks % of high-waterFloor
15%25%1.25%
210%45%4.5%
315%65%9.75%
420%80%16%
530%90%27%

Tier breakpoints are trigger_pct + lock_hw_pct pairs in the strategy YAML under phase2.

Time-based exits (Phase 1). Three exits, all tunable per asset:

Hard timeout
closes the position after a maximum hold time regardless of performance.
Dead weight cut
closes positions that are not moving (sitting near entry with no momentum).
Weak peak cut
closes positions that reached a small peak but stalled.

Configured at the preset root. Field names matter: use phase1MaxMinutes not hardTimeoutMinutes, deadWeightCutMin not deadWeightCutMinutes (see article 25).

Asset-speed tuning

Timing should match how fast the asset moves. Too-short timers on slow movers like BTC kill positions before trends develop.

Asset classHard timeoutDead weightWeak peak
BTC360 min90 min (or off)120 min
ETH / SOL240 min60 min90 min
HYPE / alts180 min30-45 min60 min
Micro-alts120 min20-30 min45 min

Phase 1 loss-protection fields (separate from tiers): max_loss_pct, retrace_threshold, consecutive_breaches_required.

Mid-flight tier editing

With the backend Ratchet Stop service (article 23), yes - use editDslPosition (or ratchet_stop_edit) to modify tier config on an active position. The backend recomputes the floor and updates the exchange stop-loss immediately. With the local plugin runtime only (no backend), tiers are baked at position open time and cannot be changed mid-flight.

Runtime source

Browse the DSL configuration in the runtime.

View on GitHub
Share

Related articles