Диагностика grid-бота

Grid profit в плюсе, общий результат в минусе: как найти разницу

Прибыль сеток (grid profit) учитывает только завершённые циклы, где бот купил на одном уровне и продал на соседнем. Общий результат шире. Он добавляет нереализованный результат позиции, которую бот держит сейчас, а ещё комиссии всех исполнений и funding. Если цена ушла против накопленной позиции, её минус легко перекрывает заработок циклов, и итог выходит отрицательным при плюсе каждой закрытой сетки. Сверку начинают с оставшейся позиции. Потом вычитают расходы и учитывают вводы и выводы. Уже ли вычтены комиссии и по какой цене оценивается позиция, проверьте в описании бота.
СодержаниеДве цифры считают разноеПроверьте оставшуюся позициюРазберите комиссии, funding и выводыСопоставьте показатели до и после остановкиГде чаще всего ошибаются при сверкеКак применить разбор к своему боту

Две цифры считают разное

Grid-бот выставляет лимитные ордера на уровнях диапазона. Когда исполняется покупка ниже рынка, а затем срабатывает продажа на уровень выше, цикл считается закрытым, и его доход попадает в прибыль сеток, где остаётся уже насовсем. Эта строка не уменьшается. Что бы ни случилось с ценой потом.

Но бот почти никогда не стоит «пустым». Пока цена гуляет внутри диапазона, у него копится позиция из покупок, которые ещё ждут своей продажи, и её результат пока ничем не зафиксирован. Такой результат называют нереализованным. Он меняется с каждым движением цены. Подробнее механика сетки описана в статье про фьючерсный grid-бот, а здесь нас интересует только сверка.

Общий результат бота = прибыль сеток (закрытые циклы)
+ нереализованный результат открытой позиции
− комиссии всех исполнений (если они не вычтены в прибыли сеток)
± funding (минус — уплачено, плюс — получено)

Так описывает итог и справка Bybit по фьючерсному grid-боту. У других площадок строки могут называться иначе. Состав тот же.

Проверьте оставшуюся позицию

Возьмём учебный бот на бессрочном контракте ETHUSDT в режиме лонг-сетки. Цены условные. Шаг сетки около 1%, каждый ордер примерно на 80 USDT. За несколько дней бот закрыл 15 циклов и показывает прибыль сеток +12 USDT. При этом десять лимитных покупок по 80 USDT так и не дождались своей продажи. Из них сложилась лонг-позиция на 800 USDT со средней ценой входа 2 400 USDT, а рынок тем временем опустился до 2 352 USDT, то есть на 2% ниже входа.

Позиция — это 800 / 2 400 ≈ 0,333 ETH. Её нереализованный результат: 0,333 × (2 352 − 2 400) = −16 USDT.

Минус одной открытой позиции уже больше, чем заработок пятнадцати циклов.

Прибыль циклов и минус открытой позиции
Закрытые циклы сетки+12,00 USDT
Открытая позиция−16,00 USDT
Вместе, до прочих расходов−4,00 USDT
Учебные цифры: 15 закрытых циклов дали +12 USDT, оставшийся лонг на 800 USDT при падении на 2% показывает −16 USDT.
  1. Найдите позицию бота

    Откройте детали работающего бота и найдите блок с открытой позицией: направление, количество и среднюю цену входа. Частая ошибка — смотреть только на крупную цифру прибыли сеток вверху карточки.

  2. Посчитайте её результат сами

    Для лонга: количество × (текущая цена − средняя цена входа), для шорта знак обратный. Сравните с цифрой площадки. Небольшое расхождение обычно значит, что площадка оценивает позицию по mark price (справедливой цене из индекса), а вы взяли последнюю сделку.

  3. Сложите две строки

    Прибыль сеток плюс результат позиции. Если сумма близка к общему результату бота, оставшаяся разница — это расходы. О них следующий раздел.

Учебная сделкаОставшаяся позиция бота отдельно от циклов
Вход → выход2 400 → 2 352−2%
Количество0,333333базового актива
От движения цены−16,00 USDT
Комиссии0,55 USDT0,02% + 0,05%
Funding−0,24 USDTуплачено
Итог сделки−16,79 USDT
Если бы цена пошла на столько же в другую сторону (2 400 → 2 448): +15,19 USDT
Учебный пример: позиция набрана лимитными покупками сетки как мейкер (0,02%), закрытие по рынку как тейкер (0,05%), три расчёта funding по условной ставке 0,01%. Прибыль сеток (+12 USDT) сюда не входит. Сайт покажет и зеркальный сценарий.

Если цена пошла в другую сторону

При росте на те же 2%, до 2 448 USDT, позиция показала бы +16 USDT, и общий результат до остановки при тех же расходах составил бы около +27,1 USDT. Прибыль сеток в обоих случаях одинаковая. Всю разницу в 32 USDT создала открытая позиция.

Особенно заметно это при выходе цены из диапазона. Ниже нижней границы новых покупок нет, а выставленные продажи стоят выше и не исполняются, пока цена не вернётся в диапазон. Прибыль сеток застывает, а минус позиции растёт с каждым процентом падения. У шорт-сетки опасна обратная сторона. Это выход выше диапазона. Нейтральная сетка может накопить позицию в любую сторону.

Прибыль сеток не страхует позицию. Она показывает только то, что уже зафиксировано. Риск бота живёт в строке открытой позиции. Её размер и стоит проверять первым.

Разберите комиссии, funding и выводы

