Post‑Only, Reduce‑Only, GTC, IOC and FOK in Crypto Futures
Jump to sectionsShort answer
Post-only refuses immediate taker execution; reduce-only prevents an order from increasing or reversing the targeted position. GTC keeps an eligible remainder working, IOC cancels whatever cannot fill immediately, and FOK requires the full eligible request immediately or none. Choose the combination by its acceptable failure outcome, not by enabling every restriction.
Bybit supports explicit time-in-force and reducing instructions. Those controls suit orders whose incomplete outcome matters: keep a remainder, cancel it immediately, require the full size or prevent an exit from becoming a reversal.
An order canceled immediately can be doing exactly what you asked
You submit a price and quantity that look valid, yet the order disappears. Before removing every advanced setting and trying again, identify what the instruction was designed to prevent. A post-only cancellation can mean it refused an immediate taker fill. An FOK cancellation can mean it refused an incomplete position. Both outcomes may be correct even when there is some liquidity at your price.
These controls answer different questions. Post-only decides whether the order may take existing liquidity. Reduce-only decides whether it may increase or reverse exposure. Time in force decides what happens when the full quantity cannot execute immediately. They are not interchangeable “safer trade” switches, and enabling every available option is not a coherent execution plan.
Start from the intended change in the account. “Sell at this target without ever opening a short” needs an exposure restriction. “Buy only if the entire quantity is available now” needs an all-or-none immediate instruction. “Quote a bid and wait, but never cross the offer” needs maker-only behavior. The words after the price and quantity determine which of those requests you have actually sent.
The examples below use order-book perpetuals and explicitly named product behavior. An instruction can be exposed as a checkbox on one venue, an order subtype on another, or a parameter available only in certain position modes. Matching the displayed name is not enough to establish that every possible combination is supported.
GTC, IOC and FOK: decide what happens to the unfinished quantity
Consider a request for ten contracts at a chosen limit price. Six contracts are immediately available at that price or better. Good till canceled, or GTC, can execute six and keep four working. Immediate or cancel, or IOC, can execute six and cancel four. Fill or kill, or FOK, requires all ten immediately and therefore executes none in this situation.
- Filled
- 6 contracts
- Still open
- 0 contracts
- Canceled
- 4 contracts
Only the filled quantity changes the position; no remainder stays in the book.
Change the available quantity in the exercise. At zero availability, GTC can keep the full request open, while IOC and FOK leave no resting order. At ten or more, both IOC and FOK can achieve the full request in this deliberately frozen book. Their difference becomes important when the available amount is smaller than requested.
IOC accepts a smaller result; FOK rejects it
Use IOC when an immediate partial execution is still useful and you do not want an old remainder trading later. For example, a trader reducing exposure may accept a smaller reduction now, then reassess the remaining position. IOC removes the unfilled instruction; it does not remove the exposure that failed to close.
FOK fits a different requirement: the proposed trade is useful only at its full size within the stated price boundary. It can avoid an unwanted partial leg, but it does not make separate trades on different exchanges execute atomically. If one leg fills and a second venue rejects its own FOK, the first trade still exists. “All or none” belongs to the individual accepted instruction.
GTC fits a price-based request that remains relevant after the immediate opportunity passes. That persistence is also its cost. If your view changes, the leftover order can fill hours later while you are thinking about a different trade. The quantity still working deserves a place in the exposure plan rather than being treated as a harmless historical entry.
A GTC request remains actionable after a partial fill. If only its price or quantity is amended, inspect the updated order rather than assuming the exchange created a wholly separate position.
Time in force governs whether an unfilled remainder may stay in the book. IOC cancels the unmatched remainder immediately; GTC leaves it resting, subject to contract validity and risk controls.
Post-only cancels a crossing order instead of silently accepting taker execution
Post-only protects maker participation. If a Bybit order would execute against an existing quote immediately, it is canceled rather than accepted as a taker fill. A canceled request may therefore have obeyed your instruction.
| Instruction | Possible result |
|---|---|
| Ordinary marketable limit | Immediate taker execution within the limit |
| Post-only at that same price | Cancellation if it would take liquidity |
| Repriced passive limit | May join the book, with a new waiting position |
Repricing can preserve passive intent, but price may move away while you wait. For an urgent reducing exit, decide whether maker participation is still a requirement rather than removing the constraint automatically.
Reduce-only follows the remaining position, not yesterday’s exit quantity
A one-way account holds a long of 12 SOL contracts, each representing the same fixed contract unit. A trader creates a sell exit for all 12. Before that exit fills, another closing action reduces the long to 5. The old instruction is now larger than the exposure it was intended to remove.
If the sell is unrestricted and all 12 execute, the first 5 close the remaining long and the next 7 create a short, assuming the account permits that reversal. Reduce-only prevents the excess from becoming a new opposite position. The venue can shrink or cancel the instruction according to its rules, but it must not treat an exposure-increasing fill as an eligible reduction.

