Блог им. Buybuy

Возможно, самая большая ошибка в алготрейдинге

Доброй ночи, коллеги!

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

Если подробнее — это 3-х параметрическое семейство индикаторов, один из которых способен показать отличный результат на следующем этапе рынка.
Ну т.е. если (условно) на следующих 10000 барах (минутных) абсолютный рекорд доходности для подогнанного (curve fitting) индикатора составит 100, то какой-то индикатор из моего семейства покажет 90+. И так на каждом новом периоде.

Итак — золотое руно наше. Осталось пойти и взять его. И тут возникают первые проблемы.

1. Массив потенциально субоптимальных индикаторов — это 5000+ шт. Технически их можно объединить в портфель (но это уже сложно), но средний результат по портфелю плохой.
2. Задача определения неизвестного параметра не только нелинейная, но даже негладкая. Стандартные методы не работают.

Тут мы приходим к главной (IMHO) проблеме алготрейдинга.
Это продолжение индикатора, успешно работающего на прошлом периоде, на следующий период.

Ни из чего не следует, что индикатор, успешно работавший в прошлом, будет успешно работать в будущем. Есть некие кастомные методики (WFT, который я называю WTF), которые декларируют, что индикатор, успешно проработавший 3 периода, «наверное», проработает и 4-й период.

Все это шляпа, конечно.

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

Я начал с того, что оптимизировал свое семейство индикаторов по всем параметрам в наборе окон, сходящемся к текущему бару (минус 10000 баров, минус 20000 баров и т.д.), потом выбирал на всех этих интервалах и наборах параметров лучшую эквити и смотрел на ее продолжение.

Тут следует сразу ввести:
1. Критерии оценки эквити (max(E), max(E/DD), min(DD), etc.)
2. Критерии сравнения эквити в окнах разной длины (варианты линеаризации)

Полный программный комплекс был написан 09.2023, но его работа занимала 288 дней на 1 актив, что очень плохо. В реале в моем рабочем компе 16 ядер, так что это было около 2-х недель на 1 актив, но это тоже очень плохо. Речь, конечно, идет только о расчете лимитных стратегий, маркетные считаются на 3 порядка быстрее.

В последующие 6 мес. я смог поднять быстродействие софта на 2 порядка. Метод — перевод рабочего кода на Matlab в полностью векторизованынй код. Ну т.е. никаких циклов — только операции с массивами. И никаких условных операторов — только условные выборки из массивов.

На мое удивление — я смог породить такой код. Он даже оказался компактнее (раза в 3) традиционного кода и (местами) даже понятнее, кроме отдельных условных операторов.

Полученный в начале апреля 2024 результат этого полугодового исследования поверг меня в полный ступор:
1. Хорошая в прошлом работа индикатора плохо продолжается в будущее
Возможно, самая большая ошибка в алготрейдинге
2. Плохая в прошлом работа индикатора хорошо продолжается в будущее

Возможно, самая большая ошибка в алготрейдинге
Ну т.е. переводя с русского на русский:
1. Сама идея о том, что продолжать в будущее только успешные в прошлом индикаторы изначально содержит в себе ошибку. Она базируется на понятийном заключении, что хороший сегодня индикатор должен был быть и хорошим вчера, иначе мы вообще бы не назвали его хорошим.
2. В действительности слово «хороший» используется в этом заключении в разных смыслах в разных местах, что и порождает ошибку. Так, в предыдущем пункте под хорошим индикатором подразумевается т.н. «стабильный» индикатор, который показывает хороший результат на любом торговом интервале.
2.5. ОТСТУПЛЕНИЕ: Задача построения «стабильных» (стационарных) индикаторов давно решена — и грибов здесь нет...
3. Если мы допускаем, что индикатор может подстраиваться на каждом баре, то вся предыдущая конструкция разваливается. Ну т.е. оптимальный индикатор на сегодняшний день мог сколь угодно косячить в предыдущий день, главное, чтобы сегодня он принес прибыль.

Итак, коллеги:

Первый график выше показывает оптимизацию успешной стратегии, при этом массив из потенциально успешных стратегий пересчитывается каждые 10000 баров, из них выбирается кандидат, показавший лучшую эквити по критерию max(E/DD) в прошлом, и продолжается в будущее.

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

Что вы думаете по этому поводу, коллеги?