Комиссия берётся с номинала каждого исполнения, а не с маржи. На Binance для USDⓈ-M фьючерсов базового уровня VIP 0 это 0,02% для мейкера и 0,05% для тейкера. Лимитные ордера сетки обычно исполняются как мейкер. Тут есть тонкость: лимитка, которая исполнилась сразу, считается тейкером, а запуск бота и закрытие позиции при остановке часто вообще идут по рынку. Как определяется роль, разобрано в статье про maker и taker.

В нашем примере 15 циклов — это 30 исполнений по 80 USDT. По 0,02% выходит 0,016 USDT каждое, всего 0,48 USDT. Десять покупок, из которых сложилась позиция на 800 USDT, тоже исполнялись как мейкер: 800 × 0,02% = 0,16 USDT. Суммы мелкие. Но у плотной сетки с маленьким шагом исполнений в разы больше, и комиссии начинают заметно съедать прибыль циклов. На некоторых площадках прибыль сеток показывается уже за вычетом комиссий, и тогда вычитать их второй раз не нужно: проверьте формулировку в описании бота.

Funding — платёж между лонгами и шортами бессрочного контракта. При положительной ставке лонги платят шортам. Лонг на 800 USDT при условной ставке 0,01% отдаёт 0,08 USDT за расчёт, за три расчёта 0,24 USDT. Минус возле funding в карточке бота означает, что вы заплатили. Плюс — что получили. На Binance расчёт по умолчанию идёт каждые 8 часов, но у части контрактов интервал 4 часа, а при упоре ставки в лимит он может сократиться до часа. Как читать знак и ставку, описано в статье про funding.

Третий источник путаницы — движение денег. Если вы добавляли маржу или забирали прибыль, процент доходности бота может считаться уже от другой суммы. Как именно, проверьте в описании бота на своей площадке. При сверке баланса фьючерсного счёта до и после вычтите внутренние переводы. Иначе обычный перевод будет выглядеть как прибыль или убыток.

Сопоставьте показатели до и после остановки

Пока бот работает, минус позиции нереализованный. Остановите бота с закрытием позиции, и минус станет реализованным, а к нему добавится комиссия закрытия и, при резком рынке, ещё и проскальзывание. В некоторых ботах при остановке можно оставить позицию открытой. Тогда она продолжит жить как обычная позиция. Какие варианты есть, смотрите в окне остановки конкретного бота.

Учебные цифры. Позиция набрана лимитными покупками сетки, закрытие по рынку, без учёта проскальзывания. Номинал при закрытии: 0,333 ETH × 2 352 = 784 USDT.
СтрокаДо остановки, USDTПосле остановки, USDT
Прибыль сеток (15 циклов)+12,00+12,00
Результат позиции 800 USDT при −2%−16,00 (нереализованный)−16,00 (реализованный)
Комиссии циклов: 30 × 0,016−0,48−0,48
Набор позиции: 800 × 0,02% (мейкер)−0,16−0,16
Закрытие позиции: 784 × 0,05% (тейкер)—−0,39
Funding: 3 × 0,08−0,24−0,24
Общий результат−4,88−5,27

Если после остановки итог отличается от этой таблицы, откройте историю сделок. Там видны цена каждого исполнения, роль мейкер или тейкер и списанная комиссия. Строки funding обычно лежат отдельно, в истории транзакций.

Где чаще всего ошибаются при сверке

  • Сравнивают прибыль сеток с балансом и забывают про открытую позицию.
  • Вычитают комиссии второй раз, хотя площадка уже показала прибыль сеток за их вычетом, или наоборот.
  • Считают процент от первоначальной суммы, хотя маржу добавляли или прибыль выводили.
  • Оценивают позицию по последней сделке, когда площадка использует mark price.
  • Ждут, что новые циклы «отобьют» минус позиции, хотя цена уже за диапазоном и циклов нет.

Как применить разбор к своему боту

Выпишите из карточки бота четыре числа. Это прибыль сеток, количество и средняя цена позиции, сумма комиссий и сумма funding. Посчитайте итог по формуле и сравните с цифрой площадки. Осталась разница — ищите добавления и выводы средств. Тот же сценарий удобно прогнать в симуляторе сетки: поменяйте конечную цену на ±2% и посмотрите, как одна строка позиции переворачивает весь итог, пока прибыль сеток стоит на месте. Другие ситуации с расхождением цифр собраны в разделе «Разобраться с фьючерсной позицией».

Все закрытые сделки в плюсе, а P&L за день отрицательный. Почему?

Закрытые сделки показывают только реализованный результат. В дневной P&L обычно попадают ещё открытые позиции, комиссии и funding. Сложите эти строки отдельно, и разница станет видна.

Нужно ли останавливать бота, если цена вышла за диапазон?

Однозначного ответа нет. Остановка зафиксирует текущий минус позиции и добавит комиссию закрытия, а ожидание оставляет позицию под дальнейшим движением цены и funding. Решайте по заранее записанному допустимому убытку. Не по прибыли сеток.

Можно ли забрать прибыль сеток, не закрывая бота?

Это зависит от площадки и типа бота, проверьте в его настройках. Даже если вывод доступен, открытая позиция никуда не девается. Меньше маржи под ней — меньше запас до ликвидации.

Почему маржа бота уменьшилась, хотя новых сделок не было?

Чаще всего списался funding: при положительной ставке лонг платит в каждый момент расчёта. Сверьте время списания с расписанием funding контракта и с историей транзакций.

Источники и проверка

Bybit: FAQ — Futures Grid BotBybit: P&L Calculations Futures Grid BotBybit: P&L Calculations USDT Perpetual and Expiry ContractsBinance: USDⓈ-M Futures Fee Rate

Условия площадок проверены 17 октября 2026 г. Они меняются — сверяйтесь со спецификацией контракта в своём аккаунте.

Найдите ответ на свой вопрос