Блог им. MrFly

#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm

#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm


#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm

Опросы алготрейдеров показывают, что самые большие временные потери они терпят не при разработке концепта и не при кодировании стратегии — время в уходит на анализ стратегии, оценку ее устойчивости и поиск оптимальных параметров для реальной работы!

#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm

Эффективность любого оптимизатора можно оценить на основе 2-х показателей — точность нахождения устойчивой области и время затраченное на решение данной задачи. Качество можно оценить только в сравнении с полным перебором результатов, которым до сих пор пользуются множество алго. Их можно сравнить с пешими туристами, но есть и те, кого можно сравнить с пассажирам подземки, имеющих путеводитель, оказываются только в тех местах, где наиболее интересные достопримечательности и без пробок — это и есть пользователи современных алгоритмов оптимизации.

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

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

Наглядным способом работы с результатами торгового алгоритма является трехмерное их представление. В Wealth-Lab «из коробки» в таком виде можно работать только со значениями полного перебора (который в следствии того, что оптимизирует очень долго, мало кто пользуется) и достаточно короткое время, потому что график пропадает после проведения очередной оптимизации.

Как же тогда можно адекватно оценить как оптимизатором пользоваться результативнее?

#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm

Трейдерам, которые знакомы с моими последними постами известно, что я предпочитаю структурировать результаты аналитической работы в Wealth, затем упаковывая их для удобства в  Excel, в виде стандартизированных таблиц. Однако тема  анализа устойчивых областей не была еще затронута. Такой анализ известного нам спектра результатов с визуализацией оных в виде 3-д графиков, а также в виде HeatMap (которые дополняют друг друга) предоставляет нам широкие возможности и несомненно является удобным инструментом и конкурентным преимуществом.

Данная возможность была разработана для практического применения (о которой чуть позже), но с помощью нее можно сравнить между собой алгоритмы оптимизации

#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm

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

Как уже было отмечено, саму матрицу эффективности полностью создадим в Wealth, но трехмерную плоскость мы будем строить в Excel — это просто, бесплатно и доступно каждому!

Для того, чтобы выявить интересующие нас области на плоскости, мы можем выделять значимые результаты по нужным нам метрикам (показателям «граальности»/устойчивости/), например нас интересует Sharp Ratio не меньше 2-х.
#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm 
Таким образом у, нас одновременно есть возможность работать и с форматом HeatMap и с 3-хмерным графическим отображением матрицы стабильности. Данный формат оптимален для сравнения между собой разных стратегий, особенно для «показателя граальности», в котором мы точно знаем, что нас интересует процент граальности больше 70. Для прочих метрик, в которых мы точно не знаем какие будут значения подойдет следующий формат условного форматирования HeatMap :33% лучших значений — зеленый цвет, промежуточные 33 % — белый цвет и 33% худших результатов — красный цвет.

#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm
#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm 

Матрицы стабильности®, выводятся по 3-м метрикам, если вы не новичок, то наверняка у вас есть 3-4 любимых показатели.

Меня же интересует Recavery и еще некоторые показатели, которые помогают мне определить кривизну эквити, скорость выхода из просадок и общую эффективность стратегии.
#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm 

 Главное назначение матриц стабильности в том, чтобы:

  • Определить насколько положительная область является обширной (для сравнения стратегий), т.е. насколько она на всей плоскости выдает хорошие значения. 
  • Выявить стабильные положительные области и работать с устойчивыми значениями параметров, а не с максимальными — что важно и для форвардного тестирования!
Несколько метрик нужно для того, чтобы найти пересекающиеся стабильные области, удовлетворяющие все 3 показателя и в реальной работе использовать именно эти значения.
Если же тот или иной параметр не имеет воздействия на результат, то значит мы работаем ни с тем параметром!

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

Естественно им можно доверять только после того, как мы убедились, что нет подгонки — это можно определить с помощью форвардного тестирование.
Однако и само форвардное тестирование можно считать достоверным, (на взгляд автора) если оптимизированные значения на проверочной выборке (OutOfSample) брались не лучшие, а наиболее устойчивые.

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

— определение устойчивых областей является первостепенной задачей и оценка насколько эти области обширны.
— Затем уже форварное тестирование, для оценки вероятности подгонки
— И как 3-ий этап достройка интересных областей до полного перебора, либо же более глубокое тестирование этих областей.(Уменьшаем шаг тестирования)

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

А для этого и нужен сравнительный их между собой!
 

#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm

 #ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm

