A trailing stop adjusts upward (for longs) as price makes new highs, never moving against the trade. The result: when price finally reverses, the position closes at the high-water mark minus the callback distance.
Shape
"trailing_stop": {
"enabled": true,
"activation_pct": 1.5,
"callback_pct": 0.5
}Params
enabled- toggle on/off.- activation percent - the trailing stop arms only after unrealized profit reaches this percent. Below activation, the original stop applies.
- callback percent - once armed, the stop trails the high-water mark by this percent.
Usage
Best for trend-following strategies that want to capture the bulk of a long move without picking a specific exit target. Pairs naturally with a wide initial stop and no fixed take profit.
Native vs client-side
If your exchange supports native trailing stops (BitMEX, Binance, ByBit), the engine sends the trail to the exchange. Hyperliquid + LNMarkets don't - the engine emulates the trail client-side using the WebSocket fill stream. Either way, the configuration is the same in the strategy JSON.
Pitfalls
- Tight callback in chop = constantly stopped out at the high-water mark with most of the profit unrealized.
- Activation too high = trailing never kicks in for short bursts that don't reach activation.
- Multi-leg strategies: trailing fights with native SL/TP for the same position. The engine routes around this, but expect to see "trailing replaced existing stop" log entries.
