Содержание статьи
- Доказательства и область применения
- Иллюстрация
- Процесс
- Моментальный снимок и поток изменений
- Завершите окно признака до определения будущей цели
- Восстановление книги ордеров — часть метода
- Синтетические вычисления и результаты, реализуемые на практике.
- Задержка и выбор типа ордера определяют результат
- Регрессия внутри одного окна не доказывает будущую альфу
- Частые ошибки
- Практический список проверки
- Частые вопросы
- Источники исследования
Доказательства и область применения
Cont, Kukanov и Stoikov исследуют OFI и влияние на цену для 50 акций США. Предложенные ниже прогнозная модель и модель исполнения — отдельные эксперименты, не результаты этой работы.
Практическая последовательность действий
- Восстановите книгу ордеровПримените правила площадки для снимков и дельт.
- Рассчитайте OBI и eОтделяйте видимое состояние книги от потока изменений котировок.
- Завершите окно признакаИспользуйте лишь наблюдения, полученные до решения.
- Смоделируйте приход ордераПримените предположения о задержке, спреде и очереди.
- Оцените чистую будущую доходность.Отделите предсказание от объяснения в рамках одного временного окна.
Моментальный снимок и поток изменений
OBI=(B−A)/(B+A), где B и A — одновременно наблюдаемые объёмы на лучших ценах покупки и продажи. Многоуровневый вариант должен явно выбрать фиксированное число уровней или ценовое расстояние. OBI около +1 означает относительно большую видимую глубину покупки; это не число покупателей, не их намерения и не гарантия сохранения заявки к приходу ордера.
OFI измеряет изменения объёмов очередей и цен котировок. Исходное исследование рассматривает влияние на цену в коротких интервалах и роль глубины [1]. Такая объясняющая связь отличается от стратегии, прогнозирующей и реализующей будущее движение после получения наблюдений.
Дельта сделок учитывает агрессивные исполнения. OFI также отражает добавление и отмену котировок и изменение их цен. OFI может стать положительным при отмене заявок на продажу без агрессивной покупки. Положительный снимок OBI может сочетаться с быстро уходящим в минус OFI, когда исчезает ранее большая очередь покупки.
Завершите окно признака до определения будущей цели
При обновлении от n−1 к n обозначим b и a лучшие цены покупки и продажи, а qb и qa — объёмы на них. Код использует определение OFI первого уровня из исследования [1]. При неизменных ценах оно сводится к изменению объёма очереди покупки минус изменение объёма очереди продажи. При смене цен нужно брать соответствующие старые или новые очереди, а не просто вычитать объёмы.
Суммируйте e за завершённое окно W. Возможная нормировка — на предыдущую среднюю глубину либо через z-оценку по обучающим данным. Не стандартизируйте по всему будущему тестовому периоду. OBI на конец окна, OFI внутри окна и спред — отдельные признаки. При B+A=0 или отсутствии любой стороны наблюдение недопустимо.
Один предлагаемый кандидат требует zOFI>1.5, OBI>0.3, spread≤2 тика и свежих данных. Целевой интервал начинается с исполнимой котировки после задержек наблюдения и ордера и заканчивается через H=2 секунды. Пороги и горизонт — исследовательское предложение, не доказанная в работе прибыльная конфигурация.
Храните время биржевого события и время локального получения полного признака. Симуляция, открывающая позицию по более ранней метке, предполагает знания, которых у системы ещё не было. Доходность внутри окна признака относится к объясняющему тесту, а не к будущей торговой прибыли.
e = I(b>=b_prev)*qb - I(b<=b_prev)*qb_prev
- I(a<=a_prev)*qa + I(a>=a_prev)*qa_prev
OFI_window = sum(e for quote events in completed_window)
OBI = (qb-qa)/(qb+qa)
features_known_at = local_receive_time_of_last_required_event
order_arrival = features_known_at + compute_delay + network_delay
label = executable_exit_price_after(order_arrival,H) - executable_entry_price
# A price move inside the feature window is not future trading profit.
Восстановление книги ордеров — часть метода
Документация Bybit задаёт замену книги новым снимком и удаление уровня при дельте с нулевым объёмом [2]. Реализуйте реально используемую схему: первый уровень может передаваться только снимками, более глубокие потоки — дельтами. Универсальный парсер, считающий каждое сообщение приращением, может создать неверную книгу.
Проверяйте идентификаторы обновлений, общую последовательность cross sequence и часы согласно гарантиям площадки. Не предполагается увеличение каждого идентификатора ровно на единицу без документации. После пересинхронизации не сравнивайте новый снимок с устаревшей книгой, имеющей разрыв, и не называйте разницу огромным OFI. Начните окно признака заново.
Публичные котировки — лишь наблюдаемая часть ожидающих заявок. Выборка или пакетирование могут скрыть последовательность отмен и добавлений между сообщениями. Называйте результат наблюдаемым OFI на частоте этого потока. Сравнивая его с дельтой сделок, используйте правила агрессора и временных меток отдельного канала сделок [3].
Учитывайте ограничение глубины: книга top-K может терять уровни при движении цены, хотя стратегия не наблюдала отдельных отмен. Изменения за известной границей нельзя трактовать как точно установленные события ордеров. Отсутствующие котировки — не очереди нулевого размера.
Синтетические вычисления и результаты, реализуемые на практике.
Пусть лучшая покупка — 100.00 с объёмом 80, лучшая продажа — 100.01 с объёмом 20. OBI=0.60. Объём продажи снижается с 20 до 5, объём покупки и цены неизменны: e=+15. Если это отмена заявок, дельта сделок нулевая. Затем объём покупки падает с 80 до 70 при неизменном объёме продажи: e=−10. OFI двух событий равен +5, итоговый OBI=65/75, примерно 0.867.
Положительный признак ещё не прибыль. В отдельном условном выигрышном сценарии купите по доступной цене продажи 100.01 и продайте по цене покупки 100.04 через выбранный горизонт. Валовая прибыль — 0.03 за единицу. Если комиссии за вход и выход вместе с проскальзыванием составляют 0.01, чистая прибыль — 0.02. Середина котировок 100.005 не обязательно доступна для покупки.
В неудачном сценарии большая заявка покупки исчезает до прихода ордера, котировки смещаются к 99.96/99.98. Покупка исполняется по 99.98, выход — по цене покупки 99.94 с валовым убытком 0.04. Пассивный лимит на 100.00 мог бы исполниться как раз при начале падения. Нельзя помечать неблагоприятные касания как неисполнение, гарантируя исполнение выгодных.
Задержка и выбор типа ордера определяют результат
Перед тестированием выберите агрессивное или пассивное исполнение. Агрессивные ордера оплачивают спред и могут занимать несколько уровней глубины при больших размерах. Пассивные ордера требуют учета очереди, отмены и неблагоприятного отбора. Агрегированные данные L2 без идентификаторов ордеров обычно не раскрывают точный приоритет очереди, поэтому сообщайте консервативные сценарии исполнения или границы.
Стопы на заданном числе тиков, выходы через фиксированный горизонт и при развороте признака — разные правила. Быстрая смена признаков может создать чрезмерный торговый оборот. Пауза между сделками или требование устойчивости признака могут уменьшить оборот, но добавляют задержку; измеряйте оба эффекта.
При устаревшем потоке, пересечённых ценах покупки и продажи вопреки правилам рынка или пересинхронизации прекратите новые входы. Для открытых позиций нужен заранее определённый ответ системы риска. Отсутствие данных не означает остановку цены.
Проверяйте чувствительность к размеру позиции и задержке. Признак может предсказывать небольшой сдвиг середины котировок, не обеспечивая нужного объёма сделки. Значим доход с учётом фактических исполнений для исследуемого размера, а не бесконечное число сделок по лучшей видимой котировке.
Регрессия внутри одного окна не доказывает будущую альфу
Разделяйте три задачи: объяснение изменения середины котировок за W, прогноз изменения после W и измерение P&L с реалистичной задержкой. Высокий R-квадрат в первой задаче не доказывает результат третьей. Цена могла отреагировать до получения данных системой.
Разделите данные по торговым дням и удалите целевые горизонты, перекрывающие границы проверки. Сравните с моделями, использующими запаздывающую доходность, спред и глубину без OFI. Это проверит, добавляет ли OFI информацию или в основном пересказывает только что произошедшее движение цены.
Показывайте качество прогноза вместе с оборотом, долей исполнений, чистым P&L, экстремальными убытками и чувствительностью к задержке и размеру. Оценивайте режимы ликвидности и площадки отдельно. Доказательства по акциям из этой работы нельзя переносить на бессрочные криптоконтракты с тем же порогом и предполагаемой одинаковой структурой издержек.
Частые ошибки
Исполнение всех ордеров по середине котировок
Это устраняет спред и завышает ожидаемую доходность.
Видимая стена заявок якобы доказывает устойчивый спрос
Котировки могут быть отозваны, а намерения участников не наблюдаются.
Назвать одновременную подгонку прогнозом
Целевой интервал должен начинаться после доступности полного признака.
Список проверки перед использованием метода
Отмечайте пункты после проверки на своих данных. Прогресс сохраняется в этом браузере и не подтверждает прибыльность стратегии.
Частые вопросы
Может ли значение OBI быть положительным, если цена падает?
Да. Видимая глубина временна; новый поток ордеров, отмены и другие площадки могут немедленно изменить рынок.
Может ли стандартный OHLCV восстановить OFI?
Нет. Нужна как минимум последовательность лучших цен покупки и продажи с объёмами стоящих на них заявок. Торговый объём не раскрывает события котировок.
Источники исследования
Каждый источник подтверждает указанное рядом определение или доказательство. Псевдокод, искусственные примеры и предлагаемые параметры требуют отдельной проверки.
- The price impact of order book eventsCont, Kukanov and Stoikov. Прочитаны аннотация и определение OFI; исследованы 50 акций США, это не бэктест данной стратегии. Проверено: .
- OrderbookBybit. Изучены снимки и дельты, временные метки и ограничения публичного потока данных. Проверено: .
- Public TradeBybit. Изучены поля канала сделок для различения агрессивных исполнений и изменений котировок. Проверено: .
Связанные методы
Примечание о рисках
Материал предназначен для обучения и планирования исследований, а не является финансовой рекомендацией. Backtest моделирует прошлые данные, не гарантирует будущую доходность и не совершает реальные сделки. Методы библиотеки не обязательно реализованы в приложении. См. методологию и учебный центр.
Проверьте правила, прежде чем рисковать реальным капиталом
Проверьте возможности приложения, данные и каждую смоделированную сделку; сложные детекторы могут потребовать отдельной реализации.
Скачать Backtest в App Store