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.

TypeWhat it doesKey parameters
TWAPspreads the size evenly over a time windowtotal size, duration, slice interval, optional randomization
VWAPpaces the size against expected volume instead of evenlytotal size, end time, optional historical volume profile
POVparticipates at a fixed share of market volumeparticipation rate, maximum duration, slice bounds
Icebergshows a slice, keeps the rest hiddentotal size, visible size, price
Scaleplaces a ladder of resting orders across a rangetotal size, number of orders, start/end price, size skew
Peggedtracks the book at an offset instead of a fixed pricepeg 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.

TypeWhat it doesKey parameters
Conditionalfires a market or limit order when a trigger price prints — this is how stop-market and stop-limit are expressedtrigger price, order type, limit price, trigger price source
OCOtwo exits where filling one cancels the othertake-profit trigger, stop-loss trigger, optional limit prices and sizes
Bracketan entry with both exits attached in one submissionentry type and price, take-profit, stop-loss
Trailing stopa stop that follows the favourable side at a set distancecallback rate or distance, activation price, expiry
Sniperwaits for a market condition, then takes aggressivelytarget 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.


Did this page help you?