11 Ноября 2026 · исполнение

Стратегия прошла тесты. А потом биржа изменила размер тика.

Стратегия прошла тесты. А потом биржа изменила размер тика.

Во вторник в 08:00 UTC криптовалютная площадка изменила размер тика для бессрочного контракта со средней ценой. Наша стратегия на базисе этого не заметила. Сигнал по-прежнему видел тот же спред между спотом и фьючерсами, лимиты риска не изменились, и бэктест продолжал показывать те же результаты.

Бумажная торговля заметила проблему. Адаптер ордеров округлил лимитную цену покупки вниз до ближайшей допустимой цены. Ордер оказался на один тик ниже уровня, который моделировал бэктест. Рынок коснулся старой цены, симулированный ордер исполнился, а бумажный остался без исполнения. К обеду позиция стратегии стала несбалансированной.

Сначала инцидент выглядел как небольшая ошибка округления. На деле проблема была в границе модели: стратегия знала цены, а бэктест не знал ценовую сетку площадки.

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

Что изменилось вместе с размером тика?

До обновления бессрочный контракт принимал цены с шагом 0.01. После него в соответствующем ценовом диапазоне шаг стал 0.05. Сигнал рассчитал целевую цену продажи 42,318.03 — по старому правилу она была допустимой. По новому правилу эта цена была недопустимой.

Биржа отклоняла недопустимые цены, но в адаптере был запасной вариант: он округлял цену продажи вниз до 42,318.00. Эта цена тоже была недопустимой. Второй запасной вариант округлял её ещё раз, на этот раз до 42,318.05. Такая цена уже была допустимой, но для продавца — менее агрессивной. Продать по смоделированной цене стало невозможно. Этот путь в коде писали для другого рынка, и он незаметно подменял отклонение ордера его переоценкой.

В этом ордере смешались два разных вопроса. Во-первых, какую цену площадка вправе принять? Во-вторых, как стратегии реагировать, если желаемой цены нет в сетке? На первый отвечает биржа. На второй должна отвечать стратегия или политика исполнения.

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

Универсально правильного правила округления нет. Округление цены покупки вниз сохраняет ценовое ограничение покупателя, но снижает вероятность исполнения. Округление вверх может сделать ордер исполняемым сразу, что меняет комиссии и влияние на рынок. Для нашего пассивного входа по базису незаметно сдвигать ордер было неправильно. Стратегия выбрала целевую цену, а адаптер изменил экономику сделки.

Почему бэктест всё ещё выглядел благополучно?

Наш исторический симулятор ордеров считал лимитные цены непрерывными величинами. Если минимум бара достигал цены покупки или максимум — цены продажи, он засчитывал исполнение. Для пассивного ордера это и так щедрое приближение: факт сделки по лимитной цене ничего не говорит о месте в очереди. Но изменение тика выявило проблему ещё фундаментальнее: ордера по такой цене вообще не могло существовать.

Мы воспроизвели те же решения, применив новую сетку с момента вступления правила в силу. Несколько исполнений исчезли. Несколько ордеров округлились до цен, пересекавших спред, и вместо maker-комиссий стали платить taker-комиссии. В результате траектория позиции разошлась, а вслед за ней изменились и последующие хеджирования и выходы. Правило, которое выглядело метаданными, изменило всю последовательность сделок.

И это изменение не было неожиданностью, скрытой на графике. Площадка опубликовала изменение правил инструмента с указанием времени вступления в силу. Мы тщательно хранили рыночные данные, но метаданные инструментов держали в кэше, который обновлялся при запуске. Бэктест применял сегодняшние правила ко всем историческим датам, а в бумажной торговле до перезапуска процесса оставались устаревшие правила. Ни одна среда не отражала, что площадка разрешала в каждый конкретный момент.

Как моделировать изменения размера тика в бэктесте?

Версионируйте правила инструментов с интервалами действия, как и другие входные данные, доступные на конкретный момент времени. Как минимум сохраняйте время вступления в силу и значения правил, необходимые для проверки ордера: размер тика, шаг количества, минимальное количество и любые ценовые диапазоны. Симулятор должен загружать набор правил, действовавший в момент моделируемого решения.

Затем задайте обработку ордеров явно. Если целевая цена недопустима, отклоните её, округлите согласно документированной политике или пересчитайте цель по сетке. Записывайте, какой вариант сработал. Бэктест, автоматически исправляющий каждый ордер, может быть полезен для оценки конкретной политики исполнения, но не должен выдавать эту политику за исполнение на бирже.

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

Мы добавили две проверки. Первая прогоняет каждый сгенерированный ордер через правила инструмента, действовавшие на тот момент, и сразу сообщает об ошибках при недопустимых ценах или размерах. Вторая сравнивает итоговый нормализованный ордер адаптера бэктеста и бумажной торговли: сторону, цену, количество, время действия и намерение по комиссии. Если они расходятся, результаты не считаются сопоставимыми.

После этого мы воспроизвели изменение, произошедшее во вторник. Бэктест больше не засчитывал исполнение по цене 42,318.03 после обновления сетки. Бумажная торговля и симуляция принимали одинаковое решение по каждой недопустимой целевой цене, даже если решением было пропустить ордер.

Сигнал не сломался. Устарели его предположения об инструменте, которым он мог торговать. Стратегия может пережить изменение размера тика, если исследовательская система учитывает правила площадки как часть моделируемого рынка.

правила биржиразмер тикаокругление ордеровбэктестингбумажная торговля
ПоделитьсяXLinkedInFacebookRedditHacker NewsWhatsAppTelegramEmail
← Все статьи