Skip to main content
Back to Blog
7 min read

Bracket orders, post-only, reduce-only: every order option explained

The order form has more options than most users explore. Each one exists for a reason. Here is a tour of the order types and flags, what they do, and when each is the right call.

The base order types

Market. Fills now at whatever the book gives you. Always taker. Use when timing matters more than price (for example, stopping out of a losing position you need to be out of).

Limit. Sits on the book at the price you set. Maker if it does not immediately match. Use when you have a target entry price and can wait for it.

Stop-market. Triggers a market order when the trigger price is hit. Standard stop-loss order.

Stop-limit. Triggers a limit order at a specified limit price when the trigger price is hit. Protects against runaway slippage in fast moves.

Trailing stop. Moves with the market in your favor and stays put when the market moves against you. Useful for letting trends run while protecting accumulated profit.

Bracket orders

A bracket order is a single submission that opens a position and attaches a stop-loss and take-profit. The two child orders are an OCO pair: when one fires, the other cancels.

Bracket orders are the cleanest way to enter a trade with full exit discipline pre-defined. You decide stop and target at the calm moment of entry, not in the heat of a moving trade. We strongly recommend turning the bracket toggle on by default.

On Hex37, the stop and target wait dormant until the entry fills, then activate on the first fill (even a partial one). If one of them triggers, the other automatically cancels.

Order flags

Post-only

Sometimes labeled "ALO" (add liquidity only). Tells the exchange to reject the order if it would otherwise fill as a taker. Use this on patient limit entries where the maker fee tier matters. The cost is occasional rejected orders. The benefit is guaranteed maker pricing.

Reduce-only

Tells the exchange this order can only decrease an existing position. It cannot open a new one or flip the side. Critical for stops and take-profits. Without it, edge cases (partial fills, reactivation timing, UI glitches) can in theory leave you in a flipped position.

Hex37 sets reduce-only automatically on bracket children. If you place stops manually, set it yourself. It is a free safeguard.

Time in force

  • GTC (Good Till Cancelled) - sits until you cancel. Default.
  • IOC (Immediate or Cancel) - fill what you can right now, cancel the rest.
  • FOK (Fill or Kill) - fill the entire order right now, or cancel completely.

Stop trigger reference price

When you place a stop on a perpetual, the form lets you choose what price triggers it:

  • Last price - the most recent trade. Volatile. Wicks can fire your stop on a single bad print.
  • Mark price - the smoothed composite reference, same one used to compute liquidations. Recommended default.

Mark-price triggers filter out single-tick wicks and produce far fewer "unfair stop-out" experiences. We default new accounts to mark for this reason.

Margin mode

Per-position toggle:

  • Isolated - dedicated margin for this position. Worst case is the allocated amount. Recommended default.
  • Cross - all account collateral defends every cross position. Further liquidation prices, but worst case is the entire account.

Use isolated for everything by default. Switch to cross only for deliberately hedged positions where shared collateral makes sense.

The pragmatic defaults

A reasonable starting setup for active trading:

  • Limit + post-only on entries you can be patient with.
  • Bracket toggle on, reduce-only on the children (automatic).
  • Mark-price triggers on stops.
  • Isolated margin.

You can always override any of these for a specific trade. The defaults exist so the right behavior is the path of least resistance.