Тип ордера — часть стратегии исполнения. Market покупает определённость сделки, limit контролирует цену, а stop лишь задаёт условие активации и не гарантирует результат.

01Сначала определить намерение

Один и тот же сигнал может требовать разного исполнения. Аварийное сокращение риска ценит скорость, спокойный набор позиции — цену, а маркет-мейкинг — место в очереди и комиссионную модель. Выбор заявки начинается с приоритета, а не с привычки разработчика.

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

Если намерение не описано, код обычно смешивает сигнал и биржевые детали. Так сложно проверить, была ли плохая сделка следствием идеи или способа её исполнения.

02Что покупает market-ордер

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

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

Market оправдан, когда риск неисполнения дороже отклонения цены: например, при аварийном выходе. Но это должно быть зафиксированное правило, а не универсальный способ отправки любого сигнала.

03Limit контролирует цену, но не обещает сделку

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

Размещение внутри спреда повышает приоритет цены, но меняет рынок и может быть быстро обойдёно. Размещение на существующем уровне требует оценки объёма впереди и интенсивности встречных сделок.

В бэктесте нельзя считать исполненным каждый ордер, которого коснулась свеча. Нужна хотя бы консервативная модель очереди и доступного объёма.

Данные, инфраструктура и момент принятия решения рассматриваются вместе.

04Stop — это условие активации

Стоп-заявка становится рыночной или лимитной после достижения триггерной цены. До активации она не участвует в стакане. После активации действуют свойства выбранного дочернего типа.

Stop-market повышает шанс выхода, но при разрыве цены может исполниться далеко от триггера. Stop-limit ограничивает цену, однако способен не исполниться именно тогда, когда защита нужна сильнее всего.

Алгоритм должен знать, по какой цене срабатывает условие: последней, индексной или mark price. Ошибка в этом параметре меняет поведение защиты.

05Время жизни заявки

GTC оставляет лимитную заявку до исполнения или отмены. IOC исполняет доступную часть сразу и снимает остаток. FOK требует немедленного исполнения всего объёма, иначе заявка отменяется.

Post-only защищает от случайного taker-исполнения: если заявка пересекает стакан, биржа отклоняет или переставляет её по своим правилам. Это полезно только при корректной обработке отказа.

Параметр времени жизни согласуют со сроком сигнала. Нет смысла оставлять GTC-заявку после того, как рыночная гипотеза уже потеряла актуальность.

06Частичное исполнение — нормальное состояние

Лимитная заявка может заполниться частично. Оставшийся объём продолжает стоять в книге, пока стратегия уже несёт часть риска. Исполнитель должен решить, ждать, отменять или добирать позицию другим способом.

Решение зависит от времени, цены и минимального полезного размера. Механическое повторение market-ордером способно превратить аккуратный вход в дорогую погоню за ценой.

В журнале сохраняют каждое частичное исполнение, среднюю цену и остаток. Целевая позиция сравнивается с фактической после каждого события.

Практический контур: исполнение, наблюдаемость и заранее заданные ограничения.

07Повтор запроса не должен удваивать позицию

Тайм-аут ответа не означает, что биржа отклонила заявку. Она могла принять ордер, но ответ потерялся. Слепой повтор создаёт второй ордер и неожиданно увеличивает риск.

Каждой заявке нужен уникальный клиентский идентификатор. Перед повтором система запрашивает состояние по нему и сверяет открытые заявки и сделки.

Идемпотентность проверяют в тестах: процесс прерывается после отправки, затем запускается снова и обязан восстановить одну, а не две заявки.

08Собрать политику исполнения

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

На бумажном и минимальном реальном объёме сравните ожидаемую и фактическую цену, долю исполненных заявок и время достижения позиции. Средняя доходность стратегии не заменяет эти метрики.

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

Продолжение — в Telegram

Код, видео, наблюдения за рынком и ответы на вопросы.

Перейти в канал

Материал носит информационный характер и не является индивидуальной инвестиционной рекомендацией. Торговля связана с риском потери капитала.