Обычно советуют так: если хотите честный бэктест, возьмите тиковые данные. На мой взгляд, для большинства стратегий этот совет неверен, и следование ему обычно делает бэктест хуже, а не лучше. Не потому, что тиковые данные неточны — точнее данных не найти, — а потому, что большинство людей подменяют строгость детализацией, хотя это разные вещи.
Вот как обычно всё идёт не так. Исследователь строит стратегию на 1-минутных свечах, получает Sharpe, который его устраивает, а потом кто-то — наставник, участник форума или собственные сомнения — говорит, что бэктест нечестный, потому что построен на свечах. Тогда исследователь перестраивает весь конвейер на тиковых данных: каждая сделка, каждое обновление котировок, временная метка с точностью до микросекунды. Бэктест работает медленнее, код становится втрое сложнее, а Sharpe... почти не меняется или меняется так, что никто не может объяснить почему. И всё равно запускают стратегию в работу, потому что тиковые данные кажутся более строгим подходом, но ощущение строгости — не то же самое, что строгость.
Что на самом деле даёт тиковая детализация
Тиковые данные показывают последовательность и цену каждой сделки и (если вы за это платите) каждого обновления книги заявок. Это настоящая информация. С её помощью можно восстановить позицию в очереди, оценить вероятность исполнения по заданному уровню цены и увидеть неблагоприятный отбор — двинулся ли рынок против вас сразу после предполагаемого исполнения. Всё это чрезвычайно важно, если позиция удерживается секунды, а преимущество измеряется долями тика.
Но большинство стратегий, которые мы видим в Stratmill, — как и большинство стратегий розничных и полупрофессиональных исследователей — удерживают позиции от нескольких минут до нескольких дней. На таком горизонте честность бэктеста зависит не от того, смоделировали ли вы 40-ю сделку за конкретную минуту. Важно, учли ли вы спред, ставку финансирования, кривую проскальзывания и тот факт, что ваша лимитная заявка стоит в очереди за заявками других участников. Все четыре параметра можно неверно смоделировать на тиковых данных и правильно — на 1-минутных свечах. Детализация и достоверность не зависят друг от друга.
Последнюю цифру часто недооценивают. Бэктест на тиковых данных — это не просто «тот же бэктест, только строк больше». На большинстве бирж сделки поступают не в порядке временных меток, присвоенных при получении данных, затем корректируются задним числом, разбиваются между несколькими сегментами matching engine, а на некоторых площадках, данные с которых мы загружали, иногда дублируются или теряются при переподключении. Создать конвейер тиковых данных, который действительно точнее хорошо построенного конвейера свечей, а не просто детальнее, — полноценный системный проект. Большинство команд за него не берутся. Они просто передают бэктестеру тиковый файл поставщика данных и считают дело сделанным. В итоге вместо известного и документированного набора приближений (OHLCV) используют неизвестный и недокументированный набор — всё, что логика сверки тиков поставщика сделала в неудачный день.
Шум, за который вы платите
Есть и вторая цена — она связана скорее со статистикой, чем с инженерией. Отдельные сделки чередуются между bid и ask — это колебания bid-ask, известный артефакт, описанный в исследованиях микроструктуры рынка ещё с 1980-х годов. Если ваш сигнал работает на горизонте короче нескольких секунд, бэктест на тиковых данных может заставить вас увидеть закономерность там, где есть лишь такие колебания. Я видел, как исследователь обнаружил красивую закономерность возврата к среднему в данных по каждой сделке, но она исчезла, стоило объединить данные хотя бы в 5-секундные свечи: закономерностью оказались колебания bid-ask.
Один знакомый квант — раньше занимался маркетмейкингом, теперь управляет небольшим криптопортфелем — объяснил это так: «Тиковые данные — это увеличительное стекло. Направите его на своё преимущество — отлично. Направите на шум — и полгода потратите на то, чтобы безупречно смоделировать шум». Теперь он тестирует почти всё на 1-секундных или 1-минутных свечах и обращается к тиковым данным только ради ответа на конкретный вопрос: «Исполнилась бы эта лимитная заявка на самом деле?» Это вопрос о вероятности исполнения, а не о сигнале.
Это правильный подход, и именно его чаще всего упускают сторонники тиковых данных. Честно использовать тиковые данные — не значит запускать на них всю стратегию. Их стоит применять точечно, чтобы ответить на один или два вопроса, на которые данные в виде свечей действительно не дают ответа.
Когда критики правы
При всём этом есть стратегии, которым тиковые данные необходимы, и было бы преувеличением утверждать обратное. Если вы занимаетесь чем-то похожим на маркетмейкинг — выставляете котировки с обеих сторон, управляете инвентарём тик за тиком и учитываете свою позицию в очереди на конкретном ценовом уровне, — свечи вообще не могут описать вашу задачу. Вся экономика такой стратегии укладывается в минуту, а не в промежуток между минутами. То же относится к чувствительному к задержкам статистическому арбитражу между площадками, где вопрос буквально в том, «какая сделка произошла первой», а также к маркетмейкингу опционами крупного объёма, где несколько сотен миллисекунд неблагоприятного отбора после сделки решают всё. В таких режимах бэктест на свечах — не упрощение, а ошибка выбора категории: вы тестируете не менее детализированную версию своей стратегии, а другую стратегию, которая просто называется так же, как настоящая.
| Горизонт стратегии | Что скрывают свечи | Нужны ли тиковые данные? |
|---|---|---|
| Маркетмейкинг / торговля с учётом очереди | Вероятность исполнения, неблагоприятный отбор, позиция в очереди | Да — обязательно |
| Арбитраж с учётом задержек / между площадками | Последовательность сделок, какая площадка изменила цену первой | Да |
| Внутридневной импульс, возврат к среднему (минуты–часы) | Момент исполнения внутри свечи, издержки на спред | Только для оценки вероятности исполнения, не для сигнала |
| Свинг-трейдинг / сделки на несколько дней, направленные опционные стратегии | Почти ничего существенного | Нет — свечей достаточно, и часто с ними чище |
Речь не о том, что «тиковые данные плохие». Просто за стремлением к ним часто скрывается попытка избежать более сложного и менее эффектного вопроса: верна ли моя модель издержек? Верно ли моё допущение об исполнении? Исполнилась бы эта заявка на самом деле или я предполагаю исполнение по цене, которую книга заявок никогда по-настоящему не предлагала? На эти вопросы можно ответить по 1-минутным или даже 1-секундным свечам, если честно учитывать позицию в очереди и спред. Тиковые данные позволяют ответить точнее, но требуют в несколько раз больше инженерных усилий; для стратегий, где эта дополнительная точность ничего не меняет в выводах. Направляйте дополнительные усилия туда, где этого требует горизонт стратегии, а в остальных случаях обходите их стороной: для исследовательской команды это полезнее, чем по умолчанию брать самые детальные данные из доступных лишь потому, что высокая детализация кажется более строгим подходом.
← Все статьи