Примечание: Сначала проведем генетическую оптимизацию на ее стандартных параметрах для того, чтобы определить количество прогонов. Количество прогонов нам нужно для того, чтобы подогнать параметры Swarm оптимизатора (оптимизатора роя частиц) таким образом, чтобы их можно было сравнивать между собой.
#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm
#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm
Стандартные параметры:
#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm
#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm 
#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm 

 #ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm
#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm 

Примечание: Как мы можем наблюдать стандартные параметры дают намного больший разброс значений, что не оставляет возможности положительной области от нас скрыться. Однако 2-ой набор рекомендованных разработчиками параметров выделил наиболее четким образом положительную область, что удобно для будущего более точного тестирования.
#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm

Автором рекомендованы 2 типа настроек, которые мы и будем тестировать, но самих настроек в новом оптимизаторе достаточно много и разные вариации алгоритма роя частиц сейчас активно добавляются в оптимизатор.
#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm

Swarm GPAC PSO:

Примечание: Параметры мы указали таким образом, чтобы количество прогонов было максимально близко к стандартным параметрам генетики.
#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm
#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm
#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm
Примечание: Достаточно очевидно, что данный алгоритм достаточно четко очертил устойчивую положительную область параметров стартегии

 

Swarm GPAC PSO, Plus Genetic Crossover:
 

 #ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm
#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm
#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm

Алгоритм Clerc Tribes:
#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm

Clerc Tribes — Оптимизация № 1
#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm
#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm

Clerc Tribes — Оптимизация № 2
#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm
#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm

#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm
#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm
#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm
#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm
#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm
#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm

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

Стало очевидно, что есть алгоритмы которые хороши отдельно для какой-то своей цели.
Например, если Вы боитесь, что упустите положительную область — используйте стандартную генетику, которая имеет большой разброс значений. Если же вам нужна наиболее четкая область, по результатам тестирования видно, что ее лучше всего получать с помощью Swarm GPAC PSO.

Если же нужен экспресс тест за 15 минут, то подойдет — алгоритм Clerc Tribes Swarm оптимизатора, однако на точность, как ми видели из 3D графиков, жаловаться не стоит — всего 400-500 прогонов  из 36481.

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

#ГдеДеньги? #Алгоритм"Роя частиц" #2D и 3D анализ #Genetic VS Swarm
Добавляйтесь в Skype: horoshij_den  , я вышлю более подробнуюж информацию об оптимизаторе «Роя частиц» тем, кто добавится!)

Стратегию выкладывал больше 2-х лет назад в ситатье «Грааль и трейдеры, которые его ищут»:
Классический дончиан + SmaTrailing
 


 

 

 

 

 


 

 

 

 

 

★18
17 комментариев
Почему я под этим топиком не вижу комментария про то, что оптимизация верный путь к сливу?
avatar
Arsen G, Наверное потому что ты первый осилил статью до конца ;)))
_Это первая статья из цикла, по тематике комплексного анализа торговых алгоритмов, которое важно в первую очередь для инвесторов, работающих с ДУ. Но будет интересно и для частных трейдеров!)
avatar
Ничего не понял, но ХОРОШО нажал
avatar
Hash, спасибо! =) специально для тебя:
Пишем стратегию=> хотим понять она устойчивая или нет => проводим тест по всем параметрам(или с помощью специальных алгоритмов) => если есть устойчивый пласт и он на разных временных отрезках стабилен — значит стратегия не склонна к подгонке => можно торговать, предварительно взяв параметры из самого центра устойчивой положительной области. Поскольку положительные области на разных показателях(чистая прибыль/коэффициент восстановления и т.д.) устойчивые положительные области могут разниться, — смотрим области их совмещения)
Успехов!
avatar
.Агрегатор., кстати, некоторые так нейросети пишут. Переобучают раз в 24 часа. Но там хотя бы кроссвалидация позволяет отсеить переобучившиеся особи…
avatar
.Агрегатор., Спасибо за коммент, если честно, не понял его. Форвардная составляющая — важный фактор проверки на адекватность. Да, от изменения рынка никто не застрахован, но сильные изменения, как правило носят объективный характер, например связаны с какими-то фундаментальными событиями, такими как санкции, заявления Саудитов и т.д. к которым можно и нужно приспосабливаться — это специфика нашей работы.
avatar
Привет Николай!

