22 серпня 2026 · дослідження

Чому для відкритих ордерів у бектесті потрібен таймер

Чому для відкритих ордерів у бектесті потрібен таймер

Стратегія надсилає лімітний ордер о 10:00. О 10:03 сигнал змінюється. Бектест непомітно замінює ордер о 10:04, а потім зараховує виконання о 10:05. У паперовій торгівлі початковий ордер усе ще може стояти в книзі ордерів біржі. Якщо він виконається, поки діє і новий ордер, стратегія матиме два ордери, а модель позиції вдаватиме, ніби ордер був лише один.

Відкритим ордерам потрібні власний стан і таймер. Бектест має знати, коли було надіслано кожен ордер, коли його можна скасувати, чи дійшов запит на скасування до біржі та що станеться, якщо виконання випередить скасування. Три спрощення регулярно стирають ці важливі деталі.

Помилка 1: вважати новий сигнал миттєвим скасуванням

У багатьох бектестах цільову позицію перераховують на кожному барі, а відкритий ордер замінюють на той, якого вимагає останній сигнал. Через це ордер зникає саме тоді, коли стратегія змінює рішення. Реальні біржі так не працюють. Запит на скасування потребує часу, і ордер може виконатися, перш ніж біржа його обробить.

Розгляньмо лімітний ордер на купівлю 100 акцій по $50.00. О 10:03 сигнал слабшає, тож стратегія надсилає запит на скасування. О 10:03:00.080 виконуються 60 акцій; скасування підтверджують о 10:03:00.110. Решту 40 акцій скасовано, але в позиції вже є 60 акцій. Бектест на основі барів, який видаляє ордер о 10:03, може показати нуль. А якщо він припускає миттєве скасування, але все одно фіксує пізніше виконання, то вигадує експозицію в протилежному напрямку.

Відстежуйте життєвий цикл ордера явно: надісланий, підтверджений, виконаний частково, очікує скасування, скасований або виконаний повністю. Зберігайте виконання, що відбулися до підтвердження скасування. Для грубої симуляції на основі барів визначте й опишіть консервативне правило черговості, якщо обидві події могли статися в межах одного бару.

Помилка 2: надавати відкритому ордеру необмежений строк дії

Лімітний ордер, ціна якого визначена сигналом о 10:00, може застаріти, навіть якщо в сигналі немає явного правила виходу. Книга ордерів змінюється, волатильність коливається, а ринкова оцінка інструмента може відхилитися. Проте симулятор, який залишає ордер активним до виконання, може зрештою зафіксувати його виконання через кілька місяців і приписати його гіпотезі, яка вже втратила актуальність.

Визначте політику строку дії ордера відповідно до стратегії. Сигнал із горизонтом 1-minute може передбачати строк дії 30 секунд; під час щоденного ребалансування ордер може залишатися активним до закриття. Це рішення для конкретної стратегії, а не універсальні налаштування за замовчуванням. Якщо стратегія змінює ціну на кожному барі, моделюйте послідовність скасування та заміни, а не телепортуйте ордер миттєво на нову ціну.

Політика ордераТипове застосуванняЗапитання для бектесту
Виконати доступну частину або скасуватиЗабрати доступну ліквідність і зупинитисяЯка частина могла виконатися під час надсилання?
Короткий строк діїШвидкий сигнал із коротким вікном виконанняЧи залишався ордер дійсним, коли ціна повернулася?
До кінця торгової сесіїПовільне ребалансування або намір брати участь в аукціоні закриттяЧи підтримує біржа такий строк дії?

Помилка 3: зараховувати кожне торкання ціни як виконання

Якщо мінімум свічки торкається ціни лімітного ордера на купівлю, це ще не означає, що ордер виконався. Попереду в черзі могли бути інші ордери, обсяг торгів за цією ціною міг бути малим або короткочасна угода могла відбутися ще до надходження ордера. Застаріла модель ордерів часто поєднує всі три помилки: тримає ордер активним надто довго, вважає його першим у черзі, а потім зараховує повне виконання щойно ціна торкнулася потрібного рівня.

Щонайменше не допускайте виконань до часу надходження ордера та обмежуйте змодельований обсяг правдоподібним обсягом торгів за лімітною ціною. Для стратегій, де важлива позиція в черзі, використовуйте дані про угоди й книгу ордерів або навмисно консервативну модель черги. Модель виконання за торканням ціни може стати в пригоді для попередньої оцінки, але позначайте її як оптимістичне наближення та порівнюйте з суворішим припущенням.

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

Моделюйте ордер, який плануєте перевіряти в паперовій торгівлі

Стан ордера пов'язує наміри стратегії з фактичною експозицією. Позиція має змінюватися після виконання, а не після появи цільового рівня сигналу чи запиту на скасування. Заміни ордерів мають залишати слід для аудиту, а часткові виконання — враховуватися під час наступного рішення. Це ускладнює бектест, але робить порівняння з паперовою торгівлею змістовним: у розбіжностей між системами щодо виконання з'являються зрозумілі причини.

Якщо модель ордерів має невизначені параметри, збережіть цю невизначеність у результатах. Перевірте ордери з коротким і тривалим строком дії, змініть затримку скасування та покажіть, наскільки результат залежить від оптимістичних припущень щодо черги. Можливо, стратегія працює добре. Але її уявна перевага може виявитися відсотками, які приніс ордер, що реальна система скасувала б кілька годин тому.

керування ордерамибектестингвиконанняпаперова торгівля
ПоділитисяXLinkedInFacebookRedditHacker NewsWhatsAppTelegramEmail
← Усі статті