Бэктестируйте до торговли на реале

·

Бэктестируйте до торговли на реале

Зачем вообще бэктест

Это упражнение оправдывает себя по трём причинам, и ни одна из них не доказательство того, что метод приносит деньги.

Ясность в том, что вы пытаетесь выяснить, удерживает тест честным, потому что большинство способов, которыми бэктест идёт не так, происходят от попытки получить от него вердикт, который он дать не может.

Проверка жизнеспособности правил

Первое, что показывает тест, полны ли ваши правила. Применение их бар за баром к отрезку графика быстро вскрывает моменты, где на странице не сказано, что делать, и эти пробелы и есть настоящий результат. Набор правил, который нельзя применить без живого суждения, не закончен, и дешевле обнаружить это никак нельзя.

Наращивание уверенности

Наблюдение за тем, как ваш сетап повторяется на протяжении периода, даёт реалистичное представление о том, как часто он срабатывает, как выглядит обычная убыточная последовательность и сколько придётся ждать между возможностями. Эта узнаваемость помогает, когда та же последовательность случается вживую, потому что приходит как нечто знакомое, а не как доказательство того, что метод сломался.

Есть ещё одна выгода, которая проявляется только потом. Тест создаёт письменную запись того, что дали ваши правила на заданном отрезке, и это даёт вам, с чем сравнить свои живые результаты. Без этого разочаровывающий живой месяц не с чем сравнить, и его склонны толковать как провал. С этим вы можете хотя бы спросить, похожа ли живая последовательность на те, что содержал тест, а это гораздо более отвечаемый вопрос.

Устранение догадок

Протестированный набор правил заменяет вопрос «работает ли это» более узким вопросом «сработало ли это, и что произошло». На второй можно ответить. На первый нет, и трейдеры, настаивающие на нём, в итоге правят правила, пока ответ не начнёт выглядеть как «да», а это и есть тот провал, что описан дальше на этой странице.

  • Сначала полнота. Пробелы в правилах главная находка.
  • Частота на втором месте. То, как часто он срабатывает, формирует всё остальное.
  • Вердикт недоступен. Ни один тест не даёт его честно.

Бэктестируйте, чтобы найти пробелы в правилах и узнать, как часто они срабатывают, а не чтобы получить вердикт.

Тестируйте честно

Нечестность в бэктесте структурна, а не преднамеренна: вы знаете, что случилось дальше, и это знание просачивается, если процесс этого не предотвращает.

Три практики устраняют большую часть такого просачивания, и ни одна из них не требует софта.

Достаточная выборка

Достаточно случаев, чтобы серия в любую сторону не могла объяснить результат. Сколько это зависит от того, как часто срабатывают ваши правила; сетап, появляющийся дважды в неделю, требует долгого периода, чтобы дать пригодное число. Если сбор выборки занимает месяцы, это информация о наборе правил, а не проблема, которую нужно решать сокращением теста.

Данные вне выборки

Разработайте правила на одном периоде, заморозьте их и примените без изменений к периоду, который вы не рассматривали во время разработки. Это шаг, отделяющий открытие от описания, и это шаг, который пропускают почти всегда, потому что результат часто разочаровывает. Набор правил, который показывает результат на периоде разработки и не показывает на нетронутом, был подогнан под историю.

Реалистичные допущения

  1. Двигайтесь бар за баром, слева направо. Закройте график справа от текущей позиции.
  2. Записывайте неоднозначные случаи как взятые. В реальном времени вы бы их взяли.
  3. Считайте сетапы, которые вы бы пропустили. Во сне, на работе, вдали от экрана.
  4. Применяйте арифметику выплаты. Число попаданий ничего не значит без неё.
  5. Записывайте каждый случай, а не только интересные.

Второй пункт стоит больше всего видимого результата, и именно его стоит сохранять сильнее всего. Историческое тестирование по умолчанию решает каждый пограничный случай в пользу метода, потому что исход уже виден. Решение заранее, что неоднозначность засчитывается как сделка, устраняет это смещение и обычно устраняет вместе с ним значительную часть приукрашивающего результата.