По статье:
1) Трейдинг это в первую очередь управление рисками. Поэтому ты совершенно прав, когда ищешь стабильные кластеры. Стратегии с такими параметрами более устойчивы к изменениям на рынке.
2) Сколько у тебя параметров оптимизации? Если параметров больше 2-х, то 3D графики строить бесполезно, так как на оси Z сразу оказывается несколько результатов. Нужно либо усреднять, либо брать минимум или максимум. По опыту скажу, что картина в этом случае меняется кардинально. Да, и читать 3D графики тяжело. Тепловая карта на много удобнее. Но проблема с отрисовкой с количеством параметров оптимизации более 2-х никуда не пропадает.
3) Нельзя сравнивать генетику, метод роя, метод отжига и т.д. Потому что это все одно и тоже — нелинейная стохастическая оптимизация. Природа алгоритмов одна. Если у тебя будет сложное многоэкстремальное пространство, то они все себя плохо покажут. Если один, два экстремума любой из них сработает отлично.
4) Ты прав, Walk Forward наше все. Нужно обязательно проверять на других данных. Как правило на этом этапе 95% стратегий разваливается и не подтверждают свои показатели.
5) На каких данных и на каком временном диапазоне ты тестируешь, что перебор 36 000 стратегий займет 3 дня? Тики, свечки?
6) Какой объем данных ты фактически исследуешь при оптимизации по сравнению с полным перебором? 5%, 30%, 80%?
7) Велс и Эксель… Сколько лет ты уже этим занимаешься? Уже бы давно написал свой оптимизатор и тестировал полным перебором за день 360к стратегий, а не 36к. Может тогда тебе вообще оптимизатор не понадобится)
avatar
SoftAlgoTrade, Привет, Леш! Рад, что такие специалисты следят за моей работой!
2. Больше 3-х параметров в любой стратегии — это не очень хорошо. Если их 3, 3-ий параметр может быть к примеру сессия(утренняя/вечерка) в которую торгует стратегия — их всего 3, тогда можно просто 3 тепловые карты выгрузить, на каждую сессию свой, где 3-ий параметр будет константой.
Также, если параметров 3 и больше, можно выявить те у которых минимальное влиянием на результат, и пренебречь ими в силу его слабого влияния на результат. По умолчанию берется первые 2 параметра.
5. Тестировались все прогоны за 3 временных периода 3 года, 2 года и год. 5-минутки
6. В статье указано количество прогонов по каждому виду тестирования
avatar
Николай, у меня предложение!

Давай устроим соревнование разработчиков оптимизаторов!)
Сбрось код любой своей стратегии, я его адаптирую под наше API. Ты можешь его проверить, если захочешь. Выберем одну целевую функцию — Шарпа, временной диапазон тестирования — 2 года, без Walk Forward, объем фактического исследования — 30%, один тип данных — минутки (или тики). Ты возьмешь свой лучший алгоритм, я свой чудо-алгоритм и сравним полученные кластеры и экстремумы по тепловым картам! И опубликуем результаты на Смартлабе.

P.S. Можем еще проверить на сколько порядков мой оптимизатор быстрее Велса =)
avatar
SoftAlgoTrade, Леш, я не сомневаюсь, что твой оптимизатор быстрее — вопрос в том, когда у тебя будет проторговщик!? Чтобы зря не переводить стратегии под каждый оптимизатор — это же не простая затрата времени, а и полная вовлеченность в процесс и риски сделать ошибки в стратегии при переводе, которую нужно отлаживать. Тем более если использовать свои свечки, или индикаторы нужно и их создавать (или подгружать доп индикаторы — а подгружать есть чего).
На такое я готов пойти, но только если будет качественный проторговщик на PlazaII с поддержкой, переподключением обрывов интернета и т.д., чтобы работа не была проведена зря.
avatar
Николай, Все уже давно готово! ;) Проторговщик с Lua коннетором к Квику уже успешно торгует на реальном счете, поддерживаются все типы заявок, типы данных: стаканы, тики, свечки; переподключения, автозапуски, подгрузка данных перед стартом и многое другое! Все работает в одной архитектуре с Оптимизатором и ничего никуда переносить не нужно. Любые свечки из тиков можно просто делать с помощью нашего API. И, кстати, коннектор к Плаза тоже не за горами.

Но я предлагаю не Проторговщики тестировать, а Оптимизаторы. Мне тоже очень интересно, что получится!) Просто закинь на наш Форум любую свою стратегию с маленьким описанием и я сам адаптирую код. К тому же Велс работает на С#, так что проблем быть не должно!
avatar
Press, Поправил, спасибо! Рад, что понравилась статья!)
avatar
Ооо, это будет занятно наблюдать, Николай, соглашайся!
avatar
Добрый день, Николай!

Хорошая работа! Молодец.
С интересом всё посмотрел.
Не хватает комментария к видео.
Музыка — хорошо, но было бы лучше услышать твой голос, пояснения к действиям, происходящим на экране.

avatar

теги блога Николай Флёров

....все тэги



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