P.S. Отдельная просьба не срать политотой в этом топике. Сабж предназначен исключительно для математических и серьезных рыночных рассуждений.
    ★3
    26 комментариев
    Что вы думаете по этому поводу, коллеги?
    Вроде и подумать хочется, но как-то очень общо всё и не очень понятно.

    если (условно) на следующих 10000 барах (минутных) абсолютный рекорд доходности для подогнанного (curve fitting) индикатора составит 100, то какой-то индикатор из моего семейства покажет 90+
    Какой-то и у меня и у кого-то всегда что-то покажет. Чем ваш какой-то по этой формулировке отличается от накурвафичченого?

    Массив потенциально субоптимальных индикаторов — это 5000+ шт. Технически их можно объединить в портфель (но это уже сложно), но средний результат по портфелю плохой.
    Это не понятно ни теоретически, ни практически. И практика и теория говорят (хотя бы мне), что средний результат должен быть хорошим. Особенно, если речь идёт о множестве субоптимальных, а не абы каких индикаторах.


    Итак — золотое руно наше. Осталось пойти и взять его. И тут возникают первые проблемы.
    То наше, то не наше. Опять непонятно, что получено, как получено и что оно из себя представляет. Сферический конь в вакууме? Работающее инженерное решение? Покажите что-нибудь уже из практики. По словам же практика имеется?


    Общая мысль, которая в итоге выводится и напрашивается: успешный и стабильный трейдинг — дело нелегкое, непростое, редкое.
    avatar
    Что вы думаете по этому поводу, коллеги?
    очченно интересно....
    но на миллисекундах не работаем…

    пн
    да и трейдеров тута почти совсем не осталося... 
    avatar
    Согласен, в целом, с предыдущим оратором...  
    «Хорошая в прошлом работа индикатора плохо продолжается в будущее,
    плохая в прошлом работа индикатора хорошо продолжается в будущее» — очень напоминает «Обманутые случайностью» Талеба, где после флуктуаций все возвращается к среднему...
    Имхо, закономерность можно найти во всем, но по мне — индикаторы — путь в никуда. Ничего личного…
    avatar
    Для интрадея лучше М5 юзать. Далее, на том же М5 время точек экстремумов для анализа и построения модели, не превышает 2304 бара.
    avatar
    впринципе направление мыслей правильная… но реализация весьма спорная… метод хорош для торговли «стационарных» активов типа spy qqq и прочих индексов

    изначально торгуется не индикатор а идея… если настройки индикатора плавают, то значит идея нестабильная… либо актив недостаточно стационарен
    avatar
    Реализуйте «трейдинг в трейдинге» (рассматривая график эквити): когда эквити перестаёт расти — считаем это фазой распределения и переключаемся на другой индикатор, который только переходит из фазы накопления в фазу роста. Потом тут свои индикаторы придумаете и эквити на эквити… ))
    avatar
    Когда же вас уже всех перебанят наконец
    avatar
    — 10000 минут это примерно 7 дней, если брать в расчёты крипту или форекс;
    — т.е эти 3 параметра меняются скачкообразно, а не с каждым новым баром (курвфитинг);
    — откуда 5000+ различных исходов Ваших субоптимальных 3-х параметров, работающих на любом фрейме?
    — рискну предположить, что Ваш алгоритм 'неправильно' применяет эти 3 параметра;
    — на сколько я понял, алгоритм разбивает 10000 'будущих' минуток на биномиальную сетку и ставит новые заявки с индикаторными отступами от сетки (либо как-то в тренд/контртренд), но отступы условно не в ту сторону (надо всегда в тренд).
    ...
    Если ещё что-то вспомню, допишу.
    avatar

    bozon, минутки это изврат! :)
    Тот же форекс, средняя трендовая модель продолжается не более 576 баров на м5 (48 часов). Изредка 720 баров (2.5 суток).

    avatar
    Matrica, Вы невнимательно прочитали пост. Автор поста отметил, что его субоптимальный индикатор работает на всех фреймах, а не только на м1 или м5.
    avatar
    Зачем нужны индикаторы?
    Только для того, чтобы получить картинку «вчерашнего льва» под вполне определенным кустом буша. А вот какой и где лев будет завтра, эта фотка не покажет со 100%-й вероятностью. И это — правильно.
    Хочешь иметь правдивые картинки — заведи себе льва!
    Применительно к ценам: хочешь знать будущую цену в определенный момент времени — обломайся! Гейзенберг не зря Нобеля получил.
    avatar
    Скажу тривиальную вещь, чтобы портфель был значимо лучше своих компонент, составляющие его системы должны быть весьма разными. 
    Поскольку выводов отсюда можно много наклепать, вернусь к к этому обсуждению попозже, когда время позволит.
    avatar
     я изобрел......, которые хорошо работают всегда.

    Помню, что автор обещал перестать совсем писать на смартлабе когда наконец сделает свою систему...  видимо пока не удалось )
    В данном «труде» сложно вообще, что-то обсуждать и лишь можно принять на веру, что автор "изобрел" то, что работает всегда

    p.s.
    подобное делал некий «гений» bascomo, но исчез с радаров, так и не закончив,… автор пытается повторить, отличие заключается только в количестве индикаторов, которые перманентно оптимизируются и из которых выбирается лучший. У bascomo их было 300K, у автора 5К, может в этом и есть самая большая ошибка в алготрейдинге, пытаться упорно оптимизировать тысячи и тем более сотни тысяч некачественных систем, которые постоянно перестают работать )
    avatar
    Есть некие кастомные методики (WFT, который я называю WTF), которые декларируют, что индикатор, успешно проработавший 3 периода, «наверное», проработает и 4-й период.

    Все это шляпа, конечно.
       
     Если закономерность найдена правильно, то 4-й период будет не хуже первых 3-х успешных периодов. Если 4-й период хуже первых 3-х, то это не закономерность. Её торговать нельзя. Ищите дальше)…
    avatar
    Если ты такой умный.расчитай акцию тгк14на август месяц.мои параметры.0.045
    История, прошлое на котором все тестируют это 50% всей историй или 1%, или стремится к 0%? Мы не знаем.
    А если объединить все возможные и невозможные комбинаций графиков в один, и представить что получили график Сбера из будущего, то для тестирования потребуется кусок из 1000 лет… И всё что меньше — фигня))
    Когда за кривой графика существует физический процесс, работа, то можно брать один участок и проецируем на другой участок историй, сравнивать. Что стоит за графиком цены? Что мы все пытаемся там разгадать? Кол-во поршней, обороты, износ лопаток турбины?
    avatar
    Всё так и должно быть.
    Представьте что было бы если бы все ТС и алгоритмы продолжали работать в будущем 
    avatar

    Надо понизить критерии «хорошести» результатов.
    Тогда индикаторы и с первой картинки сойдут…

    avatar
    5 000 индикаторов, хм. Курьеров у Гоголя было 35 000.
    1. Насколько велики отличия между индикаторами. Может быть, можно построить эпсилон сеть из нескольких десятков, покрывающих эту тучу? 
    2. Смущает существенная негладкость задачи оптимизации. Если много шипов у поверхности функционала качества, скорее всего, подход неустойчив и ждать хорошего не приходится. Впрочем, если шипы мелкие, а сглаженный максимум пологий, то легкая шипастость окрестности максимума не должна мешать. 
    3. Стандартный прием регуляризации не помогает? 
    Наверное, сегодня напишу в блоге о своей проблемке с оптимизацией. Так сказать, печальный взгляд сбоку.
    avatar
    SergeyJu, Насчёт шипов Вы правильно сказали. Но надеяться, что шипы будут мелкие — не стоит. Чтоб система не давала сбоев, надо готовиться к максимальным шипам…
    avatar
    SergeyJu, Насчёт шипов есть 2 варианта — ловить падающие ножи, что крайне сложно. Или найти момент, когда нож захочет упасть, и присоединиться к его падению) 
    avatar
    1. Сама идея о том, что продолжать в будущее только успешные в прошлом индикаторы изначально содержит в себе ошибку. Она базируется на понятийном заключении, что хороший сегодня индикатор должен был быть и хорошим вчера, иначе мы вообще бы не назвали его хорошим

    А разве есть какой-либо другой критерий логически обосновывающий «ценность» индикатора? Если у кого-то система ломается при изменении фазы рынка, так это проблема в системе, а не обосновании логики проверки работоспособности, указанном выше.
    Если чей-то индикатор предполагает непрерывность (или, по крайне мере, сильную зависимость от глубины истории/окна (память)) и начинает косячить при изменении фазы рынка, так это проблема разработчика индикатора.

    Условно говоря, не подозревая об изменении физических свойств при переходе воды из жидкого состояния в лед или газ, можно долго ломать голову над загадкой, почему фигура, выстроенная нами из кубиков льда, потеряла форму
    avatar
    Сподобился, написал свой пример
    smart-lab.ru/blog/1013172.php

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

    теги блога Мальчик buybuy

    ....все тэги



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