Бар за баром с закрытым будущим, неоднозначность засчитана как взятая, и заморозка правил перед прогоном на нетронутых данных.

Избегайте переобучения

Переобучение это то, что происходит, когда набор правил улучшают против истории, пока он не начнёт описывать эту историю, а не что-то устойчивое.

Это редко ощущается как обман. Это ощущается как доработка, и у каждой отдельной правки в момент её внесения есть правдоподобное обоснование.

Слишком много правил

Каждое добавленное условие снижает, как часто весь набор совпадает, что сокращает вашу выборку и повышает шанс, что оставшееся описывает конкретный отрезок. Набор правил, растущий после каждого разочаровывающего теста, подгоняется, и этот рост симптом, а не решение.

Переоптимизированные результаты

Странно точные значения параметров видимый признак: период оглядки ровно девятнадцать, порог на точной доле. Значения, полученные подгонкой, это значения, выбранные потому, что они сработали на выборке, и у рынка нет причин уважать их после. Круглые, непритязательные числа разумный выбор по умолчанию, и они деградируют мягче.

Та же проверка применима и к периоду, а не только к параметрам. Разделите свой тестовый отрезок пополам и посмотрите на каждую половину отдельно. Если результат почти целиком приходит из одной половины, вы нашли набор правил, подошедший конкретному рынку, а не описывающий поведение. Это не обязательно фатально, и это как раз показывает, какие условия стоит отслеживать, прежде чем доверять этому вживую.

Хрупкие системы

Полезная проверка на устойчивость ничего не стоит: слегка сдвиньте каждый параметр и прогоните заново. Если небольшое изменение обрушивает результат, набор правил был сбалансирован под конкретное расположение истории, а не описывал реальное поведение. Набор правил, который стоит сохранять, даёт примерно схожие результаты в диапазоне соседних значений.

ПризнакЧто это обычно значит
Условия добавляются после каждого слабого тестаПодгонка под выборку
Точные, необычные значения параметровПодобраны, а не обоснованы
Результат обрушивается при небольшом изменении параметраХрупкость; не описывает реальное поведение
Правила нельзя обосновать без результатовЗапоминание, а не метод

Слегка сдвиньте каждый параметр и прогоните заново. Результат, который обрушивается, был подогнан под историю, а не найден в ней.

Знайте пределы

Тест описывает то, что уже произошло в условиях, которые, возможно, больше не действуют, и никакая строгость этого не меняет.

Ограничения ниже не дефекты вашего метода. Это свойства проверки чего угодно на прошлом.

Прошлое — не будущее

Самый ясный способ это удержать: ваш результат говорит, что правила совпали с отрезком истории. Сохраняется ли поведение за этим совпадением, отдельный вопрос, заранее неотвечаемый, и именно поэтому существуют расписания пересмотра и условия остановки. Ничто в хорошем тесте не убирает нужду ни в том, ни в другом.

Смена режимов

Рынки переключаются между трендовыми и флэтовыми условиями, состав участников меняется, режимы волатильности приходят и уходят. Набор правил, протестированный на периоде, содержавшем только одно условие, был протестирован против одного условия, каким бы долгим ни был этот период. Тестирование на отрезке, видимо содержащем больше одного условия, стоит дополнительных усилий и часто заметно меняет картину.

Качество данных тоже заслуживает краткого упоминания. Графики из разных источников не всегда совпадают в точности, особенно на коротких горизонтах, а инструменты, цена которых котируется, а не торгуется на бирже, несут дополнительную неизвестность, потому что методология для них не публикуется. Ничто из этого не делает тестирование бессмысленным; это значит, что результат, зависящий от точных уровней или точной формы свечей, опирается на нечто менее надёжное, чем кажется.

Разрывы в живом исполнении

