Бета-версия платформы MetaTrader 5 build 2055: Интеграция с Python и массовые улучшения в тестере стратегий - страница 25

 
int ExtTotalFrames=0;
int ExtSuccessFrames=0;
...
double OnTester()
  {
   ExtTotalFrames=0;
   ExtSuccessFrames=0;
//---
   for(int Test_P=Start_Test_P;Test_P<Stop_Test_P;Test_P++)
     {
      ExtTotalFrames++;
      OnTesterPassf(Test_P);
     }
   return(ExtTotalFrames*1000+ExtSuccessFrames);
  }

void OnTesterPassf(int Test_P)
  {
//Вычисления переменных опущено
//--- Создадим фрейм
   stat_values[0]=Period_Calc;
   stat_values[s()]=Type_Poisk_Tree;
   stat_values[s()]=Test_P;
   stat_values[s()]=Proc_Vhodov;
   stat_values[s()]=Proc_True;
   stat_values[s()]=Proc_False;
   stat_values[s()]=Final_Balans;
   stat_values[s()]=DD_Balans;
   stat_values[s()]=DD_Balans_Proc;
   stat_values[s()]=DD_Balans_Proc_DMM;
   stat_values[s()]=StDV_Balans;
   stat_values[s()]=StDV_Korrekt_Balans;
   stat_values[s()]=StDV_K_Balans;
   stat_values[s()]=StDV_K_Korrekt_Balans;
   stat_values[s()]=Proc_Max_Balans;
   stat_values[s()]=Proc_Min_Balans;
   stat_values[s()]=True_Podryad_Balans;
   stat_values[s()]=Error_Podryad_Balans;
   stat_values[s()]=ProfitFaktor_Balans;
   stat_values[s()]=RecoveryFaktor_Balans;
   stat_values[s()]=Pribolnost_Balans;
   stat_values[s()]=Test_L;
   NomerStolbca=0;

   if(FrameAdd(Test_P,1,0,stat_values))
      ExtSuccessFrames++;
}

Примерно так.

Оптимизируйте по пользовательскому критерию.

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

 
Slava:

Примерно так.

Оптимизируйте по пользовательскому критерию.

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

Закончилась очередная бессмысленная оптимизация

2019.06.19 03:19:52.237 Tester  413 passes not processed and returned to task queue
2019.06.19 08:13:26.687 Tester  optimization finished, total passes 925 (successful 765 passes unique, 160 passes duplicated)
2019.06.19 08:13:26.697 Statistics      optimization done in 9 hours 27 minutes 13 seconds
2019.06.19 08:13:26.697 Statistics      shortest pass 0:03:42.804, longest pass 0:14:50.613, average pass 0:10:21.534
2019.06.19 08:13:26.697 Statistics      752914 frames (295.83 Mb total, 412 bytes per frame) received
2019.06.19 08:13:26.697 Statistics      local 329 tasks (43%), remote 596 tasks (77%), cloud 0 tasks (0%)
2019.06.19 08:13:26.758 Tester  765 new records saved to cache file 'tester\cache\Tree_Brut_v_02_03_01p4.30.FF85275C1735CFE2515793EAA5076130.opt'

Очень удивляет число дубликатов - 160 - это как то ну очень много, как такое могло случится? Или это с учетом перераздачи, т.е. выдали агенту 100, а потом забрали 50?

765*1000-752914=12086 - т.е. это фактически потеряно 12 проходов (по 1000 фреймов на проход), что очень много!

Выписка из отчета оптимизации



Везде получилось 1001000 - что свидетельствует об отсутствии проблем при самой оптимизации, а подтверждает мою догадку о потери фреймов при передаче.

Файлы:
 
Aleksey Vyazmikin:

Закончилась очередная бессмысленная оптимизация

Очень удивляет число дубликатов - 160 - это как то ну очень много, как такое могло случится? Или это с учетом перераздачи, т.е. выдали агенту 100, а потом забрали 50?

765*1000-752914=12086 - т.е. это фактически потеряно 12 проходов (по 1000 фреймов на проход), что очень много!

Выписка из отчета оптимизации



Везде получилось 1001000 - что свидетельствует об отсутствии проблем при самой оптимизации, а подтверждает мою догадку о потери фреймов при передаче.

Вы включили полные логи?

Дайте посмотреть

 
Slava:

Вы включили полные логи?

Дайте посмотреть

Полные логи я не включил - забыл.

 
Aleksey Vyazmikin:

Полные логи я не включил - забыл.

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

Включите полные логи тестера, чтобы определить какой агент выполнял тот или иной проход. Только не делайте более 1000 проходов в оптимизации, чтобы в логах было проще разбираться

Файлы:
 
Slava:

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

Включите полные логи тестера, чтобы определить какой агент выполнял тот или иной проход. Только не делайте более 1000 проходов в оптимизации, чтобы в логах было проще разбираться

Сейчас я уже раздал на все машины задания без сетевых агентов - после обработки попробую предлагаемый советник.

Но, я то думаю, что как раз время обработки прохода может играть значение...

 
Заметил, что локальные агенты(на одном ПК) так же дублируют проходы - какой в этом смысл?
 
Aleksey Vyazmikin:
Заметил, что локальные агенты так же дублируют проходы - какой в этом смысл?
В полных логах видно будет
 
Aleksey Vyazmikin:
Заметил, что локальные агенты(на одном ПК) так же дублируют проходы - какой в этом смысл?
Тоже заметил. Осталось 2 прохода, а работают все - и локальные и сетевые агенты. Видимо над одними и теми же заданиями работают и кто первым закончит, тот и завершит оптимизацию. В принципе это не плохо.
 
elibrarius:
Тоже заметил. Осталось 2 прохода, а работают все - и локальные и сетевые агенты. Видимо над одними и теми же заданиями работают и кто первым закончит, тот и завершит оптимизацию. В принципе это не плохо.

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