Quantity protection and execution probability are separate
Reduce-only does not force the remaining 5 contracts to close. A price-limited sell still needs suitable bids, and a post-only sell can still be canceled if it would cross. The instruction restricts which position changes are permitted; it does not solve a lack of counterparties or override another execution condition.
A reduce-only buy also cannot reduce a long. The order direction has to oppose the position it targets. With no relevant position, there is nothing to reduce. Bybit documents rejection of new reduce-only orders in that situation. Turning the restriction off merely to make the order pass can create the very new exposure the setting was meant to prevent.
Several exits can compete for the same remaining position. Imagine three profit targets totaling more contracts than are left after a manual reduction. Do not assume every original target retains its full quantity. Bybit documents resizing or canceling reduce-only orders, including adjustments to more distant prices when nearer eligible exits already cover the available position.
The practical follow-up after a partial manual close is therefore to inspect the remaining targets. An automatically resized order may be appropriate, while a canceled distant target may need no replacement at all. Recreating every canceled exit at its old size can restore an over-allocation rather than repair a problem.
Distinguish closing a position from opening its oppositeWhich order instructions can be combined?
Separate the lifetime or execution choice from the exposure restriction. In Bybit’s order API, GTC, IOC, FOK and PostOnly are alternative values of a single time-in-force field. Reduce-only is a separate parameter. You do not send IOC and PostOnly simultaneously and expect the engine to decide which one wins.
| Combination | Status | Practical meaning |
|---|---|---|
| Limit + GTC + reduce-only | Compatible fields | Wait for an eligible reduction at the limit or better |
| Limit + IOC + reduce-only | Compatible fields | Reduce what can fill immediately; cancel remainder |
| Limit + FOK + reduce-only | Compatible fields | Require the permitted closing quantity in full immediately |
| Limit + PostOnly + reduce-only | Compatible fields | Only a resting maker exit; crossing cancels |
| PostOnly + IOC or FOK | Conflicting choices | One time-in-force field cannot hold both |
| Market + GTC or FOK | Not the market-order model | Bybit specifies IOC for market requests |
| Reduce-only + attached TP/SL in the same create request | Unsupported combination | The API disallows attaching TP/SL when reduceOnly is true |
The first four rows express different ways to reduce an existing position. They do not imply that a request larger than the reducible position will be accepted unchanged. A valid combination of fields can still fail a quantity, direction or balance-related check. Compatibility is about whether the instructions make sense together, not whether a particular trade is guaranteed.
Post-only plus reduce-only can be useful, but it is deliberately patient
A resting take-profit sell can combine both objectives: it should never open a short, and it should never take liquidity on arrival. That combination suits an optional maker exit. It conflicts with an instruction whose first priority is to get out immediately. The settings are neither universally good nor universally bad; their fit depends on the exit’s purpose.
FOK plus reduce-only needs extra care when the position is changing. A full-size close prepared a moment earlier may exceed the current reducible amount after another order fills. Refresh the position quantity and inspect the accepted order size. Do not interpret “fill all” as permission to sell more than the remaining position or as a guarantee that the engine preserves the original requested quantity.
An attached profit or stop instruction for a new entry is a different object from a reduce-only closing order. If an interface refuses additional TP/SL fields on a closing request, removing reduce-only is not necessarily the right remedy. The closing order may simply have no reason to create another pair of exits after it has reduced the position.
In hedge mode, specify which side the order is meant to close
In hedge mode, the contract, position side and reducing instruction must identify the leg to close. Buy/Sell alone is insufficient because opening a new long and closing a short are both purchases.
| Intention | Requested operation |
|---|---|
| Close 0.2 BTC short | Buy addressed to the short side as a close |
| Open separate 0.2 BTC long | Buy addressed to the long side as an open |
| Reduce only half | Close 0.1 BTC and retain a 0.1 BTC short |
Changing an order can change its place in the queue
Canceling and resubmitting a resting quote is not economically identical to leaving it alone. The new order reaches the book at a new time. Where matching uses price-time priority, that can put it behind other orders at the same price. Repeatedly chasing the top of the book may therefore change both execution probability and the price you are willing to accept.
Kraken’s derivatives documentation gives a concrete amendment distinction: reducing quantity preserves the order’s queue position, while changing its price or increasing its quantity sends it to the back of the price-time queue. Apply that statement to the documented Kraken product; do not assume every other venue uses identical amendment rules.
There is also a race between a fill and a cancellation. If 2 of 10 contracts execute before a cancel takes effect, the completed 2 remain part of the position. Replacing the canceled request with another full 10 would seek 12 contracts in total. The replacement quantity should reflect the amount still intended, after checking the latest fills and position.
A post-only retry can add another surprise: the first request may have been canceled because it crossed, but a later retry at the same price may rest because the quote changed again. That does not make the earlier cancellation erroneous. Each submission faces the book that exists when it arrives, and repeated attempts are separate orders unless the venue explicitly handles them as amendments.
For a manual trader, the useful habit is simple: read the accepted quantity and current status after an amendment, especially when an exit has reduce-only enabled. For an automated trader, an acknowledgment alone is not the final order state. Keep that implementation detail in the execution system rather than assuming a successful network response proves a completed trade.
Fix the restriction that failed without changing the trading objective
A canceled post-only order calls for a decision about maker participation. An incomplete IOC calls for a decision about the position remainder. An FOK rejection calls for a decision about required size. A reduce-only rejection calls for a check of position side and reducible quantity. Removing all restrictions treats four different situations as if they were the same problem.
| Observed outcome | Likely question to resolve | Avoid this reflex |
|---|---|---|
| Post-only cancels immediately | Would this price cross the current book? | Disable post-only without considering the changed execution |
| IOC fills part | How much exposure remains? | Resubmit the original full quantity |
| FOK cancels without fills | Is the complete amount available inside the limit? | Assume some of it must have filled |
| Reduce-only rejects or shrinks | Which position is still reducible? | Remove the restriction to force a new position |
| Old target disappears after another exit | Was its quantity no longer needed? | Recreate an oversized target automatically |
These observations are starting points, not substitutes for the venue’s actual status and reason. A minimum order size, a price increment or a product restriction can also invalidate an otherwise sensible request. The immediate goal is to distinguish a deliberate execution constraint from a malformed order before changing exposure.
Record enough information to explain a rejection
Keep the contract, requested side, position mode, targeted position, quantity, limit, trigger if present, execution instruction, reduce-only setting, accepted quantity, executed quantity and cancellation or rejection reason. Record the time of the event rather than relying on a later book screenshot.
The compatibility matrix is based on documented Bybit request fields. It is not a live submission test and does not cover every broker integration or third-party terminal. Those interfaces may expose fewer combinations or impose additional validation.
The best instruction is the one whose nonexecution outcome you are prepared to handle. An optional entry can reasonably remain absent; an urgent close may need a revised plan if part remains. Write that next action into the trading plan before the order is sent, instead of letting an unfamiliar cancellation message choose it for you.
Execution settings that are easy to misread
Can an IOC limit order remain open until tomorrow?
Its unfilled remainder should not remain resting under IOC semantics. If you see an open order later, check whether the submitted instruction was actually IOC, whether the interface created another order, or whether you are viewing a different order identifier.
Does FOK mean all contracts must fill at one price?
No. Multiple price levels can supply the full quantity if each is within the limit and the matching rules permit it. The requirement is full immediate execution, not a single execution price or counterparty.
Can I place a reduce-only exit before its entry has filled?
A standalone reduce-only order may be rejected because no position exists yet. An exchange’s attached bracket feature can link exits to future entry fills instead. Use the supported entry-plus-exit mechanism rather than treating an ordinary reduce-only request as a guaranteed future position reservation.
Is GTC the same as a maker order?
No. GTC describes persistence, while maker describes an execution role. A marketable GTC limit can execute immediately and leave a remainder resting. Post-only is the separate restriction used to refuse immediate taker execution.
Will reduce-only protect every order on my account?
No. It applies to the order or closing mechanism carrying that restriction. Other unrestricted orders can still add exposure, and the account can contain both restricted and unrestricted requests. Review the remaining open orders after closing a position.
Sources and research 7 source references
Official Bybit, Kraken and OKX order documentation checked on 7 October 2026. The interactive remainder exercise is a deterministic frozen-book teaching model; quantities already satisfy a chosen limit and it does not model account checks, queue competition or live liquidity. Examples are original and no order was submitted. Product-specific compatibility is distinguished from general instruction meanings.
Evidence by section
- An order canceled immediately can be doing exactly what you asked
- GTC, IOC and FOK: decide what happens to the unfinished quantity
- Post-only cancels a crossing order instead of silently accepting taker execution
- Reduce-only follows the remaining position, not yesterday’s exit quantity
- Which order instructions can be combined?
- In hedge mode, specify which side the order is meant to close
- Changing an order can change its place in the queue
- Fix the restriction that failed without changing the trading objective
Source register and access
- Bybit: Post-only orderLink checked · Reviewed 7 Oct 2026 · Product rule · next editorial check due 2027-01-05
- Bybit: Time in force: GTC, IOC and FOKLink checked · Reviewed 7 Oct 2026 · Product rule · next editorial check due 2027-01-05
- Bybit: Reduce-only orderLink checked · Reviewed 7 Oct 2026 · Product rule · next editorial check due 2027-01-05
- Kraken: Order types in derivatives tradingLink checked · Reviewed 7 Oct 2026 · Product rule · next editorial check due 2027-01-05
- Bybit Developers: Place order: matching and instruction compatibilityLink checked · Reviewed 7 Oct 2026 · Product rule · next editorial check due 2027-01-05
- OKX: Basic order types and reduce-only position handlingLink checked · Reviewed 7 Oct 2026 · Product rule · next editorial check due 2027-01-05
- Bybit: Close on triggerLink checked · Reviewed 7 Oct 2026 · Product rule · next editorial check due 2027-01-05