Разрыв между тестом и живой торговлей происходит из того, что тест не способен вместить: момент колебания, сетап, который вы пропустили, потому что были в другом месте, сделку, которая была не совсем тем сетапом. Всё это поведенческие вещи, ни одна из них не появляется в историческом прогоне, и вместе они обычно объясняют больше разницы, чем любая смена рынка. Поэтому прогон вперёд на демо-счёте важен не меньше, чем исторический прогон: вы можете прогнать замороженные правила вперёд на виртуальных средствах и узнать, как ведут себя те же правила, когда применяете их именно вы.

Тест говорит, что правила совпали с какой-то историей. Прогон вперёд говорит, способны ли вы их применять.

Выводы по бэктесту

Это упражнение стоит потраченного времени, когда ему задают правильный вопрос, и вводит в заблуждение, когда ему задают неправильный.

Тест до риска деньгами

Прогон ваших правил по прошлым данным, честно, до того, как задействованы какие-либо деньги, покажет, полны ли правила, как часто они срабатывают и как выглядит обычная убыточная серия. Все три вещи стоит знать заранее, и все три дешевле изучить на графике, чем на балансе.

Оставайтесь честны

Честность здесь процедурная, а не моральная: закрывайте график, засчитывайте неоднозначность как взятую, замораживайте правила перед прогоном на нетронутом периоде и записывайте каждый случай. Каждое из этих действий устраняет конкретный способ, которым результат вам льстит, и каждое стоит видимой производительности, что и есть причина, по которой они работают.

  • Замороженные правила на нетронутых данных. Единственная часть теста, несущая информацию.
  • Круглые параметры, мало условий. Подгонка видна в точности.
  • Проверка на устойчивость. Сдвиньте и прогоните заново, прежде чем чему-то доверять.
  • Прогон вперёд после этого. Поведенческий вопрос требует ответа вперёд.

Ни один тест не гарантирует прибыль

Здесь нет цифр, потому что эта редакция ничего не бэктестировала и не держит счёта. Что можно сказать структурно: исторический результат это утверждение о прошлом, а заявление о будущем только в силу допущения, и именно для этого допущения существуют расписания пересмотра и условия остановки. Относитесь к тесту как к одному из входных данных, прогоняйте вперёд то, что его переживёт, и пусть решает ваша собственная живая история.

Тест сужает поле. Решает ваша история прогона вперёд, и ничто другое честно решить не может.

О чём спрашивают по этому сетапу

Как бэктестировать без специального инструмента?

Откройте график, прокрутите назад к начальной точке, закройте всё справа от неё и двигайтесь вперёд по одной свече за раз, применяя записанные правила. Записывайте каждый случай, включая неоднозначные. Это медленно и честно, и именно медленность не даёт вам неосознанно использовать информацию, которую рынок ещё не выдал.

Что такое тестирование вне выборки?

Вы разрабатываете правила на одном периоде, затем замораживаете их и применяете без изменений к другому периоду, который никогда не рассматривали при разработке. Это важно, потому что любой набор правил можно бесконечно улучшать против истории, на которой он был сформирован, поэтому нетронутый период единственная часть упражнения, несущая информацию. Это также шаг, который пропускают чаще всего, потому что результат часто разочаровывает.

Сколько данных нужно для содержательного теста?

Достаточно случаев, чтобы серия в любую сторону не могла объяснить результат, а это полностью зависит от того, как часто срабатывают ваши правила. Сетап, появляющийся дважды в неделю, требует долгого периода, чтобы дать пригодное число. Если сбор выборки занимает месяцы, считайте это информацией о наборе правил, а не причиной сократить тест.

Почему протестированные стратегии не работают вживую?

Обычно по поведенческим причинам, а не рыночным. Исторический прогон не содержит ни колебаний, ни сетапов, которые вы пропустили вдали от экрана, ни сделок, которые были почти вашим сетапом. Он также не может включать смену условий после периода теста. Прогон замороженных правил вперёд на демо-счёте это то, что вскрывает поведенческую половину.