Orders

What each order type actually does after you press the button, and why an order gets rejected.

An order is an instruction to change your position. It is not a promise that the position changes. Between the button and the fill there is a price, a size, a set of rounding rules and a book. This page covers all four, for both systems: the demo terminal at /demo and real trading at /trade.

You submitside, margin, leverageRoundedto the market's precisionSignedby your session keyMatchedagainst resting ordersPosition openmargin locked
Rounding happens before signing. An order whose price or size does not fit the market's precision is rejected, which is the most common reason a trade silently fails elsewhere.

There is no true market order

A market order sounds like it means "fill me at whatever the price is". In real trading it does not. A market order is an aggressive immediate-or-cancel limit order. It is priced through the book with a slippage tolerance, default 5%. It sweeps the resting offers it can reach inside that tolerance, and whatever is left over is cancelled rather than rested.

That has two consequences worth understanding before you rely on it. Your fill price is an average of the levels you consumed, not the top-of-book price you saw. And in a thin or fast market an aggressive order can come back partly filled, or not filled at all, because the book moved outside your tolerance before the order arrived.

Limit orders

A limit order carries a price you will not cross. It rests in the book until it is filled, until you cancel it, or until the session key that placed it expires. It can sit unfilled indefinitely. A limit order that never fills is not an error, it is the order working as specified. If you need the position now, do not use one.

Reduce-only

Reduce-only marks an order as a closing instruction. It can shrink or flatten the position it is attached to. It cannot flip you to the other side, and it cannot open new exposure. If the position is already gone by the time the order would fill, the order is cancelled instead of opening a fresh position in the opposite direction.

Use it for every exit. Closing a long with a plain sell order, when a partial fill or a second click has already reduced the position, is how traders end up unintentionally short.

Comparison of order types by resting behaviour, ability to open exposure, and failure mode
TypeRests in the bookCan open exposureCan fail to fill
Market (aggressive IOC limit)No, cancels the remainderYesYes, if the book moves past the tolerance
LimitYes, until filled or cancelledYesYes, indefinitely
Reduce-onlyDepends on the underlying typeNoYes, and it cancels if the position is gone

Rounding, and why orders get rejected

Every market publishes its own size precision. Your order size is rounded to that precision. Price is constrained twice, and both constraints apply at once:

  • Price carries at most 5 significant figures.
  • Price carries at most (6 minus the market's size decimals) decimal places.
max price decimals = 6 - size decimals size decimals = 2 -> price may have 4 decimal places size decimals = 4 -> price may have 2 decimal places size decimals = 0 -> price may have 6 decimal places and independently: at most 5 significant figures 1234.5 ok (5 sig figs) 1234.56 not ok (6 sig figs) 0.012345 ok (5 sig figs, if decimals allow)
Both limits apply. The tighter one wins.

Getting this wrong is the single most common cause of a rejected order. The rejection is not a failure of the venue and it is not a liquidity problem. The price or size you submitted was not expressible on that market's grid, so nothing was placed at all. Nothing was filled, nothing was charged, and your position is unchanged.

The practical habit: let the interface round for you rather than pasting a price from elsewhere. A price copied off a chart or a calculator will often carry six or seven significant figures and will be refused. Round it down to five before you submit.

Partial fills

A partial fill is an order that got some of what it asked for. You submitted a size, the book held less than that at prices you were willing to pay, and you received the part that was available. The rest is either cancelled, for an aggressive order, or continues resting, for a limit order.

Two things follow, and both are easy to miss:

  1. Your entry price is the size-weighted average of the pieces that filled, not the price you typed.
  2. Your position size is the filled size, not the requested size. Any stop or take-profit you sized against the requested amount is now sized wrong.

Real fees are charged on the notional that actually filled. Our fee on routed volume is 1 basis point, 0.01%. See Fees for the full breakdown.

The demo does not model any of this

The demo terminal is deliberately simpler than the market it imitates, and you should know exactly where the simplification sits.

  • Fills are instant, complete and at the live price. There is no slippage.
  • Order book depth is not modelled. There is no book to walk.
  • Partial fills do not exist. If you ask for a size, you get that size or you get an error.
  • Funding is not charged in demo. Real trading does charge and pay it.

The client sends only four fields: market, side, margin and leverage. Entry price, position size, collateral and liquidation price are all computed on the server from the live price, which refreshes roughly every 20 seconds. The client cannot assert any of them. Demo taker fee is 0.06% on notional, charged on open and again on close.

After the fill

Once an order fills you hold a position, and the relevant numbers become margin, maintenance and liquidation rather than price and size. In real trading the liquidation price is set by the venue's risk engine using a maintenance margin that varies by asset and by position size, and the live figure is always shown on the position itself. The demo uses a fixed approximation instead. Both are covered in Leverage and liquidation.

On the signing side: real orders are signed locally by a session key, so there is no wallet popup per order. The key can place, modify and close orders. It expires after 24 hours and can be revoked at any time. Read Security before you create one, including the part about what a leaked key can still do.