Как работает генетический алгоритм МТ4 - страница 2

 
khorosh:
Не могли бы дать ссылку на пример как это делается?
В статьях есть "Создание собственных критериев оптимизации параметров эксперта". Для МТ5 статья, но не думаю,что в МТ4 по другому.
 
Dmitry Fedoseev:
В статьях есть "Создание собственных критериев оптимизации параметров эксперта". Для МТ5 статья, но не думаю,что в МТ4 по другому.
Спасибо.
 
khorosh:
Спасибо.

Я в последнее время делаю оптимизацию по фактору восстановления помноженного на количество сделок

Если только по фактору, то будет на первых позициях пара сделок, а это не правильно. Еще можно на Шарпа помножить) 

double OnTester()
  {
//---
   double ret=0.0;
//---
  double  rec_fact = TesterStatistics(STAT_RECOVERY_FACTOR);                                                                   
  double  sharp_fact = TesterStatistics(STAT_SHARPE_RATIO);                                                                   
  double  deals = TesterStatistics(STAT_DEALS);                                                                   

   ret=rec_fact*deals*sharp_fact;
   return(ret);
  }
 
Oleg Tsarkov:

Я в последнее время делаю оптимизацию по фактору восстановления помноженного на количество сделок

Если только по фактору, то будет на первых позициях пара сделок, а это не правильно. Еще можно на Шарпа помножить) 

Cпасибо. Статья как-то прошла мимо меня, так как использую mql4 и что касается mql5 как-то не обращал внимания.
 

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

 

 
  1. Допустим, пробрутфорсили ТС, найдя, например, параметры для максимального профита.
  2. Сделали одиночный прогон на этих данных.
  3. После этого запустили уже ГА.
  4. Среди результатов оптимизации почти всегда не находится п.2.

Что мешает в ГА учитывать крайние одиночный прогон и оптимизацию? Если торговые условия не менялись (оффлайн, например).

 

GA - это рандомно(+целевое уточнение) управляемый поиск. Он может не сгенерировать тот набор параметров, что вы раньше видели.

У GA преимущество в том, что он быстро находит направление/тренд, куда копать. Вот уже после генетики можно пробутфорсить найденное направление вдоль и поперек.

 
Renat Fatkhullin:

GA - это рандомно(+целевое уточнение) управляемый поиск. Он может не сгенерировать тот набор параметров, что вы раньше видели.

Понимаю. Но если есть бесплатная инфа о других прогонах, почему ее надо игнорить?
 
khorosh:

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

 

Вот здесь вообще огромная разница; 

№    прибыль                                просадка                   фактор восст.                                       

76    8394.71    506    8.65     16.59   1198.92    22.21%    36.83024527

 Функция OnTester()

double OnTester()
{
  double  profit = TesterStatistics(STAT_PROFIT);
  double  max_dd = TesterStatistics(STAT_BALANCE_DD);
  if(max_dd<0.01) {max_dd=0.01;} 
  double  rec_factor = profit/max_dd;
  return(rec_factor); 
}

 


 
zaskok2:
Понимаю. Но если есть бесплатная инфа о других прогонах, почему ее надо игнорить?
Таков принцип работы и требование чистоты.