После того как вы ухудшите данные, бэктест может выглядеть убедительнее. Удалите некрасивые значения, заполните пропуски аккуратными ценами — и коэффициент Шарпа может вырасти. Но это улучшение может быть тревожным сигналом: правило очистки, возможно, стерло именно те рыночные условия, в которых ваша стратегия должна выдерживать испытание.
Качество данных имеет значение. Пересекающиеся котировки или дублированная сделка могут создать исполнение, которого никто не мог получить. Но фильтр, заставляющий неудобные наблюдения исчезнуть, тоже является выбором модели. Относитесь к нему с тем же подозрением, что и к новому сигнальному признаку.
Когда плохая цена — это действительно плохие данные?
Для начала спросите себя, что означает это наблюдение. Сделка далеко от преобладающего уровня рынка может быть испорченной записью, реальным проходом через рынок с низкой ликвидностью или событием, специфичным для площадки. Свеча с нулевым объёмом за 1 минуту может означать, что сделок не было, тогда как отсутствие свечи может говорить о сбое потока данных. С этими случаями нужно обращаться по-разному.
Рассмотрим простую стратегию возврата к среднему: она покупает, когда цена опускается на 1% ниже короткой скользящей средней, и закрывает позицию на уровне средней. Во время малоликвидного ночного периода проходит сделка на 1.2% ниже предыдущей цены, после чего рынок резко отскакивает. Если сделка реальная, стратегия с выставленным лимитным ордером могла получить исполнение. Если же это ошибочный тик, которому не соответствовала исполнимая котировка, учёт такого исполнения создаёт несуществующее преимущество.
Удаление свечи не делает ситуацию автоматически безопаснее. Ордер стратегии всё ещё мог находиться на рынке, и следующая реальная сделка могла его исполнить. Обоснованное воспроизведение должно моделировать, что могла наблюдать стратегия и по каким ценам её ордер мог правдоподобно исполниться.
Как правило очистки влияет на результат?
Запустите стратегию с несколькими явно заданными вариантами обработки данных и сравните изменения. Сохраните исходные данные и фиксируйте каждое исключение или исправление с указанием причины. Затем покажите, насколько результат зависит от этих решений.
| Обработка данных | Возможная польза | Риск для бэктеста |
|---|---|---|
| Удалить сделку за пределами задокументированного диапазона биржевых ошибок | Не позволяет заведомо недействительной записи задать экстремальное значение | Правило может ошибочно пометить реальные сделки во время быстрого рынка |
| Протянуть последнюю цену через интервал с пропущенными данными | Позволяет индикаторам работать при наличии пропусков | Создаёт цену, по которой сделок могло не быть |
| Использовать консолидированные котировки вместо цен последних сделок | Даёт более точное представление об отображаемых ценах исполнения | Размер заявки, доступ к площадке и позиция в очереди по-прежнему имеют значение |
| Удалять все свечи-выбросы по статистическому порогу | Снижает чувствительность к экстремальным значениям | Может удалить реальные периоды стресса, на которые приходится большая часть убытков стратегии |
Предположим, что коэффициент Шарпа без фильтрации равен 0.9, а после исключения 0.8% свечей он вырастает до 1.4. Само по себе это ещё не доказывает улучшение качества данных. Проверьте, группируются ли удалённые свечи вокруг скачков волатильности, приходится ли на них значимая доля P&L и было ли правило исключения задано до того, как вы увидели результат.
Ведите журнал исключений данных: источник, временная метка, затронутые поля, причина действия и отметка о том, было ли решение принято до или после анализа результатов стратегии.
Как проверить, изменила ли очистка торговое преимущество?
Зафиксируйте стратегию и сравните несколько правдоподобных вариантов обработки на одних и тех же датах. По возможности включите исходное воспроизведение, набор задокументированных исправлений и консервативный сценарий исполнения для неоднозначных наблюдений. Для каждого запуска укажите количество сделок, оборот, просадку и вклад затронутых интервалов в P&L наряду с коэффициентом Шарпа.
Затем изучите сделки, которые изменились. Если после исключения небольшой группы подозрительных тиков исчезают самые прибыльные сделки стратегии, проверьте эти записи по отдельности. Если исчезают убытки, разберите их с той же тщательностью. Если правило привлекает пристальное внимание только тогда, когда ухудшает бэктест, оно уже влияет на исследование.
Чтобы исследование можно было воспроизвести, сохраняйте версии файлов поставщика или их контрольные суммы, код очистки и список исключений. Поставщик может пересмотреть историю; следующий запуск должен позволять понять, изменилась стратегия или входные данные.
Но разве очистка не необходима?
Да. Сохранение заведомо испорченной записи может создать несуществующую сделку, исказить волатильность или нарушить работу индикатора. И не нужно делать вид, будто исходный поток данных — непреложная истина. Суть в более конкретном: очистке нужны подтверждения, зафиксированное правило и проверка чувствительности, потому что она может изменить представление о рынке, которое даёт бэктест.
Когда исправление данных улучшает результат, спросите себя, какое наблюдение оно удалило и приняли бы вы то же решение, не видя кривой капитала. Если вы не уверены, сохраните обе версии в исследовательской документации. Разница между ними тоже часть результата.
← Все статьи


