Блог им. PetrKorolev_14a

Как мы искали edge в AntiStomper

Больше 15 лет назад я торговал ночными роботами на МТ4. Были инвесторы даже. Затем кухни начали сглаживать искусственно котировки и поднимать искусственно спреды. Но роботы сохранились у меня на флешке. Сейчас же с появлением умных ИИ, появилась возможность перенести все эти стратегии для торговли и тестированию через апи.

Один из проектов что уже получилось а что не получается никак:

Как мы искали edge в AntiStomper и почему красивые бэктесты перестали нас радовать

Последние месяцы я довольно глубоко ковырял одну идею, которую условно называл AntiStomper. Начиналось всё вполне классически: есть фьючерсы, минутные данные, breakout-входы, ATR-стопы, фильтры объёма, гэпы, трейлинги, Fibo-механика выхода. Задача — найти конфигурации, которые не просто красиво выглядят на истории, а действительно переживают смену рыночного режима.

Сначала всё выглядело очень бодро.

На серебре, газе, Brent и ВТБ находились конфигурации с совершенно неприличными историческими результатами. Например, архивные варианты показывали сотни процентов прибыли: серебро около +426%, газ около +904%, Brent около +586%, ВТБ около +570%. PF тоже выглядел вполне прилично.

Если смотреть только на equity curve, можно было сказать: ну вот же оно.

Проблема была в другом: чем больше мы развивали систему, тем больше становилось параметров. Канал, ATR period, ATR multiplier, RVOL, окно RVOL, допустимый гэп, варианты Fibo, трейлинг, момент его включения, расстояние до трейла, разные режимы после прибыли и так далее.

Получалась очень мощная машина для поиска красивых исторических комбинаций.

И в какой-то момент возник естественный вопрос:

а мы вообще edge ищем или уже просто очень качественно подгоняемся под историю?

Холодный душ: честный тест на другой эпохе

Тогда мы сделали, наверное, самый полезный эксперимент за всё исследование.

Для Brent и ВТБ выделили:

  • TRAIN: 2015–2017;

  • заранее закрытый HOLDOUT: 2018–2019;

  • REVERSE: 2020–2026, который вообще разрешалось смотреть только для тех вариантов, которые переживут holdout.

На TRAIN было проведено несколько крупных раундов поиска, а затем заморожен TOP-10.

Условия прохождения были довольно простыми и заранее определёнными: положительный PnL, положительный результат при тройных издержках, отсутствие сильной концентрации прибыли в десяти лучших сделках, положительное тело стратегии без top-10 и достаточное количество сделок.

И получилось очень показательно.

Brent: 10 из 10 победителей TRAIN умерли на HOLDOUT.

ВТБ: 10 из 10 победителей TRAIN умерли на HOLDOUT.

До периода 2020–2026 дело даже не дошло — проверять было нечего.

Вот это был момент, когда отношение к AntiStomper сильно поменялось.

Не потому, что конкретно эти два инструмента оказались плохими.

А потому, что стало очевидно: parameter-heavy стратегия умеет генерировать феноменально красивые прошлые результаты и при этом совершенно не обязана иметь устойчивый edge.

Особенно неприятно было то, что это совпало с наблюдением в live по ВТБ: на исторических графиках всё выглядело замечательно, а реальная торговля начала показывать совсем другой характер.

После этого мы практически перестали верить в идею «давайте ещё чуть-чуть докрутим параметры».

Поворот: искать не параметр, а причину

Дальше постановка задачи изменилась.

Вместо вопроса:

какой ATR multiplier и какой trailing дают лучший результат?

стали задавать вопрос:

есть ли вообще понятная экономическая причина, почему именно эта сделка должна иметь преимущество?

Так появилась идея, которую мы внутри называли positive commission / overnight underplay.

Смысл простой.

Пока Московская биржа спит, внешний рынок продолжает торговаться.

Допустим, платина на мировом рынке за это время выросла.

Утром MOEX открывается. Российский фьючерс может:

  1. полностью отыграть движение гэпом;

  2. переиграть его;

  3. недоиграть.

Если внешний рынок уже существенно ушёл вверх, а наш фьючерс открылся только частично вслед за ним, остаётся некоторое underplay — недоигранное движение.

Но мы принципиально не хотели покупать только потому, что внешний рынок вырос.

Нужно было ещё, чтобы сам торгуемый инструмент подтвердил направление собственным breakout-сигналом.

Это уже было намного интереснее старой оптимизации.

Есть внешний источник информации.

Есть локальная реакция на эту информацию.

Есть измеряемая величина недоигрыша.

Есть независимое подтверждение собственной ценой инструмента.

То есть появляется хотя бы экономически объяснимая конструкция.

Платина: первое действительно интересное попадание

Лучше всего эта идея сработала на платине.

Причём важный момент: мы не стали менять существующую стратегию платиной.

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

Underplay использовали только как sizing overlay:

  • обычный сигнал — стандартная позиция;

  • сильный aligned underplay, U >= 2.25 — двойной штатный размер.

Получилось неожиданно аккуратно.

При stress spread 1.5×:

  • DEV: baseline +56.45% → sizing +84.91%;

  • OLD OOS: +223.29% → +257.64%;

  • FRESH: +30.06% → +35.38%.

Причём усиление происходило только примерно в 10–17% сделок.

Мне эта конструкция нравится намного больше большинства результатов старого AntiStomper.

Мы не выбрасываем нормальную стратегию.

Не оптимизируем заново вход.

Не меняем выходы.

Просто говорим: вот редкая ситуация, когда у существующего сигнала дополнительно появляется понятный внешний directional prior. В ней можно дать позиции больший вес.

Палладий: тот же фактор, совершенно другое применение

