От идеи до правил: что нужно стратегии
У тебя есть идея: покупай, когда RSI сильно падает. Это звучит как готовое правило, но это только начало. Торговой стратегии помимо условия входа нужны ещё правила выхода и правила управления сделкой, и именно их у чистой идеи вроде этой пока нет вообще. Если ты всё равно её построишь, результат в тесте часто поведёт себя иначе, чем ты ожидал, просто потому что большая часть нужного набора правил ещё вообще не была определена.
Эта статья показывает тебе путь от торговой идеи к полному набору правил: из чего он состоит, какой документированный процесс для этого есть и почему более масштабный поиск параметров сам по себе не даёт лучшую стратегию. В конце ты будешь знать, какие вопросы стоит задать своей собственной идее, прежде чем отдавать её на сборку.
Торговая идея и набор правил: почему одного правила RSI недостаточно
Торговая стратегия по своей сути это набор правил «если, то»: если определённые условия выполняются, программное обеспечение выполняет определённые действия. Это верно почти для любого стиля стратегии, например для следования за трендом, возврата к среднему или чего-то совсем другого. Стили различаются прежде всего тем, как устроены правила, а не тем, что они вообще являются правилами «если, то».
Полный набор правил состоит из трёх видов элементов: entry-ордера, которые открывают позицию, exit-ордера, которые её закрывают, и команды для управления сделкой, например подтягивание трейлинг-стопа. Твоя идея с RSI даёт только первый элемент, условие входа. Без правил выхода и без правил управления сделкой она остаётся фрагментом, далеко от полного набора правил.

Задокументированный путь от чернового наброска до готовой стратегии
В документации продукта есть описанный стандартный порядок действий, чтобы превратить идею в стратегию: ты импортируешь или загружаешь тестовые данные, в Builder задаёшь такие вещи, как тип стратегии, индикаторы, типы ордеров и критерии ранжирования, запускаешь сборку и после этого оцениваешь получившиеся стратегии, перетестируешь их или оптимизируешь дальше. Это описанный путь, а не обязательство. Ты не обязан проходить его шаг за шагом именно так.
В более ранней задокументированной версии всё шло немного иначе. Там сначала настраивались тестовые данные с разделением на In Sample и Out of Sample для генетической эволюции, затем определялись тип стратегии, индикаторы и типы ордеров, и только в конце конфигурировались параметры ранжирования, чтобы отсеять стратегии с слишком малой прибылью. Это описание относится к более старой версии продукта, в более поздних версиях порядок может быть другим. Так что не считай какой-то отдельный путь по меню раз и навсегда зафиксированным. Основная мысль при этом остаётся той же: сначала определить данные и составные части, потом строить, потом проверять.

Идея становится шаблоном: путь через AlgoWizard
Задокументированный, конкретный путь, чтобы из простой идеи сделать собираемую структуру, ведёт через AlgoWizard. Ты создаёшь там новую стратегию, переключаешь её в режим шаблона и строишь условие из выбранной ценовой привязки против индикатора, например скользящей средней с заданным диапазоном параметров. Так из твоей идеи RSI получается структура, с которой программа действительно может работать.
Один момент, который тебе стоит знать: пока стратегия находится в режиме шаблона, согласно документации ты не можешь её тестировать на исторических данных. Режим служит только для построения структуры. Проверить сможешь только тогда, когда выйдешь из него.

Блоки, которые программа смешивает за тебя
Не каждый блок твоего набора правил нужно фиксировать вручную. В документации описаны так называемые Random Groups: настройки для построения стратегии, которые берутся из конфигурационного файла и позволяют программе случайно выбирать, какие блоки из группы действительно будут использованы, вместо того чтобы ты предписывал каждый отдельный блок.
Это удобно, если ты хочешь допустить несколько разумных вариантов одного правила, не задавая каждый по отдельности вручную. Как именно это повлияет на конкретную стратегию, зависит от того, как ты настроишь группы. Random Groups снимают с тебя выбор блоков. Контроль после этого остаётся за тобой: проверь, какие блоки в итоге действительно попали в построенную стратегию.
Почему больше параметров не означает автоматически больше качества
Заблуждение, с которым мы снова и снова сталкиваемся в наших тестах: больше параметров, больше степеней свободы, больше возможных комбинаций, и это ведь должно вести к лучшим стратегиям. У реальных стратегий обычно заметно больше параметров, чем в простом примере, а число возможных комбинаций параметров простирается от нескольких тысяч до миллиардов или триллионов. Протестировать каждую из них просто невыполнимо, сколько бы вычислительного времени у тебя ни было.
Многие параметры не плохи сами по себе. Но пространство поиска, которое ты открываешь билдеру, должно быть осознанным решением, а не таким, которое просто растёт вместе с доступными дополнительными блоками.

Если бэктест выглядит хорошо, но о будущем ничего не говорит
Распространённое заблуждение: будто большой поиск в любом случае охватит всё существенное. Если при поиске стратегий ты допускаешь слишком много комбинаций параметров, StrategyQuant X может вернуть стратегию, бэктест которой выглядит хорошо, но в реальной торговле она может вести себя иначе. Этот паттерн задокументирован как Data Mining Bias: если пространство поиска оказывается слишком большим по отношению к доступным данным и условиям тестирования, растёт опасность, что программа найдёт случайные закономерности в исторических данных, а не правило, которое отражает что-то повторяющееся.
Это подводит нас к самому важному пункту во всём этом процессе. Бэктест и количество проверенных комбинаций параметров описывают только то, как набор правил вёл себя на прошлых данных или насколько большим было пространство поиска. Ни то, ни другое не говорит о том, как стратегия будет вести себя на будущих, ещё не виденных рыночных данных. То, что хорошо выглядело в прошлом, остаётся наблюдением из прошлого, и не более.
Что стоит проверить в собственной идее
Три вопроса стоят того, чтобы задать их перед тем, как ты велишь построить свою следующую идею, даже если эта статья на них за тебя не отвечает:
- Какие значения по умолчанию программа на самом деле подставляет, если ты оставляешь поле exit или trade management пустым? Посмотри это внимательно в собственной сборке, а не догадывайся.
- Начиная с какого порога программа предупреждает тебя, что у стратегии слишком мало сделок или что она кажется непригодной для реальной торговли? На такие предупреждения стоит обращать внимание, а не закрывать их кликом.
- Насколько близко генерация стратегий с помощью ИИ или чата остаётся к тому, что ты действительно ввёл? Сравни результат строка за строкой со своей изначальной идеей.
Эти вопросы относятся к твоей собственной проверке. Никто их за тебя не снимет, и эта статья тоже не выдумывает для них ответов.
Построить набор правил значит знать каждое из решений, которые иначе были бы приняты за тебя молча: entry, exit, trade management и объём твоего поиска параметров. Бэктест показывает тебе, как эти решения сказались в прошлом. Он не показывает тебе, что произойдёт дальше.
Эта статья служит обучению и не является инвестиционным консультированием. Прошлые результаты, в том числе результаты бэктестов, не гарантируют будущих результатов. Торговля финансовыми инструментами связана с рисками, ты можешь потерять деньги.
Эта статья служит обучению и не является инвестиционным консультированием. Прошлые результаты ничего не гарантируют на будущее.
А как это делаешь ты? Расскажи в сообществе. Бесплатно, на твоём языке.
Зарегистрируйся бесплатно