Чи втрачає заявка пріоритет після зміни ціни
Зміна ціни лімітної заявки переміщує її в кінець черги. Розглядаємо вплив на ймовірність виконання та беззбиткову відстань зміни ціни для бота.
Зміна заявки та пріоритет у черзі суперечать одне одному. На ринках акцій США та на більшості ф’ючерсних майданчиків зміна ціни виставленої лімітної заявки переміщує її в кінець черги за новою ціною. Збільшення видимого обсягу має такий самий наслідок. Зменшення обсягу дає змогу зберегти місце в черзі. Скасування заявки з подальшим виставленням нової означає нову заявку з новою часовою позначкою — незалежно від того, як називається відповідна кнопка на вашій торговій платформі.
Чи втрачає заявка пріоритет у черзі після зміни?
Чотири правила охоплюють майже всі торговельні майданчики, з якими працює трейдер, що самостійно ухвалює рішення.
- Зміна ціни позбавляє пріоритету. Заявка надходить за новою ціною як нова, позаду всіх заявок, які вже стоять на цьому рівні.
- Збільшення видимого обсягу позбавляє пріоритету. На деяких майданчиках у чергу повторно ставлять лише доданий обсяг, залишаючи початкову частину на місці. На інших змінюють час усієї заявки. В обох випадках додані акції не зберігають попередню позицію в черзі.
- Зменшення видимого обсягу зберігає пріоритет. Майданчик розглядає це як часткове скасування, а вилучення частини обсягу нічого не коштує з погляду позиції в черзі.
- Скасування та повторне надсилання заявки щоразу позбавляє пріоритету. Між цими діями є проміжок, коли жодна ваша заявка не є активною.
Ця асиметрія має логічне пояснення. Часовий пріоритет є винагородою книги заявок за те, що ви утримували ціну, поки інші чекали. Додавання обсягу або зміна ціни означає прийняття нового ризику, а новий ризик починається з кінця черги. Зменшення обсягу означає відмову від ризику, тому за це немає підстав стягувати плату. У книзі з pro rata-розподілом розрахунок змінюється, оскільки розподіл залежить від показаного вами обсягу, а не від моменту надходження заявки. У матеріалі Часовий пріоритет за ціною проти pro rata розглянуто обидва підходи.
Змінити заявку на місці чи скасувати й подати нову?
На торговельному майданчику це різні інструкції. Зміна заявки, яку ваша платформа може називати modify або replace, — це одне повідомлення із зазначенням наявної заявки та змін до неї. Вона виконується атомарно: зміни застосовуються, або заявка залишається без змін. Скасування з подальшим поданням нової заявки — це дві події з проміжком між ними. У цей момент ви взагалі не маєте місця в черзі. Якщо протягом цього проміжку на ринку укладаються угоди за вашою ціною або за кращою ціною, ви не берете в них участі.
Деякі майданчики реалізують зміну заявки всередині системи як скасування та подання нової заявки. Деякі брокери під час передавання заявки перетворюють зміну на cancel and replace, навіть якщо майданчик підтримує справжню зміну на місці. Результат однаковий: пріоритет втрачено. Якщо зміну заявки відхилено, початкова заявка залишається в книзі заявок. Якщо скасування виконано до того, як нову заявку відхилено, у вас не залишається активної заявки. Навіть зміна, що зберігає пріоритет, зазвичай отримує новий ідентифікатор заявки. Тому у ваших записах відображається нова заявка, хоча в книзі заявок вона й надалі рахується як стара.
Вартість зміни заявки
Позиція в черзі має цінність лише в межах того, що може виконати стрічка котирувань. Акції, які стоять перед вами, мають бути проторговані раніше. Швидкість їхнього виконання протягом сесії сильно коливається.
Точний SQL-код для кожного числа
SELECT
formatDateTime(toStartOfFifteenMinutes(et), '%H:%i') AS et_time,
round(toFloat64(avg(volume)) / 1000, 1) AS avg_k_shares_per_min,
round(quantileDeterministic(0.5)(toFloat64(volume),
toUInt64(toUnixTimestamp(et))) / 1000, 1) AS median_k_shares_per_min
FROM
(
SELECT
toTimeZone(window_start, 'America/New_York') AS et,
volume
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'AAPL'
AND window_start >= '2026-06-01'
AND window_start < '2026-07-01'
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
)
GROUP BY et_time
ORDER BY et_timeУ червні 2026 року 15-хвилинний інтервал, що починається о 09:30 ET, мав медіанний обсяг торгів на рівні 182.8 тисячі акцій AAPL за хвилину. Для інтервалу, що починається о 12:00, цей показник становив 62 тисячі. Заявка та сама, і ціна та сама. Але черга перед нею на відкритті ринку зовсім інша, ніж у середині дня.
Імовірність виконання до та після зміни заявки
Зміни заявок оцінюються через імовірність виконання. Панель нижче показує, скільки разів протягом хвилин регулярної сесії за один місяць обсяг торгів за хвилину досягав щонайменше заданої кількості акцій. Це можна трактувати як імовірність того, що черга такого розміру перед вами буде повністю виконана протягом однієї хвилини.
Точний SQL-код для кожного числа
WITH minute_volume AS
(
SELECT
ticker,
toStartOfMinute(toTimeZone(window_start, 'America/New_York')) AS et_minute,
sum(volume) AS shares
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('AAPL', 'KO')
AND window_start >= '2026-06-01'
AND window_start < '2026-07-01'
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
GROUP BY ticker, et_minute
)
SELECT
q.ahead AS shares_ahead,
round(100 * countIf(mv.ticker = 'AAPL' AND mv.shares >= q.ahead) / countIf(mv.ticker = 'AAPL'), 1) AS aapl_pct_of_minutes,
round(100 * countIf(mv.ticker = 'KO' AND mv.shares >= q.ahead) / countIf(mv.ticker = 'KO'), 1) AS ko_pct_of_minutes
FROM minute_volume AS mv
CROSS JOIN
(
SELECT arrayJoin([500, 1000, 2000, 4000, 8000, 16000, 32000, 64000, 128000]) AS ahead
) AS q
GROUP BY q.ahead
ORDER BY q.aheadЯкщо перед вами 500 акцій, то в 100 відсотка хвилин для AAPL обсяг торгів був достатнім, тоді як для KO цей показник становив 100 відсотка. За обсягу 8000 акцій показник для AAPL становить 100 відсотка, а за обсягу 128000 акцій знижується до 22.2 відсотка. Крива рухається лише в одному напрямку, а втрата пріоритету означає лише зміщення праворуч уздовж неї.
Розглядайте цю лінію як оптимістичну верхню межу. Обсяг торгів за хвилину розподіляється між багатьма цінами та обома сторонами ринку, і лише його частина припадає на ваш ціновий рівень. Тому фактична черга виконується повільніше. Хвилини, протягом яких не було жодної виконаної угоди, не враховуються. Оцінювання вашої позиції в черзі уточнює картину з урахуванням глибини ринку та частоти скасування заявок.
Відстань беззбиткового перепрайсингу
Тепер визначимо ціну зміни заявки. Розглянемо гіпотетичну заявку на купівлю, перед якою в черзі стоять 8 000 акцій, із 60-відсотковою ймовірністю виконання протягом наступної хвилини. Підвищення bid на один цент залишає заявку на новій найкращій ціні, без заявок попереду. Назвімо ймовірність виконання в цій точці 99 відсотками. Таке підвищення коштує один цент на акцію для кожного виконаного ордера.
Позначимо через V вартість виконання в розрахунку на акцію — вашу перевагу плюс будь-яку rebate, — а через t — відстань перепрайсингу. Зміна заявки є беззбитковою, коли підвищена ймовірність, помножена на зменшений дохід, дорівнює початковій ймовірності, помноженій на повний дохід. Після перетворення отримуємо один рядок:
t = V x (1 - p0 / p1)
Якщо вартість виконання становить 3 центи на акцію, а ймовірність зростає з 60 до 99 відсотків, беззбиткова відстань становить приблизно 1,2 цента. Підвищення на один цент окупається. Переслідування ціни на два центи — ні.
Застосуймо ту саму формулу до бота, єдина перевага якого — maker rebate. Станом на середину 2026 року maker rebates найвищого рівня на великих біржах акцій США за опублікованими тарифами становлять близько 0,20–0,30 цента на акцію. Візьмімо чверть цента. Формула дає беззбиткову відстань близько 0,1 цента, тоді як найменша зміна ціни, яку приймає будь-який майданчик у США, становить повний цент — приблизно вдесятеро більше. Бот, який перепрайсить заявку, щоб зберегти rebate, сплачує один tick заради чверті цента.
Rebate виплачується за виконані ордери, а не за наміри. Заявка, яка має вигідну позицію в черзі, але так і не виконується, не приносить нічого. Rebate, яку ви не отримали, не є економією. У матеріалі Комісії та rebate за моделлю maker-taker пояснюється, як працюють такі тарифи.
Коли покращувати ціну вже немає куди
Покращення ціни можливе лише тоді, коли між bid і offer є вільний крок. У найбільших акціях більшу частину часу такого простору немає.
Точний SQL-код для кожного числа
SELECT
ticker AS symbol,
round(avg(toFloat64(ask_price) - toFloat64(bid_price)) * 100, 2) AS avg_spread_cents,
round(100 * countIf(toFloat64(ask_price) - toFloat64(bid_price) <= 0.0105) / count(), 1) AS one_tick_wide_pct
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('AAPL', 'KO', 'SPY', 'NVDA', 'COST', 'NFLX')
AND sip_timestamp >= '2026-06-10 13:30:00'
AND sip_timestamp < '2026-06-10 20:00:00'
AND bid_price > 0
AND ask_price > bid_price
AND toFloat64(ask_price) - toFloat64(bid_price) < 5
GROUP BY ticker
ORDER BY one_tick_wide_pct DESCNFLX котирувався зі спредом в один цент у 81.4 відсотках оновлень котирувань 10 червня 2026 року. У середньому спред становив 1.3 центів. На іншому кінці панелі COST мав середній спред 77.53 центів. На ринку з кроком в один тик між bid і offer немає проміжної ціни, на яку можна перейти. Єдиний спосіб опинитися попереду черги — перетнути спред. У такому разі ви стаєте taker: сплачуєте комісію taker замість отримання rebate і втрачаєте весь спред, а не лише один тик.
Як часто бот переоцінки стикається з вибором
Бот, який слідує за ринком, не виконує цю операцію лише один раз. Він повторює її щоразу, коли найкраща ціна в біржовому стакані віддаляється від його заявки.
Точний SQL-код для кожного числа
SELECT
formatDateTime(toStartOfFifteenMinutes(et), '%H:%i') AS et_time,
uniqExactIf(bid_price, ticker = 'AAPL') AS aapl_distinct_bids,
uniqExactIf(bid_price, ticker = 'KO') AS ko_distinct_bids
FROM
(
SELECT
toTimeZone(sip_timestamp, 'America/New_York') AS et,
ticker,
bid_price
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('AAPL', 'KO')
AND sip_timestamp >= '2026-06-10 13:30:00'
AND sip_timestamp < '2026-06-10 20:00:00'
AND bid_price > 0
)
GROUP BY et_time
ORDER BY et_timeНайкраща ціна bid для AAPL досягла 359 різних рівнів протягом 15-хвилинного інтервалу, що почався о 09:30 ET 10 червня 2026 року, і 152 рівнів протягом інтервалу, що почався о 15:45. Найкраща ціна bid для KO досягла 78 рівнів у першому 15-хвилинному інтервалі. Кожна така зміна є коригуванням, яке може надіслати бот переоцінки, і після кожного коригування відлік часу очікування починається знову. Боти для grid trading обирають інший підхід: розміщують сітку заявок на фіксованих цінах. Ціни втрачають актуальність, але пріоритет зберігається.
Айсберг-ордери та запобігання самоторгівлі
Два ефекти другого порядку часто стають несподіваною проблемою.
Резервні заявки, які зазвичай називають айсберг-ордерами, показують лише частину обсягу, а решту приховують. На більшості книг заявок кожне оновлення видимої частини ставить її в кінець черги за цією ціною. Тому великий айсберг фактично поводиться як послідовність малих заявок, які щоразу втрачають свою позицію на користь повністю видимого обсягу. Зміна видимого обсягу запускає цей цикл заново.
Запобігання самоторгівлі — ще один такий ефект. Торговельні майданчики не дозволяють заявці одного учасника виконуватися проти іншої його заявки, що вже перебуває в книзі. Зазвичай у такому разі скасовують одну з двох заявок, а на деяких майданчиках — обидві. Бот, який змінює котирування в книзі з вузьким спредом, може видалити власну заявку на протилежному боці. У результаті одне редагування перетворюється на втрату двох позицій у черзі. Зміни заявки зазвичай зберігають початковий час дії, тоді як скасування та повторне виставлення заявки скидає його. Докладніше про це — у матеріалі час дії заявки.
Поширені запитання
Чи втрачає лімітна заявка своє місце в черзі, якщо змінити її ціну?
Так. На ринках акцій США та на більшості ф’ючерсних майданчиків заявка після зміни ціни вважається новою й опиняється позаду всіх акцій, які вже перебувають на цьому рівні. Єдина зміна, що зберігає пріоритет, — зменшення обсягу за тією самою ціною.
Чи є скасування та заміна заявки тим самим, що й редагування заявки?
Це залежить від майданчика. Зміна параметрів є одним повідомленням і може зберегти пріоритет, якщо зменшується лише обсяг. Скасування та заміна — це дві події з проміжком, протягом якого на ринку не залишається вашої заявки, а замінна заявка завжди стає в кінець черги.
Чи зберігає зменшення обсягу заявки її пріоритет у черзі?
Так, якщо ціна не змінюється. Майданчики розглядають зменшення обсягу як часткове скасування, а акції, що залишилися, зберігають початкову часову позначку. Збільшення обсягу працює інакше.
Яку фактичну цінність має позиція в черзі?
Вона визначається ймовірністю виконання, помноженою на цінність виконаної заявки для вас. Обидві складові можна виміряти: на панелях вище показано, який обсяг угод проходить щохвилини, а вашу перевагу та будь-яку rebate визначає вартість виконаної заявки.
Кожна панель містить SQL-запит, за допомогою якого її побудовано. Змініть ticker або діапазон дат і поставте те саме запитання щодо будь-якого інструменту в терміналі Strasmore.