An independent trading journal · Education only
nalog.Binance Spot. Orders & rules.
SPOT TRADING JOURNALUnderstand the instruction. Then decide.
START HERELimit order not filledMinimum order valueAfter cancellation

GTC, IOC and FOK: same price, different result

Time in force determines how long to wait and what happens when quantity is insufficient.

In this guideChange only one conditionGTC fills one unit and leaves two waitingIOC takes an immediately available part without retaining the restFOK requires the whole quantity immediatelyAn API definition is not a universal app buttonSeparate the price question from the waiting questionEnded under a rule differs from user cancellationTry the same comparison on the sell sideKeep the accepted setting with the result

Two orders with the same price and quantity can finish differently because they make different requests about waiting and partial execution. GTC, IOC and FOK express those requests. In the example below, GTC keeps the remaining two units open, IOC ends that remainder, and FOK refuses the incomplete three-unit fill.

Change only one condition

Suppose you want to buy three units but only one is immediately available within your limit. Freeze the book: no added offers, cancellations or competing buyers. Ignore fees, input checks and other protections. With those teaching assumptions, the difference below comes only from time in force.

ConditionExecuted nowStill waitingUnexecuted quantity ended
GTC120
IOC102
FOK003

The final column is not a reversal of previously executed trades. It describes an instruction that no longer waits. For IOC, the one executed unit stays in your trade history even though the remaining two will not wait.

GTC fills one unit and leaves two waiting

For the ordinary continuing limit order in our example, one unit can execute and two can remain waiting for suitable counterparties. Closing the page does not itself withdraw that request. A later fill can occur while you are no longer watching, or the remainder may keep waiting if its conditions are not met.

Do not interpret continuation as an unconditional promise of permanence. Market rules and exchange actions can affect an order’s existence. When inspecting an old instruction, read its actual current status rather than assuming that its original GTC setting proves it is still open today.

IOC takes an immediately available part without retaining the rest

In this example, one unit executes and two do not remain on the book. The order can disappear from the open list while the executed unit remains part of the account’s trading history. Those are compatible facts: the instruction ended after a partial result.

That result is easily mistaken for a failed attempt. Before repeating the whole request, inspect cumulative execution. If the target is still three and one already traded, a new request for three increases the potential total. First establish the terminal state, then decide what quantity, if any, is still wanted.

FOK requires the whole quantity immediately

The available one unit is insufficient for the three-unit target, so the example does not execute that partial amount or leave the other two waiting. Requiring completeness does not cause the missing supply to appear. A stricter execution condition can result in no trade at all.

Complete quantity does not necessarily mean one counterparty or one price level. Within the applicable price conditions, a complete execution may require several levels. Do not confuse the completeness requirement with a requirement that all units share one price.

An API definition is not a universal app button

The official Binance spot definitions document these time-in-force values. They establish parameter meanings, not that every ordinary interface exposes every combination for every user and order type.

Check the entry point you actually use. Do not move to an unfamiliar product just to find a label mentioned in a tutorial. Similar terminology across venues, securities markets or derivatives products may come with additional rules. This page explains a spot example rather than transferring another market’s instructions.

Separate the price question from the waiting question

A limit identifies the maximum buy price or minimum sell price. Time in force addresses how to handle quantity that cannot be completed immediately. Moving a buy limit higher may make more supply eligible, but it does not turn IOC into a continuing instruction.

Write the two decisions on separate lines: “The most I accept is 100.5,” followed by “I do or do not want an unfilled remainder to wait.” If a partial outcome is unacceptable, record that separately too. The form should express those decisions rather than choose them for you.

Ended under a rule differs from user cancellation

A remainder that ends because of its execution condition is not the same event as you sending a cancellation request. A platform may describe the former with an expiry status. The word does not necessarily mean the order waited a long time.

See expiry and executed quantity for how to reconcile that outcome. Whether the instruction remains active and how much it previously traded are separate questions; the status cannot substitute for the numerical execution field.

Try the same comparison on the sell side

Imagine selling three units with only one unit of eligible bids. The remainder questions stay the same, while the price comparison reverses: eligible bids must meet your minimum sell price. Copying the buy-side maximum comparison would identify the wrong available quantity even if the abbreviations were remembered correctly.

A teaching tool that models an ordinary continuing limit order cannot verify every IOC or FOK rule in a real account. Read the tool’s declared scope. For practice, change the available supply to zero: GTC leaves three waiting, while IOC and FOK finish without a fill. If three eligible units are immediately available instead, all three can fill the target under the other assumptions of this example.

Keep the accepted setting with the result

Before submission, check whether partial execution and a persistent remainder are acceptable and whether the selected entry point supports the intended combination. Afterwards, save the actual accepted setting with the status and executed quantity. What you meant to select is not a substitute for the recorded parameter.

A quick understanding check is: “I want three, but one is available now; what happens to the other two?” Waiting, ending the remainder, and refusing the partial unit describe three distinct arrangements. The question does not forecast prices, but it connects the abbreviations to outcomes you can verify.

If identifying the available one unit is still unclear, first work through the three-level limit example. Establish the quantity inside the price boundary before changing the condition governing its remainder.

Continue reading