Может ли нейросеть написать торговую стратегию: что получится за два часа и чего в этом не будет

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

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

Что нейросеть действительно делает за два часа

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

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

Чего в сгенерированном коде нет по определению

Разделения данных. Закономерность проверяется на том отрезке, где её не искали. Это называется форвард-тестом или walk-forward. Если история 2019-2026 использована и для подбора, и для проверки, результат не значит ничего: вы измеряете память, а не предсказательную силу.

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

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

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

Почему красивый бэктест не доказывает ничего

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

Отличить подгонку от закономерности помогают три стандартные проверки. Первая: результат на данных, которые не участвовали в подборе. Вторая: устойчивость к сдвигу параметров - если при изменении периода индикатора с 20 на 22 доходность падает вдвое, вы нашли не закономерность, а совпадение. Третья: работает ли принцип на других инструментах и рынках. Эффект моментума, на котором построена значительная часть нашего портфеля, известен с 1990-х и подтверждён на акциях, товарных фьючерсах и валютах. Правило, которое живёт только на одной паре и только в один год, закономерностью не является.

График 1. Оптимизация на исторических данных может показывать высокий результат, который не воспроизводится на новых данных.
График 1. Оптимизация на исторических данных может показывать высокий результат, который не воспроизводится на новых данных.

Монте-Карло: зачем гонять историю тысячу раз

Историческая кривая доходности - это один путь из множества возможных. Сделки шли в том порядке, в каком шли, но с тем же набором сделок в другой последовательности картина выглядела бы иначе: просадка могла оказаться вдвое глубже просто потому, что убытки сгруппировались бы плотнее. По одной кривой отличить «система работает» от «повезло с порядком» невозможно.

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

График 2. Одна историческая траектория - лишь один из возможных сценариев. Монте-Карло позволяет оценить распределение потенциальных исходов.
График 2. Одна историческая траектория - лишь один из возможных сценариев. Монте-Карло позволяет оценить распределение потенциальных исходов.

Что это распределение показывает. Не «максимальная просадка была 23%», а «в 95 случаях из 100 просадка не превышает такой-то величины, а в 5 случаях из 100 доходит до такой». Не «доходность 80% годовых», а диапазон, в который результат попадает с заданной вероятностью. Плюс отдельная величина - вероятность потерять неприемлемую долю капитала при выбранном размере позиции, её называют risk of ruin.

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

Наша расчётная максимально допустимая просадка 30-35% получена именно так: из фактической истории плюс моделирование сценариев, которые на рынке пока не наблюдались. Историческая просадка меньше, и запас между ней и расчётной величиной - это и есть результат стресс-моделирования, а не округление вверх.

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

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

Сколько времени это занимает на самом деле

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

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

Шесть признаков, по которым система отличается от скрипта

• Есть трек на живых деньгах, а не только на истории, и известна дата, с которой он начался.

• Известна максимальная просадка и срок восстановления после неё, а не только доходность.

• Правила риска записаны числами до сделки: доля капитала на сделку, уровень остановки.

• Есть ответ, в какой фазе рынка система работает плохо, и он дан заранее, а не после убытков.

• Параметры не менялись под последние месяцы, и это можно проверить по истории изменений.

• Результат воспроизводится независимо, по данным биржи, а не по словам автора.

Где нейросеть действительно полезна

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

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

Мы показываем свои цифры так, чтобы их можно было проверить: доходность, просадка, коэффициенты риска и движение средств считаются по истории сделок биржи, а не заявляются нами. Как это выглядит на живом счёте, разбираем в нашем Telegram-канале

Может ли нейросеть написать торговую стратегию: что получится за два часа и чего в этом не будет

Материал носит информационный характер и не является инвестиционной рекомендацией.