Блог им. MrFly
Опросы алготрейдеров показывают, что самые большие временные потери они терпят не при разработке концепта и не при кодировании стратегии — время в уходит на анализ стратегии, оценку ее устойчивости и поиск оптимальных параметров для реальной работы!
Эффективность любого оптимизатора можно оценить на основе 2-х показателей — точность нахождения устойчивой области и время затраченное на решение данной задачи. Качество можно оценить только в сравнении с полным перебором результатов, которым до сих пор пользуются множество алго. Их можно сравнить с пешими туристами, но есть и те, кого можно сравнить с пассажирам подземки, имеющих путеводитель, оказываются только в тех местах, где наиболее интересные достопримечательности и без пробок — это и есть пользователи современных алгоритмов оптимизации.
При этом стоит оговориться, что современные алгоритмы, хоть и показали свою эффективность не гарантируют идеального результата.
В связи с тем, что инновационные алгоритмы становятся все более популярными, будет полезно освоить инструменты, которые помогут разобраться какой же из алгоритмов оптимизации с наибольшей вероятностью приведет нас к устойчивым параметрам!
Наглядным способом работы с результатами торгового алгоритма является трехмерное их представление. В Wealth-Lab «из коробки» в таком виде можно работать только со значениями полного перебора (который в следствии того, что оптимизирует очень долго, мало кто пользуется) и достаточно короткое время, потому что график пропадает после проведения очередной оптимизации.
Как же тогда можно адекватно оценить как оптимизатором пользоваться результативнее?
Трейдерам, которые знакомы с моими последними постами известно, что я предпочитаю структурировать результаты аналитической работы в Wealth, затем упаковывая их для удобства в Excel, в виде стандартизированных таблиц. Однако тема анализа устойчивых областей не была еще затронута. Такой анализ известного нам спектра результатов с визуализацией оных в виде 3-д графиков, а также в виде HeatMap (которые дополняют друг друга) предоставляет нам широкие возможности и несомненно является удобным инструментом и конкурентным преимуществом.
Данная возможность была разработана для практического применения (о которой чуть позже), но с помощью нее можно сравнить между собой алгоритмы оптимизации
В свете того, что во многих тестерах вышел оптимизатор с алгоритмом роя частиц, который подает надежды и возможно становится конкурентом генетического оптимизатора. На взгляд автора, данная тема является архиважной! На кону — часы нашей с вами жизни и незаработанной прибыли. И только нам решать, проводить нам свое время, портя глаза о монитор, или поехать отдыхать на сэкономленное время и на деньги, от разницы в прибыли стратегии с устойчивыми параметрами.
Как уже было отмечено, саму матрицу эффективности полностью создадим в Wealth, но трехмерную плоскость мы будем строить в Excel — это просто, бесплатно и доступно каждому!
Для того, чтобы выявить интересующие нас области на плоскости, мы можем выделять значимые результаты по нужным нам метрикам (показателям «граальности»/устойчивости/), например нас интересует Sharp Ratio не меньше 2-х.
Таким образом у, нас одновременно есть возможность работать и с форматом HeatMap и с 3-хмерным графическим отображением матрицы стабильности. Данный формат оптимален для сравнения между собой разных стратегий, особенно для «показателя граальности», в котором мы точно знаем, что нас интересует процент граальности больше 70. Для прочих метрик, в которых мы точно не знаем какие будут значения подойдет следующий формат условного форматирования HeatMap :33% лучших значений — зеленый цвет, промежуточные 33 % — белый цвет и 33% худших результатов — красный цвет.
Матрицы стабильности®, выводятся по 3-м метрикам, если вы не новичок, то наверняка у вас есть 3-4 любимых показатели.
Меня же интересует Recavery и еще некоторые показатели, которые помогают мне определить кривизну эквити, скорость выхода из просадок и общую эффективность стратегии.
Главное назначение матриц стабильности в том, чтобы:
В купе с работой по нескольким DataRange(периодам данных) мы можем более грамотно определять параметры для нашего портфеля и рассчитывать на более адекватные не переподогнанные, а наиболее стабильные результаты.
Естественно им можно доверять только после того, как мы убедились, что нет подгонки — это можно определить с помощью форвардного тестирование.
Однако и само форвардное тестирование можно считать достоверным, (на взгляд автора) если оптимизированные значения на проверочной выборке (OutOfSample) брались не лучшие, а наиболее устойчивые.
Поэтому сам процесс оптимизации становится многоэтапным процессом, которые конечно же можно и нужно автоматизировать. Автор склоняется к следующим этапам:
— определение устойчивых областей является первостепенной задачей и оценка насколько эти области обширны.
— Затем уже форварное тестирование, для оценки вероятности подгонки
— И как 3-ий этап достройка интересных областей до полного перебора, либо же более глубокое тестирование этих областей.(Уменьшаем шаг тестирования)
Наша цель — использовать наиболее эффективный вид оптимизации, затем уже проводя дополнительные прогоны оптимизации интересующих областей до состояния результатов полного перебора.
А для этого и нужен сравнительный их между собой!
Примечание: Сначала проведем генетическую оптимизацию на ее стандартных параметрах для того, чтобы определить количество прогонов. Количество прогонов нам нужно для того, чтобы подогнать параметры Swarm оптимизатора (оптимизатора роя частиц) таким образом, чтобы их можно было сравнивать между собой.
Стандартные параметры:
Примечание: Как мы можем наблюдать стандартные параметры дают намного больший разброс значений, что не оставляет возможности положительной области от нас скрыться. Однако 2-ой набор рекомендованных разработчиками параметров выделил наиболее четким образом положительную область, что удобно для будущего более точного тестирования.
Автором рекомендованы 2 типа настроек, которые мы и будем тестировать, но самих настроек в новом оптимизаторе достаточно много и разные вариации алгоритма роя частиц сейчас активно добавляются в оптимизатор.
Swarm GPAC PSO:
Примечание: Параметры мы указали таким образом, чтобы количество прогонов было максимально близко к стандартным параметрам генетики.
Примечание: Достаточно очевидно, что данный алгоритм достаточно четко очертил устойчивую положительную область параметров стартегии
Swarm GPAC PSO, Plus Genetic Crossover:
Clerc Tribes — Оптимизация № 1
Clerc Tribes — Оптимизация № 2
Изложенных выше результатов достаточно для того, чтобы принять свое собственное мнение о каждом виде оптимизации.
Стало очевидно, что есть алгоритмы которые хороши отдельно для какой-то своей цели.
Например, если Вы боитесь, что упустите положительную область — используйте стандартную генетику, которая имеет большой разброс значений. Если же вам нужна наиболее четкая область, по результатам тестирования видно, что ее лучше всего получать с помощью Swarm GPAC PSO.
Если же нужен экспресс тест за 15 минут, то подойдет — алгоритм Clerc Tribes Swarm оптимизатора, однако на точность, как ми видели из 3D графиков, жаловаться не стоит — всего 400-500 прогонов из 36481.
Таким образом, можно сказать, что оптимизатор роя частиц однозначно не хуже генетики и его стоит взять на вооружение, тем более, что он сейчас проходит стадию активного развития и совершенствования.
Добавляйтесь в Skype: horoshij_den , я вышлю более подробнуюж информацию об оптимизаторе «Роя частиц» тем, кто добавится!)
Стратегию выкладывал больше 2-х лет назад в ситатье «Грааль и трейдеры, которые его ищут»:
Классический дончиан + SmaTrailing
_Это первая статья из цикла, по тематике комплексного анализа торговых алгоритмов, которое важно в первую очередь для инвесторов, работающих с ДУ. Но будет интересно и для частных трейдеров!)
Пишем стратегию=> хотим понять она устойчивая или нет => проводим тест по всем параметрам(или с помощью специальных алгоритмов) => если есть устойчивый пласт и он на разных временных отрезках стабилен — значит стратегия не склонна к подгонке => можно торговать, предварительно взяв параметры из самого центра устойчивой положительной области. Поскольку положительные области на разных показателях(чистая прибыль/коэффициент восстановления и т.д.) устойчивые положительные области могут разниться, — смотрим области их совмещения)
Успехов!
По статье:
1) Трейдинг это в первую очередь управление рисками. Поэтому ты совершенно прав, когда ищешь стабильные кластеры. Стратегии с такими параметрами более устойчивы к изменениям на рынке.
2) Сколько у тебя параметров оптимизации? Если параметров больше 2-х, то 3D графики строить бесполезно, так как на оси Z сразу оказывается несколько результатов. Нужно либо усреднять, либо брать минимум или максимум. По опыту скажу, что картина в этом случае меняется кардинально. Да, и читать 3D графики тяжело. Тепловая карта на много удобнее. Но проблема с отрисовкой с количеством параметров оптимизации более 2-х никуда не пропадает.
3) Нельзя сравнивать генетику, метод роя, метод отжига и т.д. Потому что это все одно и тоже — нелинейная стохастическая оптимизация. Природа алгоритмов одна. Если у тебя будет сложное многоэкстремальное пространство, то они все себя плохо покажут. Если один, два экстремума любой из них сработает отлично.
4) Ты прав, Walk Forward наше все. Нужно обязательно проверять на других данных. Как правило на этом этапе 95% стратегий разваливается и не подтверждают свои показатели.
5) На каких данных и на каком временном диапазоне ты тестируешь, что перебор 36 000 стратегий займет 3 дня? Тики, свечки?
6) Какой объем данных ты фактически исследуешь при оптимизации по сравнению с полным перебором? 5%, 30%, 80%?
7) Велс и Эксель… Сколько лет ты уже этим занимаешься? Уже бы давно написал свой оптимизатор и тестировал полным перебором за день 360к стратегий, а не 36к. Может тогда тебе вообще оптимизатор не понадобится)
2. Больше 3-х параметров в любой стратегии — это не очень хорошо. Если их 3, 3-ий параметр может быть к примеру сессия(утренняя/вечерка) в которую торгует стратегия — их всего 3, тогда можно просто 3 тепловые карты выгрузить, на каждую сессию свой, где 3-ий параметр будет константой.
Также, если параметров 3 и больше, можно выявить те у которых минимальное влиянием на результат, и пренебречь ими в силу его слабого влияния на результат. По умолчанию берется первые 2 параметра.
5. Тестировались все прогоны за 3 временных периода 3 года, 2 года и год. 5-минутки
6. В статье указано количество прогонов по каждому виду тестирования
Давай устроим соревнование разработчиков оптимизаторов!)
Сбрось код любой своей стратегии, я его адаптирую под наше API. Ты можешь его проверить, если захочешь. Выберем одну целевую функцию — Шарпа, временной диапазон тестирования — 2 года, без Walk Forward, объем фактического исследования — 30%, один тип данных — минутки (или тики). Ты возьмешь свой лучший алгоритм, я свой чудо-алгоритм и сравним полученные кластеры и экстремумы по тепловым картам! И опубликуем результаты на Смартлабе.
P.S. Можем еще проверить на сколько порядков мой оптимизатор быстрее Велса =)
На такое я готов пойти, но только если будет качественный проторговщик на PlazaII с поддержкой, переподключением обрывов интернета и т.д., чтобы работа не была проведена зря.
Но я предлагаю не Проторговщики тестировать, а Оптимизаторы. Мне тоже очень интересно, что получится!) Просто закинь на наш Форум любую свою стратегию с маленьким описанием и я сам адаптирую код. К тому же Велс работает на С#, так что проблем быть не должно!
Хорошая работа! Молодец.
С интересом всё посмотрел.
Не хватает комментария к видео.
Музыка — хорошо, но было бы лучше услышать твой голос, пояснения к действиям, происходящим на экране.