Лимитная заявка. Купили ровно по той цене, которую указали. Или даже дешевле. Вроде бы всё хорошо. Но есть ещё одна строка, в которую стоит заглянуть: сколько за это исполнение взяла биржа?
Цена может порадовать, а комиссия при этом оказаться тейкерской. И никакого противоречия здесь нет.
Я разрабатываю софт для автоматической торговли. Под прошлой статьёй собеседник поправил наше объяснение: исполнение лучше лимита вполне может означать, что заявка сама забрала уже стоявшее в стакане предложение. Я согласился. И захотел проверить соседний вопрос: а если цена не лучше, а в точности такая, какую просили? Насколько часто мы и тогда платим как тейкеры?
Для бота это не мелкая придирка к терминологии. Он покупает и продаёт снова и снова. Если ошибиться со ставкой комиссии в тесте, ошибка тоже будет повторяться с каждой сделкой.
Представьте: я согласен купить не дороже 100. В стакане, списке заявок других участников, уже есть продавец по 99. Моя лимитная заявка покупает у него по 99.
С ценой всё прекрасно: хотел не дороже 100, получил за 99. Но я не оставил свою заявку ждать продавца. Я пришёл к тому, кто уже стоял в стакане, и забрал его предложение. В этом исполнении я тейкер. Мейкером был тот, чья заявка ждала меня.
А теперь заменим 99 на 100. Продавец уже стоит по 100, я покупаю у него по 100. Цена совпала с моим лимитом. Роль от этого не поменялась: я всё так же забрал чужую заявку.
Лимит говорит «дороже не покупать». Он не говорит «комиссию взять поменьше».

Я взял две выгрузки с реальных счетов, на которых работают наши боты: фьючерсы Bybit, с 29 августа до утра 25 октября 2026 года, время UTC. Не демо и не бэктест.
Всего в них 6 237 отдельных торговых исполнений. Из них 327 относятся к рыночным заявкам, а 5 910 к лимитным. Именно последние нас здесь интересуют. Одна заявка могла исполниться несколькими частями, поэтому считаем исполнения, а не число заявок.
Источники немного разные. В первом биржа сама отмечает роль каждого исполнения полем isMaker. Во втором, табличной выгрузке, такой отметки нет: я определял роль по ставке комиссии. Встречались только два тарифа этого счёта: мейкерские 0,036 % и тейкерские 0,1 %. Это определение по тарифу, не прямой флаг биржи. На первом счёте я дополнительно сверил ставку с отметкой биржи: расхождений не было.
Для покупки цена ниже лимита считалась лучшей, для продажи лучшей была цена выше лимита. Сравнивал с ценой заявки в биржевой записи, не с предполагаемой рыночной котировкой.
| Цена исполнения | Мейкер | Тейкер | Доля тейкера |
|---|---|---|---|
| Лучше лимита | 0 | 1 218 | 100 % |
| Ровно по лимиту | 1 257 | 3 435 | 73,21 % |
| Все лимитные исполнения | 1 257 | 4 653 | 78,73 % |
Все 1 218 исполнений лучше лимита оказались тейкерскими по этим двум способам проверки. А вот строка, ради которой я и полез в данные: из 4 692 исполнений ровно по лимиту 3 435 были тейкерскими. Примерно три из четырёх.
Отдельно по счетам картина похожая: на первом, с прямой отметкой биржи, 72,57 %. На втором, с определением по тарифу, 73,88 %.

Это не доля «для всех ботов вообще». Это то, что получилось у нас на двух счетах за этот период. Как именно бот пришёл к такому распределению, эти выгрузки не объясняют: состояния стакана при отправке заявки в них нет.
Для средней комиссии я сложил уплаченные торговые комиссии и разделил их на денежный оборот покупок и продаж в USDT. Не на депозит и не на число сделок: маленькое исполнение не должно весить в расчёте столько же, сколько крупное.
| Что считаем | Средняя комиссия на исполненный оборот |
|---|---|
| Только лимитные исполнения | 0,07918 % |
| Все исполнения, включая рыночные | 0,08022 % |
За скучными нулями стоят вполне конкретные деньги. На лимитных исполнениях двух счетов биржа списала 483,56 USDT. Если взять тот же самый оборот и посчитать всё по мейкерской ставке 0,036 %, получится 219,85 USDT. Разница 263,71 USDT.

Вот зачем понадобилась проверка. Слово Limit в настройках ещё не основание подставлять в тест мейкерскую комиссию. Иначе экономия получится только на бумаге.
Это сравнение комиссии на уже состоявшихся исполнениях, не потеря депозита и не результат нового бэктеста. При другом способе постановки заявок мог бы измениться и сам набор сделок.
В наших прежних тестах стояло 0,06 %, а не 0,036 %. Пример с чисто мейкерской комиссией здесь условный. И сами тарифы относятся именно к проверенным счетам: у другого клиента их нужно смотреть отдельно.
Для этого существует Post-Only. На Bybit такая заявка отменяется, если при постановке должна была сразу забрать встречное предложение. Она не превращается в дешёвую исполненную заявку: вместо покупки можно получить отмену.
Чтобы попробовать снова, понадобится другая заявка. А рынок за это время может уйти. Поэтому «включим Post-Only и сохраним те же сделки с меньшей комиссией» ещё нужно проверить. Сравнивать придётся не только тариф, но и цены, частичные исполнения и сделки, которые вообще не состоялись.
В этом разборе я такую замену не тестировал. Мы посчитали, как исполнялись существующие заявки, а не доказали, что их надо выставлять иначе.
Проверить свой счёт можно без нового бэктеста: взять выписку исполнений, сверить роли и ставки, сложить торговые комиссии и разделить их на денежный оборот. А выбирать между обычной лимитной заявкой и Post-Only уже придётся отдельной проверкой.
Хорошая цена от этого не перестала быть хорошей. Просто у исполнения есть две разные характеристики: по какой цене получилось и сколько за это взяла биржа. Первая строка не отвечает за вторую.
Лимитная заявка свою работу сделала: ограничила цену. Мейкерскую комиссию она не обещала.
О методе: из расчёта исключены funding, отдельные платежи за удержание фьючерсной позиции. Выгрузки не восстанавливают историю изменений заявок и время в очереди. Исполнений хуже записанного лимита не найдено; это проверка согласованности данных, а не доказательство отсутствия проскальзывания относительно рынка. Поле isMaker описано в документации Bybit, режим Post-Only в справке биржи.