Цена поиска
Перебор 15 000 конфигураций, оценённых по 156 сделкам, изготавливает 0,317 R на сделку ещё до того, как рынок сделал хоть что-нибудь, и это число выходит из двух счётчиков само по себе, без единой цены внутри. Примени ту же арифметику к перебору из урока 63: t-статистика его победителя, 3,65, должна превысить 3,54, а не 1,65, и она превышает. Затем задай одно число, которое тот backtest никогда не печатал — сколько сделок правило обязано было закрыть, чтобы вообще получить право победить, — и приговор тому же победителю переезжает с одного шанса из 147 на подбрасывание монеты, притом что ни одна цена не изменилась.
Требования: Урок 63, за перебор по 253 ячейкам, победителя которого эта страница пересуживает, урок 19, за то, что t-статистика на семи сделках способна вынести и чего не способна, и урок 62, за предложение, в виде которого правило должно быть записано, прежде чем всё это вообще применимо.
Что счётчик говорит тебе уже сам по себе
Предположим, что каждое правило, которое ты собираешься проверить, ничего не стоит. Не плохо задумано, не невезучее: ничего не стоит в том точном смысле, что его истинное преимущество равно нулю. Каждое всё равно вернёт число, потому что конечная запись сделок — это выборка, а выборки колеблются. Проверь одно, и получишь колебание. Проверь много, и ты оставишь себе самое большое колебание из найденных, ведь оставлять самое большое — это и есть перебор. Самый большой из множества шумных нулей не равен нулю, и его величина задаётся тем, сколько ты вытянул, а не тем, откуда ты их тянул.
Эта последняя оговорка и есть весь урок, и здесь стоит сказать прямо. Сколько преимущества изготавливает перебор, не зависит ни от инструмента, ни от таймфрейма, ни от года, ни от того, был ли на рынке тренд. Это зависит от двух счётчиков: сколько конфигураций ты испробовал и по скольким сделкам оценивалась каждая. Оба известны прежде, чем ты что-либо запустишь.
Запиши t-статистику конфигурации как обычно: её средняя сделка, делённая на стандартную ошибку этого среднего. При допущении нулевого преимущества t каждой конфигурации есть выборка из стандартного нормального распределения, а перебор по N конфигурациям оставляет наибольшую из N таких выборок. Ожидаемое значение этой наибольшей выборки имеет замкнутую форму с точностью лучше одного процента — результат, который Лопес де Прадо изложил в 2014 году вместе с Бейли, Борвейном и Чжу:
E[max of N] ≈ (1 − γ) Φ−1(1 − 1/N) + γ Φ−1(1 − 1/(N e)), γ = 0.5772156649
Одна подстановка, доведённая до конца, чтобы здесь ничего не приходилось брать на веру. При 15 000 конфигураций 1, делённая на N, равна 0,0000667, а значение стандартного нормального распределения, оставляющее столько в верхнем хвосте, равно 3,82022. Далее N, умноженное на e, равно 40 774, 1, делённая на это, равна 0,0000245, а её нормальное значение равно 4,06011. Взвесив оба с весами 0,4228 и 0,5772, получаем 3,95869. Это t-статистика. Чтобы превратить её в преимущество на сделку, раздели на корень из числа сделок: корень из 156 равен 12,49, а 3,95869, делённое на 12,49, равно 0,317. Ничто ни про какой рынок в этот расчёт не входило.
Та же формула отвечает на вопрос, который у практика возникает на самом деле, и это не то, сколько наберёт лучшее ничего не стоящее правило, а какой результат оказался бы неожиданным. Требование, чтобы перебор по N ничего не стоящим конфигурациям выдавал что-то выше t лишь пять раз из ста, ставит планку на нормальном значении 0,95 в степени 1/N. Проверка на всей этой странице односторонняя, потому что правило, которое проигрывает, не является открытием, и именно поэтому одна конфигурация стоит на 1,645, а не на двустороннем 1,96. Это третий столбец ниже.
| Конфигурации | Ожидаемое лучшее t | Планка на пяти процентах | R на сделку, 156 сделок |
|---|---|---|---|
| 1 | 0,000 | 1,645 | 0,000 |
| 10 | 1,575 | 2,568 | 0,126 |
| 100 | 2,531 | 3,283 | 0,203 |
| 253 | 2,841 | 3,537 | 0,228 |
| 1 000 | 3,255 | 3,884 | 0,261 |
| 15 000 | 3,959 | 4,499 | 0,317 |
| 100 000 | 4,391 | 4,887 | 0,352 |
Прочти первый столбец против третьего, и полезной окажется форма. Переход от одной конфигурации к 253 поднимает планку с 1,645 до 3,537, и в этом почти весь урон. Переход от 253 к 100 000 — это в 395 раз больше перебора, а планку он поднимает ещё на 1,350. Штраф растёт с логарифмом счётчика, поэтому скромный перебор дорог, а громадный едва ли хуже большого. Это режет в обе стороны, и о стороне, где режет против тебя, никто не упоминает: чтобы оказаться плохо открытым, сетка из десяти тысяч не нужна. Сотня уже стоит на 3,283.
Лист, который этот модуль начал в уроке 62, получает здесь третий столбец, рядом с предложением и рядом с парой чисел, добавленной уроком 63. Планка, которую эта конфигурация обязана была взять, и счётчик, из которого планка вычислена. Строка, чьё t не превышает собственную планку, ничего не показала, а строка без счётчика вообще не может иметь планки. Почти никто из тех, против кого ты торгуешь, этот счётчик не записывает. Он стоит одного целого числа, записанного до перебора, а не припомненного после, и редко он там стоит по той причине, что он способен лишь ухудшить вид результата.
Тот же победитель, отсуженный пятью способами
Урок 63 перебрал 253 конфигурации скользящих средних по шестидесяти закрытиям и оставил ту, у которой наибольший чистый итог: 2-барное среднее против 5-барного, семь сделок, 9,84 на акцию после издержек, t равно 3,65. По таблице выше 253 конфигурации ставят планку на 3,537, значит победитель её берёт. Это выглядит как чистый зачёт, и стоит увидеть, почему это не он.
Сосчитай, сколько сделок каждая из 253 конфигураций действительно закрыла на этих закрытиях. Наименьшее значение — 1, медиана — 1, значение на трёх четвертях — 2, наибольшее — 16. Больше половины сетки ни разу не закрыло второй оборот. Значит, перебор был номинально шириной 253, и большую часть этой ширины составляли конфигурации, которые почти не торговали, чьё среднее есть среднее по одному или двум числам и чья t-статистика соответственно дика. Формула предполагает 253 сопоставимые проверки. Ей вручили 253 проверки совершенно неравного веса.
Обычная починка — это нижняя граница: конфигурация имеет право победить, только если закрыла хотя бы столько сделок. Против этого никто не возражает. Чего никто не печатает, так это самого числа. Запусти поэтому нулевую модель урока 63 заново — 59 движений от бара к бару, вытянутых с возвращением, 4 000 рядов, зерно 20260903, на каждом тот же перебор по 253 ячейкам — и запиши, как часто лучшая допустимая конфигурация достигает 3,65 победителя, при пяти нижних границах.
| Минимум сделок | Допустимые ячейки | Лучшее t на шестидесяти закрытиях | Бесструктурные переборы, достигающие 3,65 |
|---|---|---|---|
| 2 | 115 | 6,24 | 0,5048 |
| 3 | 50 | 6,24 | 0,2210 |
| 5 | 20 | 3,79 | 0,0385 |
| 7 | 11 | 3,65 | 0,0068 |
| 10 | 4 | 1,03 | 0,0031 |
При нижней границе в семь сделок, ровно столько, сколько закрыл победитель, 3,65 достигают 0,68 процента бесструктурных переборов: примерно один из 147, и результат, который опубликовал бы кто угодно. При нижней границе в две достигают 50,5 процента. Победитель не изменился, закрытия не изменились, 253 конфигурации не изменились, а та же t-статистика оказывается находкой один к 147 или подбрасыванием монеты в зависимости от целого числа, которого нет нигде ни в одном отчёте по backtest.
У поправки на то, что ты искал, есть собственный регулятор.
Из этой таблицы выпадают ещё две вещи, и обе хуже заголовка. Нижняя граница не просто отсеивает победителя, она меняет, какая конфигурация побеждает: при границах в две и в три лучшее t в сетке равно 6,24 и получено парой 3 и 11 на четырёх сделках, а победитель 2 и 5 вовсе не лучшая ячейка. А при нижней границе в десять сделок лучшее t где бы то ни было среди 253 равно 1,03. Вся до крошки видимость преимущества на этом ряду живёт в конфигурациях, которые торгуют меньше десяти раз, то есть ровно в том режиме, где у t-статистики меньше всего прав на доверие.
Значит, замкнутая форма — это карманная оценка, а не приговор. Она дала 3,537 для этой сетки; моделирование даёт пятипроцентную точку 3,397 при нижней границе в пять, что близко, и 9,57 при границе в три, что совсем не близко. Пользуйся формулой, чтобы примерно знать, против чего ты выходишь, прежде чем начать, и моделируй при той границе, которой ты действительно пользовался, прежде чем чему-либо верить.
Сделай это сегодня вечером: запиши свой счётчик конфигураций и свой минимум сделок, прежде чем смотреть на результат, и вычисли планку из первого из них.
Что это не решает
Что конфигурации независимы. Они решительно не независимы: пересечение 2 и 5 и пересечение 2 и 6 торгуют почти одни и те же бары, поэтому 253 выборки сильно перекрываются, а настоящая планка для независимых проверок была бы ниже 3,537. На коррелированной сетке формула, стало быть, поправляет с избытком, и это направление служит осторожности, а не читателю. Она остаётся границей, которую стоит знать, но страница, приводящая её как ответ, приводит верхний предел вместо измерения.
Что шестьдесят закрытий это выдержат. Пятьдесят девять движений, победитель с семью сделками и границы, опустошающие сетку на десяти: каждое число во второй таблице вычислено на ряду, достаточно коротком, чтобы границы и длина выборки сцепились. На двух тысячах баров граница в десять оставила бы стоять большую часть сетки, а переворот между одним из 147 и подбрасыванием монеты произошёл бы, если бы произошёл, при других границах. Механизм от длины не зависит. Конкретные числа зависят от неё целиком.
Что t-статистика — правильная величина. Она предполагает, что сделки одной конфигурации суть независимые выборки равной дисперсии, а идущие подряд сделки одного правила на одном ряду не являются ни тем, ни другим: они перекрываются по режиму, они разделяют колебания одних и тех же недель, а правило, держащее дольше, берёт их крупнее и реже. Именно поэтому число сделок так сильно гуляет по сетке, так что изъян, который латает нижняя граница, и допущение, на котором стоит величина, суть один и тот же изъян, увиденный дважды.
Что пересобранная нулевая модель — правильная. Вытягивание движений с возвращением уничтожает кластеризацию волатильности вместе со всем прочим, а именно кластеризация решает, сколько сделок закроет конфигурация на пересечении. Нулевая модель поэтому порождает числа сделок, которых настоящий ряд не дал бы, и счёт допустимых ячеек во второй таблице по этой причине несколько смещён. Блочный бутстрэп сохранил бы кластеризацию и является честным следующим шагом; эта страница его не запускает, по той же причине, что и урок 63.
Что выбор нижней границы невинен. Он не невинен, и эта страница только что проделала приём, о котором предупреждает: пять границ были посчитаны и все пять напечатаны, что честно, но тот, кто считает пять и сообщает ту, при которой его правило берёт планку, поднял перебор на уровень выше и теперь перебирает границы. Счётчик, попадающий на лист, обязан включать каждое измерение, которое ты менял, а нижняя граница становится одним из них в тот миг, когда ты пробуешь больше одной.
И уступка, которая стоит дороже всего. Урок 63 закончился неспособностью сосчитать конфигурации, которые никогда не были записаны, и эта страница этого не исправляет; она делает это острее и неудобнее. Планка есть функция счётчика, счётчик известен лишь для запрограммированной сетки, а график, на который ты смотрел, параметр, который ты подвинул и вернул, инструмент, который ты бросил как уродливый, — всё это конфигурации, поднимающие планку и не оставляющие следа. Формула превращает несчётную задачу в счётную только для той части перебора, которая была достаточно честной, чтобы её набрали. Урок 65 — это место, где счётчик силой сводят к единице, а цену платят временем: при одной конфигурации планка падает с 4,499 до 1,645, и поэтому backtest на 15 000 ячеек требует в 7,48 раза больше сделок, чем живая запись, чтобы поддержать то же утверждение.
Задачи
- Сосчитай свою сетку. Возьми последнюю стратегию, которую ты оптимизировал, и сосчитай конфигурации, которые ты запрограммировал: каждое значение каждого параметра, перемноженное, включая те, что ты прогнал и отбросил. Подставь этот счётчик в формулу планки или прочти его в первой таблице. Десять минут, и в руках у тебя останется одно число — то t, которое твой победитель обязан был побить, и это почти наверняка не 1,65.
- Найди, где твой приговор переворачивается. Возьми тот же перебор и прогони его заново при нижних границах в 2, 5 и 10 сделок, записывая при каждой побеждающую конфигурацию и её t. Полчаса, и в руках у тебя останется одно число — та граница, при которой твой победитель перестаёт побеждать, и она говорит, какую долю твоего результата несли конфигурации, почти не торговавшие.
- Смоделируй планку, перед которой ты стоишь на самом деле. Пересобери с возвращением изменения от бара к бару своего инструмента, прогони весь свой перебор на каждом синтетическом ряду при той границе, на которой ты остановился, и сделай так тысячу раз от зерна, которое запишешь. Сосчитай, как часто лучшая допустимая конфигурация достигает t твоего настоящего победителя. Вечер, и в руках у тебя останется одно число — эта доля, и она единственная версия планки, которая знает, что общего у твоих конфигураций.
Источники. David H. Bailey, Jonathan M. Borwein, Marcos López de Prado и Qiji Jim Zhu, «Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance» (Notices of the American Mathematical Society, 2014) — за формулу ожидаемого максимума, в которую эта страница подставляет, и за минимальную длину backtest, из неё вытекающую. David H. Bailey и Marcos López de Prado, «The Deflated Sharpe Ratio: Correcting for Selection Bias, Backtest Overfitting, and Non-Normality» (The Journal of Portfolio Management, 2014) — за ту же поправку, выраженную как скидка на опубликованное число, а не как планка, которую нужно взять. Campbell R. Harvey и Yan Liu, «Backtesting» (The Journal of Portfolio Management, 2015) — за довод, что число попыток есть первое, о чём читателю любого backtest следует спросить, и это тот столбец на листе, который добавляет этот урок. Halbert White, «A Reality Check for Data Snooping» (Econometrica, 2000) — за процедуру пересборки, на которой построена вторая таблица, перенятую из урока 63.
Backtesting как доказательство
Перебор по 253 ячейкам, победителя которого этот урок пересуживает против его же планки.
Читать урок →Сколько ждать, чтобы узнать
Что t-статистика на семи сделках способна вынести и чего не способна.
Читать урок →Что должно было бы произойти
Предложение, в виде которого правило должно быть записано, прежде чем применима любая поправка.
Читать урок →Только в образовательных целях. Торговля сопряжена со значительным риском убытков. Это не финансовая консультация. Прошлые результаты не гарантируют будущих.
💬 Обсуждение (0 комментариев)
Загрузка комментариев…
Готовы торговать с Signal Pilot?
Примените полученные знания с профессиональными индикаторами и инструментами анализа рынка в реальном времени.
Вернуться в Signal Pilot →