Вы отправляете ордер на 10 000 единиц, а в стакане по вашей цене есть лишь 1 000. Что будет с остальными 9 000? Ответ на этот вопрос каждый ордер несёт в себе ещё до отправки. Fill or kill, immediate or cancel и all or none — три способа на него ответить, и это не три оттенка одной настройки.
Что на самом деле решает срок действия
Срок действия — это инструкция, прикреплённая к ордеру, и решает она ровно один вопрос: что будет с той частью, что не может исполниться прямо сейчас. Либо эта часть ждёт в стакане, либо её отбрасывают в момент сведения.
Вот и вся ось. Ордер good-till-cancelled идёт по первой ветке и лежит в стакане, пока не исполнится или вы его не уберёте. Ордер good-till-date ждёт так же, но останавливается на сроке, что вы задали. Immediate or cancel и fill or kill идут по второй ветке, где ждать не остаётся вообще ничего.
Протокол FIX, давняя отраслевая спецификация обработки ордеров, определяет это поле как задающее, сколько ордер остаётся в силе, а его собственное значение по умолчанию — настройка на торговый день, унаследованная от площадок, что закрываются. Kraken ставит good-till-cancelled значением по умолчанию в своём интерфейсе ордеров. Все три настройки написаны полностью при первом упоминании; дальше они сокращаются до IOC, FOK и AON.
Immediate or cancel: взять что есть, остальное отбросить
Ордер immediate-or-cancel торгуется против стакана всем, чем может, в этот самый момент, а остаток отбрасывает. Он допускает частичное исполнение: если из ваших 10 000 по вашей цене могут торговаться 1 000, то 1 000 торгуется, а остальные 9 000 просто перестают существовать.
Kraken описывает эту настройку как ту, что немедленно отменяет любой объём, который нельзя исполнить по прибытии. Coinbase формулирует то же поведение как отмену любого оставшегося объёма. Две площадки, один механизм.
Слово immediate здесь про момент сведения, а не про скорость. Когда стакан достаточно глубок, чтобы поглотить весь ордер, IOC и обычный лимитный ордер по той же цене идут одним путём и приходят в одно место. Разница проявляется лишь в тот миг, когда что-то остаётся.
Fill or kill: всё сразу или ничего
Ордер fill-or-kill добавляет к той же мгновенности одно условие: весь объём или ничего. Это IOC плюс требование полноты, и оба условия должны выполняться вместе. Если из ваших 10 000 могли бы торговаться 9 000, то IOC торгует эти 9 000, а FOK не торгует ничего.
FOK гарантирует объём, а не цену. Он может исполниться целиком по средней куда хуже той цены, на которую вы смотрели, ведь он съедает столько глубины, сколько нужно, чтобы закончить работу. Контроль цены — отдельный инструмент: лимитная цена или допуск проскальзывания. Хвататься за fill or kill, чтобы избежать плохой цены, — значит просить у него то, чего он не даёт.
Kraken отмечает ещё одно ограничение, о котором стоит знать до того, как искать эту настройку: его вариант fill-or-kill доступен только для лимитных ордеров.
All or none — другая настройка, а не третий срок
All or none выглядит роднёй fill or kill, но ею не является. В FIX срок действия живёт в одном поле с восемью значениями, и all or none среди них нет. Он живёт в отдельном поле инструкций по обработке ордера, под кодом G, где и описан как all or none.
Следствие тут практическое, а не канцелярское. Раз AON сидит в другом поле, его можно сочетать со сроком: ордер all-or-none, который к тому же good-till-cancelled, лежит в стакане и ждёт, но торговаться будет только одним целым куском. Fill or kill сводит мгновенность и полноту в одно значение срока действия, поэтому ждать он не может ничего.
| Может ли остаток лежать в стакане | Частичное исполнение разрешено | Частичное исполнение запрещено |
|---|---|---|
| Да, он ждёт | Good-till-cancelled | All or none, лежащий |
| Нет, его отбрасывают | Immediate or cancel | Fill or kill |
Что говорит статус, когда ничего не исполнилось
Ордер, что так и не торговался, — не автоматически неудавшийся или истёкший ордер. По FIX неисполненный ордер fill-or-kill или immediate-or-cancel заканчивает как отменённый, и спецификация называет эти два явными исключениями из состояния «Истёк».
На фоне обычного смысла слова «отменён» это читается странно: оно подразумевает, что нечто лежало, а затем было убрано. Примирение в том, что ордер действительно стал активен — он просто не лежал в стакане. Coinbase говорит то же самое с другой стороны: ордер fill-or-kill попадает в стакан, только если исполнился бы немедленно и целиком.
Официальный разобранный сценарий делает арифметику видимой. Ордер fill-or-kill на 10 000, который нельзя завершить, заканчивает без единой сделки, так что исполненный объём равен 0 и остаток равен 0. Ордер immediate-or-cancel на те же 10 000, что находит доступными 1 000, заканчивает с 1 000 исполненными и 9 000 отменёнными. В тех же таблицах есть и ветка с отклонением, а спецификация отдельно отмечает, что ордер может перейти из нового в отклонённый даже после подтверждения приёма. Отклонён и отменён — два разных исхода, поэтому читайте статус, что сообщает ваша площадка, а не додумывайте, какой из них применим.
Настройки рядом
| Настройка | Остаток | Частичное исполнение | В каком поле живёт |
|---|---|---|---|
| Good-till-cancelled | Лежит, пока не исполнится или его не уберут | Разрешено | Срок действия |
| Good-till-date | Лежит до вашего срока | Разрешено | Срок действия |
| Immediate or cancel | Отбрасывается сразу | Разрешено | Срок действия |
| Fill or kill | Отбрасывается сразу | Запрещено | Срок действия |
| All or none | Зависит от срока, с которым он в паре | Запрещено | Инструкция по обработке ордера |
Когда какая из них — верный выбор
Берите fill or kill, когда частичная позиция хуже, чем никакой. Ясный случай — нога арбитража или нога хеджа, что работает только в полном размере: половина от неё не вдвое хуже, она новая и нежеланная экспозиция. Цена, которую вы платите за эту определённость, — что промах на волосок не вернёт вообще ничего.
Берите immediate or cancel, когда хотите съесть ликвидность, что сейчас перед вами, не оставляя за собой видимого ордера. Он проходит по лежащим в стакане ордерам во многом так же, как рыночный ордер, хотя рыночный ордер — про то, чтобы взять лучшие доступные цены, а не про то, что делать с остатком.
Берите настройку с ожиданием, когда ожидание и есть смысл. Если вашей цены в стакане пока нет и вы готовы сидеть, пока она не придёт, то отбрасывать ордер в момент сведения — значит сводить замысел на нет.
Итог
Срок действия отвечает на один вопрос и только на один: что станет с объёмом, который не может торговаться прямо сейчас. Immediate or cancel отбрасывает остаток и оставляет то, что взял. Fill or kill не принимает частичный результат вовсе, так что он либо завершается, либо не оставляет вам ничего. All or none — вовсе не срок, а правило полноты в другом поле, и именно поэтому он может ждать в стакане, а fill or kill не может.
Прежде чем брать одну из них, проверьте, на какой из двух вопросов вы на самом деле отвечаете: сколько ордер должен жить или приемлем ли неполный результат. Путаница между ними и превращает fill or kill в ожидаемую защиту цены, которой он никогда не был. Чтобы продолжать изучать основы, следите за материалами Bitbase Academy.
Похожие материалы
Другие материалы Bitbase по этой теме:
- Дисбаланс стакана, CVD и влияние на рынок
- Стены покупок и продаж и глубина стакана
- Мейкер и тейкер в крипто: в чём разница в комиссиях?
- Защита рыночного ордера и защита от fat-finger
Дисклеймер: эта статья — образовательный материал Bitbase Academy, только для информационных целей. Она не является инвестиционным, торговым, налоговым или финансовым советом. Криптоактивы волатильны — оценивайте риски самостоятельно. Написано в сентябре 2026 года; сверяйтесь с актуальной официальной информацией.
Источники
[1] FIX Trading Community, FIX Application Layer: Order State Changes (FIX Latest по состоянию на EP284, ноябрь 2023 г.) fixtrading.org
[2] Onix Solutions, словарь FIX 4.4, TimeInForce(59) onixs.biz
[3] Onix Solutions, словарь FIX 4.4, ExecInst(18) onixs.biz
[4] Документация API Kraken, WebSocket v2, Add Order (поле time_in_force) docs.kraken.com
[5] Документация для разработчиков Coinbase, Advanced Trade API, Create Order docs.cdp.coinbase.com