На палладии получилось наоборот.

Без underplay базовый breakout сам по себе нас не устраивал.

Зато довольно простая конструкция:

  • Donchian 240;

  • только первая реальная минута;

  • максимум одна сделка в день;

  • ATR30×34;

  • без трейлинга;

  • выход в конце сессии;

начала выглядеть интересно только если разрешать вход при aligned underplay U >= 1.5.

Результаты на 1.5× spread stress:

  • DEV: 75 сделок, +54.54%, PF 2.76;

  • OLD OOS: 22 сделки, +23.32%, PF 3.75;

  • FRESH: 32 сделки, +23.53%, PF 1.89.

То есть одна и та же информация в разных инструментах оказалась полезной совершенно по-разному.

На платине — не фильтруй, а увеличивай размер.

На палладии — без фактора вообще не торгуй.

И это тоже кажется более естественным, чем попытка заставить все рынки жить по одной таблице параметров.

Попытка расширить идею на российских производителей

После этого захотелось проверить, насколько идея универсальна.

Если золото ночью выросло — может ли это давать underplay во фьючерсе Полюса?

Если Brent вырос — во фьючерсах Лукойла и Роснефти?

Если платина или палладий сдвинулись — во фьючерсе Норникеля?

Здесь задача уже сложнее.

Нельзя считать, что Gold +1% автоматически означает Polyus +1%.

Поэтому мы стали оценивать причинную beta только на прошлых данных:

ожидаемое движение производителя = beta × движение commodity

и уже относительно него считать underplay.

При этом отдельно сравнивали:

BASE → просто COMMODITY_ALIGNED → настоящий UNDERPLAY_ALIGNED.

Это было принципиально важно: если underplay не превосходит обычное совпадение направления, значит никакого нового эффекта мы не нашли — просто обнаружили commodity beta.

Мы прогнали Полюс, Лукойл, Роснефть и Норникель.

Потом даже перепроверили всё вторым полным поиском под другим углом: расширили shortlist, заново перебрали структуру и выходы, добавили мягкие способы использования фактора — veto противоположных сделок, sizing overlay вместо фильтра, разные beta и U.

И вот здесь полезного чуда не произошло.

Какие-то красивые локальные варианты появлялись.

Где-то отлично выглядел DEV.

Где-то OLD OOS.

Где-то свежий участок.

Но устойчивой картины уровня:

вот структурный producer-underplay edge, который мы теперь хотим торговать

не получилось.

У Лукойла один период выглядел замечательно, другой разваливался.

На Роснефти значительная часть эффекта могла объясняться просто направлением Brent.

На Норникеле возникала зависимость от режима и нескольких крупных сделок.

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

Поэтому producer-futures underplay мы в итоге отправили в исследовательский архив.

Не потому, что там вообще ничего нет.

А потому, что что-то статистически интересное и edge, ради которого стоит строить реального робота, — далеко не одно и то же.

Что в итоге дал AntiStomper

Самое полезное в этом проекте оказалось не то, что мы нашли очередной набор параметров.

Наоборот.

AntiStomper довольно наглядно показал, насколько опасна современная вычислительная мощность в системном трейдинге.

Когда можно перебрать сотни тысяч и миллионы комбинаций, найти потрясающую equity curve уже не так сложно.

Сложно доказать, что за ней стоит что-то кроме отбора.

Поэтому сейчас мой подход сильно поменялся.

Мне намного меньше интересен вопрос:

сколько процентов сделал лучший конфиг?

Гораздо интереснее:

  • почему вообще должен существовать этот edge;

  • работает ли он на другой эпохе;

  • переживает ли двойные и тройные издержки;

  • остаётся ли прибыль без лучших пяти или десяти сделок;

  • есть ли соседние работающие параметры;

  • не оказался ли optimum ровно на минимально допустимом количестве сделок;

  • действительно ли новый фактор добавляет что-то к более простой гипотезе.

Главный отрицательный результат AntiStomper — старые параметрически насыщенные семейства Brent и ВТБ не пережили честный cross-era holdout.

Главный положительный результат — сама идея overnight underplay оказалась небесполезной, но лучше всего проявилась там, где связь с внешним рынком почти прямая: платина и палладий.

А попытка перенести её через более сложную цепочку «commodity → российская компания → её фьючерс» дала уже слишком грязный и малозначительный эффект.

Наверное, это и есть нормальный итог исследования.

Не каждая ветка обязана закончиться торговым роботом.

Иногда хороший результат — это вовремя понять, где edge, скорее всего, нет, перестать оптимизировать шум и пойти искать следующую структурную идею.



Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
257
1 комментарий
Хорошая флешка ) 15 лет выдержала

Читайте на SMART-LAB:
💸 Совет директоров Займера рассмотрит дивиденды за II квартал
В понедельник, 24 августа, СД Займера рассмотрит вопрос о рекомендации дивидендов по итогам II квартала 2026 года. Размер рекомендованной выплаты...
Фото
Госдолг США достиг $40 трлн. Это критично?
Дарья Фёдорова Госдолг США официально превысил $40 трлн, удвоившись за последние 10 лет. Без учёта задолженности федерального правительства...
Фото
Выкуп облигаций ударил по доллару: EUR/USD поднялся до 1,17
Доллар в среду и четверг попал под мощную волну продаж. Индекс DXY стабилизировался около 98,50 после резкого падения с отметки 99. EUR/USD...
Фото
Длинные ОФЗ: сколько можно заработать, если ключевая ставка ЦБ РФ продолжит снижаться?
ока с начала текущего года заработать на длинных ОФЗ особо не получается – ожидания усиления инфляционных и прочих рисков привело к росту...

теги блога Петр Королев

....все тэги



UPDONW
Новый дизайн