Как задушить генетический тестер через OnTester с нулевыми результатами - страница 3

 
Karlson:
double OnTester()
  {
   double bal=AccountInfoDouble(ACCOUNT_BALANCE);
   double factor=TesterStatistics(STAT_RECOVERY_FACTOR);
   double trades=TesterStatistics(STAT_TRADES);
   double dea=TesterStatistics(STAT_DEALS);
   double res=(bal*factor*MathPow(trades,0.3));
   
   return(res);
  }

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

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

Документация по MQL5: Торговые функции / HistoryDealsTotal
Документация по MQL5: Торговые функции / HistoryDealsTotal
  • www.mql5.com
Торговые функции / HistoryDealsTotal - Документация по MQL5
 

Согласен,что факторы должны быть близко -равно -влияющие ,хоть в генетике не разбираюсь.

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

 

 
Renat:

Проверка показала, что ошибки нет.

В указанном Вами случае широкий набор параметров был бесполезным/незначащим и генетический тестер смог закончить тесты раньше.

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

Ваш код такой:

Вы фактически душили генетический алгоритм выдачей ему нулевого результата. Тем самым Вы полностью отключали разумное скрещивание генов, заявляя "NN% всех результатов является мусором для отбрасывания".

В результате скрещивать и искать было практически нечего, вот тестер и остановился раньше срока, увидев, что в течение нескольких поколений дельта приращения результата уперлась в ноль.

Это стандартные грабли "зажать кастомные результаты на генетеке".

Ренат, было бы здорово если бы появилась статья, рассказывающая о всех премудростях генетической оптимизации. На сегодняшний момент таких статей нет, а тема востребована, как видно совершается много ошибок от незнания процесса и поставленные задачи решаются неверно. 
 
У меня кастомные результаты принципиально не могут быть нулевыми, а стену "1280" не пробить. Менял параметры, уменьшал-увеличивал число шагов - ничего. Там, где раньше шло тестирование на ура с плавным подъемом точечного графика, теперь несколько триггерных ступеней - и все. До 20% процентов прошлых рез-тов не дотягивает. Все-таки есть подозрение, что оценки будущих результатов алгоритмом, мягко говоря, иногда ошибочны.
 
Мы разбираемся с оценкой генетики, у нас у самих появились вопросы.
 
lordlev:
да смысл от моего эксперта? любой эксперт сгенерируйте в мастере и запустите. Сами всё увидите. "Поменялось хранение генов внутри хромосомы.

В связи с тем, что хромосома может быть очень большая, гены теперь не выравниваются на границу байта, а побитно пакуются друг за другом. Это позволило отсечь множество "левых" проходов, когда изменения хромосомы (кроссовер, мутация и инверсия) затрагивали незначимую часть гена. Поэтому некоторые генетические оптимизации проходят теперь быстрее, чем раньше" - вот и вся причина. Тестер теперь урезает то что считает не нужным. А там на самом деле нужная информация есть. И както это не логично стало всё. При небольшом количестве оптимизаций тестер работает более глубоко, а при большом количестве параметров наоборот поверхностно. Из-за этого и результат плохой.

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

Ждите следующего билда

 

Я проверку то прошел ненастроеным экспертом,а как настоить..Успею ? ))) 

То сделки не так считает,то еще что.. 

Ждал вчерашний билд начать тесты.Пару оптимизаций сделал и уже другие результаты из за количества трейдов..

А их у меня много..

Если что  я  не ругаюсь, я дружелюбно ))) Очень.Просто когда ж тестить начнем.Месяц остался. 

 
stringo:

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

Ждите следующего билда

Нельзя ли этот билд выпустить аварийно быстро? У меня тоже генетика при 56*10^9 оптимизируемых значениях расчитывает количество проходов только 1280.
 
gpwr:
Нельзя ли этот билд выпустить аварийно быстро? У меня тоже генетика при 56*10^9 оптимизируемых значениях расчитывает количество проходов только 1280.
Завтра к обеду будет новый билд. Уже тестируем его.
 
Renat:
Завтра к обеду будет новый билд. Уже тестируем его.
воооот. не зря я всётже в кола кола бил.