Advanced order types
Exchange-run execution algorithms and trigger structures, and how to choose between them.
Advanced orders are run by the exchange, not by your client. You submit the intent; a server-side executor slices it, watches for the trigger and sends child orders. They keep running if your connection drops.
All of them are available on perpetuals.
Execution algorithms
Splitting a large order so it does not move the market against you.
| Type | What it does | Key parameters |
|---|---|---|
| TWAP | spreads the size evenly over a time window | total size, duration, slice interval, optional randomization |
| VWAP | paces the size against expected volume instead of evenly | total size, end time, optional historical volume profile |
| POV | participates at a fixed share of market volume | participation rate, maximum duration, slice bounds |
| Iceberg | shows a slice, keeps the rest hidden | total size, visible size, price |
| Scale | places a ladder of resting orders across a range | total size, number of orders, start/end price, size skew |
| Pegged | tracks the book at an offset instead of a fixed price | peg type, offset, minimum/maximum price |
TWAP randomization exists so the slices are not a predictable footprint. On a pegged order, always set the minimum/maximum bounds — otherwise the peg follows the book wherever it goes.
Triggers and exits
Orders that wait for a condition before doing anything.
| Type | What it does | Key parameters |
|---|---|---|
| Conditional | fires a market or limit order when a trigger price prints — this is how stop-market and stop-limit are expressed | trigger price, order type, limit price, trigger price source |
| OCO | two exits where filling one cancels the other | take-profit trigger, stop-loss trigger, optional limit prices and sizes |
| Bracket | an entry with both exits attached in one submission | entry type and price, take-profit, stop-loss |
| Trailing stop | a stop that follows the favourable side at a set distance | callback rate or distance, activation price, expiry |
| Sniper | waits for a market condition, then takes aggressively | target price or breakout direction, minimum depth, minimum spread, cooldown, maximum executions |
Stop market and stop limit are conditional orders with the order type set to market or limit — the same thing under a clearer name.
A trigger fires off a chosen reference: mark, last or index. Mark is the sensible default, since it is what the risk engine uses and it cannot be pushed around by a single thin print.
Choosing between them
- Size that would move the book → TWAP if you care about time, VWAP or POV if you care about participating with the market's own volume.
- Size you would rather not advertise → iceberg.
- A range you want to accumulate across → scale.
- You want to be a maker but not to chase → pegged with bounds.
- You want in only if the market confirms → conditional or sniper.
- You want out at a level whether or not you are watching → OCO, bracket, or a position take-profit/stop-loss.
Interaction with position exits
Bracket exits and OCO legs are protection attached to a position, the same slot that a position-level take-profit/stop-loss writes to. Setting one while the other is live is refused rather than silently arming two engines against the same position; you can replace the existing protection explicitly. Each position reports what is currently guarding it.
Programmatic details, including every parameter and the failure codes: Perpetuals: advanced orders.
Updated 9 days ago
