Обсуждение статьи "Создание собственных критериев оптимизации параметров эксперта"

 

Опубликована статья Создание собственных критериев оптимизации параметров эксперта:

Терминал МetaTrader 5 дает новые возможности для оптимизации параметров создаваемых экспертов. Кроме уже имеющихся в тестере критериев оптимизации, разработчики получили инструмент для создания собственных критериев. Это открывает поистине безграничные возможности в тестировании и оптимизации экспертов. В статье рассматриваются практические способы построения таких критериев - как простых, так и достаточно сложных.

Автор: Dmitriy Skub

 

Очень полезная статья. все просто бери и пользуйся..

Но здесь описывается только критерии по вызове функции OnTester(), т.е когда оптимизация закончилась с данным параметром.

Возможно ли досрочно прервать оптимизацию? например при просадке более 50% или балансе менее n-значения, чтобы не тратить зря процессорное время!

 
sigma7i:

Очень полезная статья. все просто бери и пользуйся..

Но здесь описывается только критерии по вызове функции OnTester(), т.е когда оптимизация закончилась с данным параметром.

Возможно ли досрочно прервать оптимизацию? например при просадке более 50% или балансе менее n-значения, чтобы не тратить зря процессорное время!

ExpertRemove
 
MetaDriver:
ExpertRemove
О в точку!!! Спасибо!
 

 Подскажите пожалуйста, есть возможность отсеять ненужные результаты по окончании оптимизации (вызова OnTester) например с минусовым результатом, чтобы не захламлять вкладку "результаты оптимизации" ?

 

Сортировку можно сделать ,кликая на...

на любых столбцах. 

 ПС.Не всегда заведомо кривые результаты ,в процессе генетической оптимизации можно "срывать"  ExpertRemove().

Также обнулять в OnTester(). 

У меня ,лично, генетика порой уходила не туда. 

 
Karlson:

Сортировку можно сделать ,кликая на...

на любых столбцах. 

Также обнулять в OnTester(). 

У меня ,лично, генетика порой уходила не туда. 

 

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

с сортировкой все просто например:

double  OnTester()
double  balance = TesterStatistics(STAT_PROFIT);
double  trades_number = TesterStatistics(STAT_TRADES);

if(balance < 5000 || trades_number < 20) return(-777);

....бла бла return(свой критерий оптимизации);

 а потом сортируем(-777 уходит на задний план)...

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

 

Karlson:

 

 

 ПС.Не всегда заведомо кривые результаты ,в процессе генетической оптимизации можно "срывать"  ExpertRemove().

 

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

может я не умею его готовить:) ..ставлю в обработчик  OnTick() с условием... 

 

Хотите сказать,что код по типу :

if (balance < 3000) ExpertRemove();

 не работает?

 

Но сказал я совсем другое. Что такой срыв (работал ранее по крайней мере) приводил к уходу генетики в конечном итоге.

 

 
Karlson:

Хотите сказать,что код по типу

if (balance < 3000) ExpertRemove(); 

 не работает?

 

Работает. Уже понял. прерывает оптимизацию но в результаты всеравно выводит, поэтому я подумал что не работает.


 

Karlson:

Но сказал я совсем другое. Что такой срыв (работал ранее по крайней мере) приводил к уходу генетики в конечном итоге.

Это да.

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

 

 

 
вопрос остается открытым, как убрать ненужные результаты из отчета. 

В MT4 было такое:

MT4 

 


Наверняка это возможно сделать с помощью средств MQL5 раз разработчики вообще убрали такие функции.

Конечно все можно скопировать в Excel, но хочется воспользоватся возможностями новой платформы.

C ограничениями мы разобрались - можно сделать с помощью  ExpertRemove().

как быть с пропуском бесполезных результатов, в отчете?

Причина обращения: