"Генетические алгоритмы - это просто!" - продолжение следует? - страница 2

 
Urain:

А суть вопроса вникнуть не судьба?

Многокритериальный поиск это рулес, типовой ГА и рядом не стоял, вам что хочется сливать оптимизируя сова по критерию баланс? не лучше ли оптимизировать по балансу и стабильности? или ещё куче ваших критериев.

ЗЫ По результатам сегодняшнего дня, в моём личном рейтинге причисляю к revers45 тролям, о чём официально заявляю, и впредь буду относиться к данному персонажу именно так, пока не докажет свою конструктивность своими постами.

То есть на качественно новый ГА и НС можно не надеяться?

 
revers45:

То есть на качественно новый ГА и НС можно не надеяться?

В стандартной реализации от MQ точно нет. Вся надежда на Custom.
 
Urain:


Многокритериальный поиск это рулес, типовой ГА и рядом не стоял, вам что хочется сливать оптимизируя сова по критерию баланс? не лучше ли оптимизировать по балансу и стабильности? или ещё куче ваших критериев.

В MetaTrader 5 можно как угодно оптимизировать по любым параметрам, как встроенным, так и кастомным:


Кроме того можно использовать до 1024 параметров в оптимизаторе торговых стратегий.

Пожалуйста, покажите на примере, как кто-то уперся в недостатки существующего генетического оптимизатора.

 
Renat:

В MetaTrader 5 можно как угодно оптимизировать по любым параметрам, как встроенным, так и кастомным:

Кроме того можно использовать до 1024 параметров в оптимизаторе торговых стратегий.

Пожалуйста, покажите на примере, как кто-то уперся в недостатки существующего генетического оптимизатора.

Нет проблем, особенно мне понравилось использовать параметр "Custom max". Но речь идет об запуске оптимизации советника из него самого, здесь у joo все в порядке. 

 
Renat:

1. В MetaTrader 5 можно как угодно оптимизировать по любым параметрам, как встроенным, так и кастомным

2. Кроме того можно использовать до 1024 параметров в оптимизаторе торговых стратегий.

1. Поглядим в справку. Для примера возьмем Баланс+максимальная прибыльность:

Баланс + максимальная прибыльность —  показателем является максимальное значение произведения баланса на прибыльность;

Но. Эти показатели имеют разные единицы измерения и разные порядки и интервалы значений. В данном примере оптимизация будет иметь перекос в сторону баланса.

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

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

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

 
joo:

1. Поглядим в справку. Для примера возьмем Баланс+максимальная прибыльность:

Баланс + максимальная прибыльность —  показателем является максимальное значение произведения баланса на прибыльность;

Но. Эти показатели имеют разные единицы измерения и разные порядки и интервалы значений. В данном примере оптимизация будет иметь перекос в сторону баланса.


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

Вот например: 1. Офигеть какой баланс. Но убыточных сделок столько же сколько и прибыльных, профит-фактор невысок. 2. Баланс раза в два меньше, чем "офигеть какой баланс". Но он достигнут подавляющим большинством прибыльных сделок, убыточная сделка всего одна. И вот тут "офигеть какой" профит-фактор выводит данный результат на первое место.

 
Дело в области значений совокупного показателя критериев. Оптимизатор заведомо ищет не там (не потому что он плох, а потому что таков совокупный критерий - из за перекоса), где хотел бы искать пользователь. Отсюда, варианты оптимизации, любо-дороги пользователю, даже и не появятся вообще. Пользователю остается лишь выбирать среди тех вариантов, которые ‘‘получились‘‘, причем это единичные случаи среди остальных вариантов результатов, так как остальная масса результатов сосредоточена именно на тех, где баланс максимален. А для робастости, как говорят, необходим пологий участок нужных результатов (а он получится "дырявым").
 
joo:
Дело в области значений совокупного показателя критериев. Оптимизатор заведомо ищет не там (а ищет он не там из за перекоса), где хотел бы искать пользователь. Отсюда, варианты оптимизации, любо-дороги пользователю, даже и не появятся вообще. Пользователю остается лишь выбирать среди тех вариантов, которые ‘‘получились‘‘, причем это единичные случаи среди остальных вариантов результатов, так как остальная масса результатов сосредоточена именно на тех, где баланс максимален. А для робастости, как говорят, необходим пологий участок нужных результатов (а он получится "дырявым").

Можно заменить стандартные показатели на аналогичные (вернее сильно коррелированные), но нормированные в одной шкале. Пришел к выводу, что наиболее универсальная шкала от -1.0 до +1.0.

Например, аналогичный показатель профит фактору - коэффициент эффективности оборота денежных средств (ERF - effectiveness ratio of funds) (название, как и сам расчет сам придумал, поэтому можете не искать источники). Формула такая:

ERF = NetProfit / (|TotallLoss| + |TotalProfit|), где  TotallLoss   TotalProfit - абсолютные величины суммарного убытка и прибыли. 

Очевидно, что ProfitFactor и  ERF  функционально зависимые величины, однако пределы последнего строго определены от -1.0 до +1.0

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

Optimize = 1/|КК| * ERF, где KK - коэффициент корреляции между эквити стратегии и эквити BayAndHold.

 
papaklass:

joo дело говорит.

При чём (насколько я знаю) в его постановке вопроса все критерии нормированы и каждому можно задать коэфф значимости. Что ещё увеличивает гибкость поиска (задать ручные перекосы).
 
Urain:
При чём (насколько я знаю) в его постановке вопроса все критерии нормированы и каждому можно задать коэфф значимости. Что ещё увеличивает гибкость поиска (задать ручные перекосы).

Спасибо, именно так.