# Order Types

An order tells Meridian to buy or sell a product. The order result depends on its price, quantity, time condition, and optional controls.

## Market Order

A market order uses available order-book liquidity immediately. It can fill at more than one price. Any unfilled quantity is canceled.

A market order does not guarantee an execution price.

## Limit Order

A limit order fills at its limit price or a better price. It can rest on the book if it does not immediately cross an opposite order.

Supported time conditions include:

* **Good till date (GTD):** remains active until its expiry time or until it is complete.
* **Immediate or cancel (IOC):** fills available quantity immediately and cancels the remainder.
* **Fill or kill (FOK):** fills the complete quantity immediately or cancels the complete order.

## Post-Only Behavior

A post-only order must add liquidity. The exchange rejects or cancels it if it would immediately take liquidity.

## Reduce Only

A reduce-only order can only reduce an existing position. It cannot increase exposure or flip the position.

The system can reduce the working quantity if another fill makes the order larger than the remaining position.

## Stop Orders

A stop order stays inactive until the oracle mark reaches its trigger.

* A **stop-market** order becomes a market order.
* A **stop-limit** order becomes a limit order.

The trigger price is not the execution price. A gap or thin book can cause slippage, no fill, or a partial fill.

During an mPerp mark-price gap, the frozen mark can prevent a stop from triggering. See [Mutualized Perps](/trading/perpetual-futures/rwa-perpetuals).

## Position-Close Order

A position-close order uses the current position size. It cancels applicable resting and untriggered orders before it closes the position.

## Linked Orders

* **One triggers the other (OTO):** completion of the first order activates the linked order.
* **One cancels the other (OCO):** execution of one order cancels the other orders in the group.

OCO behavior is atomic within the exchange block schedule. See [Block Execution](/trading/perpetual-futures/block-execution).

For request schemas, signatures, and response behavior, see [Order Placement](/developer-guides/trading-api/order-placement).
