Валидация бэктестов · Количественное исследование
CopyTradeAudit
Движок бэктеста, построенный так, чтобы сломать собственный результат, — и честный отрицательный вывод, который он дал.
- Python
- FastAPI
- pytest
- SQLite
- uv
Проблема
Множество продуктов продаёт одну и ту же идею: рынки предсказаний публикуют каждую сделку, некоторые трейдеры стабильно в плюсе — значит, повторяй за ними и зарабатывай. Такую идею легко проверить бэктестом и так же легко проверить неправильно: достаточно утечки будущей информации или полусотни связанных рынков, посчитанных как полсотни независимых наблюдений, — и результат выглядит отлично, не значая ничего.
Для кого
Всем, чьё решение опирается на бэктест: стратегия перед запуском, чужой послужной список, число, которое выглядит слишком хорошо, чтобы с ним спорить.
Что делает
Детерминированное исследовательское ядро на Python — около 3 500 строк под 103 тестами — проверенное на 370 рынках, 134 000 реальных сделок и 46 независимых событиях. Вывод: измеримого преимущества нет. Отобранные копированием сделки дали +0,0200 на акцию сверх ценового диапазона 0,95, а покупка того же диапазона вслепую, вообще без трейдеров, — +0,0211.
Ключевые решения
- Защита от утечки будущего по построению: в момент сигнала мастерство трейдера считается только по рынкам, уже закрывшимся к этому моменту, — никогда по тому, что случилось после.
- Бутстрап-интервалы с кластеризацией по событиям, чтобы полсотни связанных рынков внутри одного события считались одним наблюдением, а не пятьюдесятью.
- Исполнение моделируется по реальному биржевому стакану с комиссиями, проскальзыванием и частичным заполнением, а не по допущению, что каждая заявка исполнилась по середине спреда.
- Опубликован отрицательный результат, а не лестный; одна стратегия помечена как INCONCLUSIVE, потому что сломанной оказалась не модель, а само измерение.
Чему научился
Я нашёл четыре ошибки в собственной методологии, и каждая уже успела произвести уверенный ложноположительный вывод — включая стратегию со 100% побед на 36 сделках, реальное преимущество которой над слепым входом составило 0,8%. Ранжирование трейдеров по доле побед находит не мастерство, а тех, кто покупает почти-достоверности по 98 центов. Уверенный неверный ответ стоит дороже, чем отсутствие ответа.
Куда движется
Превратить проверки на утечку и кластеризацию в оснастку, которую можно навести на чужой бэктест, — чтобы та же строгость применялась к стратегии, написанной не мной.
Только на бумаге — ни живой торговли, ни реальных денег, и это сознательно.