Иван Недомолков

Читают

User-icon
24

Записи

7

Я мерил стратегию окном в 28 лет, которое сам не выдержу. Разбираю дырку в методике

Я мерил стратегию окном в 28 лет, которое сам не выдержу. Разбираю дырку в методике

Под постом про то, как моя стратегия проиграла индексу вчетверо, Дмитрий Овчинников написал коротко: если вы не собираетесь держать систему 28 лет, зачем искать такую систему, которая живёт 28 лет.

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

Сразу говорю: цифрового ответа у меня нет. Есть разбор того, где я свернул не туда.

Чем я гордился

Прогон на 1996-2024 был моей главной опорой во всей серии. Двадцать восемь лет и четыре разные эпохи, с 2008-м внутри. Результат стратегии там 2,9% годовых, и я показывал эту цифру именно потому, что она некрасивая: смотрите, я не прячусь за удобную десятилетку, вот вам вся история целиком.

Мне казалось, это и есть строгость. Из 231 стратегии у меня выжила одна как раз потому, что я гонял всех на полной истории и не давал скидок.

Что этот прогон на самом деле измеряет



( Читать дальше )

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

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

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

В самом первом посте я обмолвился одной строчкой: платформа поймала на приукрашивании собственную лучшую стратегию, Sharpe сдулся с 0.77 до 0.49. Строчку заметили, подробностей я не дал. Даю сейчас.

Как выглядела радость

Стратегия HMR (её устройство разбирал во второй части) к тому моменту прошла три итерации. Первая версия считала ATR по ценам закрытия и получала слишком плотные стопы, Sharpe болтался в районе 0.45-0.57. Потом я подключил реальные внутридневные максимумы и минимумы, добавил трейлинг и портфельный стоп по просадке.

Прогон на 2015-2024 дал Sharpe 0.77.

Для того, что я строил, это было отлично. Не грааль, но уровень, на котором система уже имеет смысл. Я сидел и смотрел на эквити минут двадцать.



( Читать дальше )

Моя стратегия проиграла индексу вчетверо за 28 лет. Разбираю, за что заплатил

Моя стратегия проиграла индексу вчетверо за 28 лет. Разбираю, за что заплатил

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

Цифра, которую показывать не хочется

Стратегия HMR на всей истории 1996-2024 дала 2,9% годовых. Двадцать восемь лет работы фильтров, режимов и защиты — и 2,9%.

Сразу оговорюсь про сравнение, иначе меня справедливо поймают. Свой результат я считал по бэктесту с комиссиями и проскальзыванием, а для индекса беру справочную цифру: за этот период S&P 500 дал порядка 8% годовых без дивидендов и около 10% с ними. В деньгах на горизонте 28 лет:

Куда вложили 1 млн в 1996 Что стало к 2024
HMR, 2,9% годовых 2,2 млн
S&P 500 без дивидендов, ~8% 8,6 млн
S&P 500 с дивидендами, ~10% 13,7 млн

Считайте как хотите: разница от четырёх до шести раз. Не в процентах — в разах. Я честно прогнал свою систему по 28 годам истории и получил результат кратно хуже, чем если бы просто купил индекс и забыл пароль от терминала.



( Читать дальше )

Как отличить бычий рынок от паники по двум цифрам (и почему без этого бэктест врёт)

Как отличить бычий рынок от паники по двум цифрам (и почему без этого бэктест врёт)

В прошлый раз рассказывал про стратегию HMR, которая выжила там, где легли 230 других. Её главная идея — не угадывать будущее, а каждый день определять, в каком режиме рынок сейчас, и подстраивать поведение. В комментах спросили: а как этот режим вообще определяется, без гадания на кофейной гуще? Рассказываю, потому что сама механика простая и применимая руками, без всякой стратегии.

Барометр из двух цифр

Режим рынка я определяю по двум вещам, обе доступны любому:

  1. Где S&P 500 относительно своих скользящих средних. Смотрю дневную EMA200 и недельную EMA40. Горизонт у них один и тот же, 200 торговых дней это те же 40 недель; недельная просто спокойнее, она считается по закрытиям недель и не дёргается на внутринедельных шпильках. Выше обеих — рынок здоров. Ниже — проблемы.
  2. VIX — индекс ожидаемой волатильности, он же индикатор страха. Тихо (VIX < 25), тревожно (25-40) или паника (40+).

Всё. Никаких секретных данных, никаких платных терминалов. Две цифры, которые видно в любом терминале и на куче бесплатных сайтов.



( Читать дальше )

Из 231 стратегии выжила одна. Показываю, как она устроена

Из 231 стратегии выжила одна. Показываю, как она устроена

В прошлый раз я рассказывал, как прогнал 231 факторную стратегию через злой бэктест и ни одна не прошла проверку. Пост зашёл, но в комментах закономерно спросили: «ну и что, всё выкинул? совсем ничего не работает?».

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

Идея: не угадывать, а реагировать

Большинство стратегий отвечают на три вопроса одинаково в любой ситуации: сколько денег держать в рынке, какие акции брать, когда выходить. «Всегда покупаем топ-10% по моментуму, держим месяц, повторяем». Красиво в статье, грустно на счёте.

HMR (я назвал её Hybrid Momentum-Reversion) исходит из другого: правильный ответ зависит от того, что сейчас творится на рынке в целом. В тихий растущий рынок — одни правила, в кризисную панику — совсем другие. Она ничего не предсказывает. Она каждый день смотрит на барометр и подстраивает поведение под то, что уже видно.



( Читать дальше )

Я скачал 30 лет истории рынка за вечер. Потом полгода чинил данные, на которых стоит моя алго-платформа

Я скачал 30 лет истории рынка за вечер. Потом полгода чинил данные, на которых стоит моя алго-платформа

В прошлый раз я рассказывал, как моя платформа забраковала все 231 стратегии, которые я в неё загнал. Там был абзац про данные, который я сам назвал самой скучной частью проекта и проскочил в пять строк.

Соврал. Это не скучная часть. Это и есть проект.

Скачать тридцать лет дневных котировок по американским акциям — вопрос одного вечера и трёх строк на Python. Бесплатно, без регистрации. Дальше начинается интересное: эти данные врут, и врут они ровно в ту сторону, в которую вам приятно.

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

Ловушка первая: цены, которых никогда не было

Вы качаете Adj Close и радуетесь: цены уже скорректированы на сплиты и дивиденды, считать доходность удобно. Проблема в том, что скорректированная история переписывается задним числом. Прошла выплата дивиденда — и все цены до неё сдвинулись. Был сплит — сдвинулись ещё раз.

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



( Читать дальше )

Я построил платформу, которая забраковала все 231 мои торговые стратегии. Это лучший результат проекта

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

Прогнал через неё 231 стратегию. Среди них были красавицы с Sharpe 1.49 на истории — такие в телеграм-каналах продают за деньги.

Строгую проверку не прошла ни одна.

Сначала я расстроился. Потом понял, что именно ради этого всё и строил. Сейчас расскажу, как выглядит проверка, после которой от 231 стратегии не остаётся ничего, покажу, кто всё-таки выжил, — и почему две мои любимые гипотезы умерли особенно красиво.

Почему ваш бэктест вам врёт

Не «может врать» — врёт. Четыре стандартные дырки, которые есть почти в каждом бэктесте «на коленке»:

1. Переподгонка. Переберите достаточно параметров — какая-нибудь комбинация нарисует красивую эквити. Случайно. Монетка, подброшенная 120 раз, тоже иногда выдаёт серию из десяти орлов. 2. Ошибка выжившего.

( Читать дальше )

теги блога Иван Недомолков

....все тэги



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