Ожидающая заявка тоже меняет возможный результат
Пусть учебный лимит длинной позиции равен тысяче условных единиц. Уже исполнено шестьсот, а активная заявка на покупку трёхсот ещё ожидает результата. Если алгоритм хочет отправить новую покупку трёхсот, проверка только исполненного объёма покажет шестьсот плюс триста, то есть девятьсот. Но при исполнении обеих заявок получится тысяча двести. В этой простой модели нужно учитывать возможное исполнение активного остатка: шестьсот плюс триста плюс триста. Числа условные, а лимит выбран для объяснения логики, не для реальной торговой системы.
Частичное исполнение переносит объём между состояниями
Допустим, из первой ожидающей заявки исполнилось сто. Текущая позиция стала семьсот, а активный остаток заявки двести. Их сумма по-прежнему девятьсот. Частичное исполнение не создало новые триста единиц свободного лимита: часть объёма просто перешла из ожидания в исполненную позицию. Если после этого добавить ещё триста, возможный итог снова равен тысяче двумстам. Такой учёт помогает заметить ошибку, когда программа уменьшает ожидающий объём, но забывает одновременно обновить позицию, или обновляет одну часть данных значительно позже другой.
Запрос отмены не равен подтверждённой отмене
Отправка команды отменить заявку сообщает о намерении. Пока результат неизвестен, нельзя автоматически считать, что оставшийся объём перестал участвовать в риске. Заявка могла исполниться до обработки отмены, а ответ мог задержаться. Поэтому системе нужно различать отправленный запрос, подтверждение отмены, исполнение и неопределённый исход. Слепое повторение торгового запроса после задержки ответа способно создать дубликат. В учебном разборе сначала восстанавливают состояние по доступным подтверждениям, затем решают, какие действия допустимы по установленным правилам. Неизвестность сама по себе не означает, что предыдущая команда не сработала.
Остановка алгоритма не стирает обязательства
Запрет новых заявок, отмена активных и работа с уже открытой позицией являются разными действиями. Кнопка остановки может прекращать генерацию команд, но не гарантирует исчезновения активных заявок или закрытия позиции. Поэтому защитные механизмы проверяют по конкретным последствиям и подтверждениям. Ограничение объёма также не является гарантией предельного денежного убытка: цена, ликвидность, расходы и устройство инструмента имеют значение. Полезный тест системы включает задержки, частичные исполнения, повторные сообщения и потерю связи, а не только благоприятную последовательность быстрых ответов.
Попробуйте на практике
Проследите состояния вымышленной системы на бумаге, не отправляя торговые команды.
- Запишите лимит тысяча, исполненную позицию шестьсот и активную покупку трёхсот. Рассчитайте возможную позицию при её исполнении.
- Добавьте предполагаемую новую покупку трёхсот. Сравните ошибочную проверку без ожидающей заявки с проверкой полного возможного объёма.
- Учтите частичное исполнение ста единиц первой заявки: обновите позицию и оставшийся активный объём одновременно.
- Добавьте событие запрос отмены отправлен, ответ неизвестен. Объясните, почему нельзя считать активный остаток нулевым без подтверждения.
- Разделите три защитных действия: запрет новых команд, отмена активных заявок и изменение открытой позиции. Укажите, какие результаты требуют отдельной проверки.
Как проверить результат. До новой заявки возможный объём равен девятистам, после неё тысяче двумстам. При частичном исполнении сумма семисот и двухсот остаётся девятьсот. Неизвестный исход отмены не освобождает лимит автоматически.
Частые вопросы
Лимит позиции гарантирует ограничение потерь?
Нет. Он ограничивает один параметр системы. Денежный результат зависит также от цены, ликвидности, расходов и свойств инструмента; отдельные ограничения проверяют совместно.
Достаточно ли успешного теста на исторических ценах?
Нет. Такой тест может не воспроизводить задержки, частичные исполнения и сбои обмена сообщениями. Операционные риски требуют отдельных сценариев проверки с явно заданными ожидаемыми состояниями.
Самостоятельный разбор темы. Содержание конкретной обучающей программы здесь не представлено.